Thema Datum  Von Nutzer Rating
Antwort
05.12.2022 08:57:48 ulli
NotSolved
05.12.2022 22:22:05 ralf_b
NotSolved
05.12.2022 22:36:48 Gast34433
NotSolved
05.12.2022 23:14:48 ulli
NotSolved
06.12.2022 02:27:58 ralf_b
NotSolved
06.12.2022 07:50:59 Gast34428
NotSolved
06.12.2022 13:52:14 ralf_b
Solved
06.12.2022 15:39:23 ulli
NotSolved
06.12.2022 16:17:23 ulli
NotSolved
06.12.2022 16:36:34 ralf_b
NotSolved
06.12.2022 22:38:01 Ulli
NotSolved
07.12.2022 09:14:00 ulli
NotSolved
09.12.2022 10:44:18 ulli
NotSolved
09.12.2022 11:30:24 ralf_b
NotSolved
09.12.2022 13:14:26 Gast12378
NotSolved
09.12.2022 14:20:48 ralf_b
NotSolved
Rot update
09.12.2022 15:29:52 ralf_b
NotSolved
09.12.2022 23:28:17 ulli
NotSolved
09.12.2022 23:36:42 ralf_b
NotSolved
10.12.2022 11:05:56 ulli
NotSolved
10.12.2022 15:49:46 ralf_b
NotSolved
10.12.2022 18:15:44 ulli
NotSolved
10.12.2022 18:39:40 ralf_b
NotSolved
Blau Blau update
10.12.2022 19:00:34 Gast95702
NotSolved

Ansicht des Beitrags:
Von:
ralf_b
Datum:
09.12.2022 15:29:52
Views:
358
Rating: Antwort:
  Ja
Thema:
update

ich hab mal versucht ein paar Sachen zu vereinfachen bzw. zusammenzufassen. die Fehlererkennung läuft teilweise über den Inhalt des Fehlertextes. Ein paar Variablen habe ich rausgehauen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
Option Explicit
'Das Programm wurde von einem Forenmitglied im VBA-Forum.de überarbeitet und lauffähig gemacht! Vielen Dank!
 
Sub AutoRange_Export()        'Das Modul_AutoRng muss auf dem ersten Feldnamen (hier Standort) _
'                                 gestartet werden. Der nach der Vorlage (siehe Blatt ANLEITUNG) _
'                                 erkannte Zellbereich wird als Bereich erkannt und in eine _
'                                 Semikolongetrennte *.CSV-Datei gespeichert
                                      
    Dim ws As Worksheet
    Dim wb As Workbook
    Dim WorkRng As Range            'für Zellbereich aus Kopfzeilen + Datenzellen
    
    Dim CSVName As String           'Ist die letzte Spalte eine Kopfzelle
    Dim strErr As String
    Dim lngDauer As Variant         'Ist die letzte zeile eine Datenzelle (Inhalt vorhanden)
    Dim AzBuecher&
    Dim NameAnhang As String
     
                                    ' +++ Defaultwerte
    CSVName = "CSV-Transfer"        ' Dateiname für CSV-Datei
    lngDauer = 3                    ' MsgBox Anzeigedauer in Sekunden
   'FlagExt = ""                    ' Defaultwert >=1 wird ausgewertet
        
    Set WorkRng = ActiveCell
     
    Call auto_range(strErr, WorkRng, AzBuecher, NameAnhang)  'gültiger Zellbereich ermitteln
                                                             
    If strErr <> "" Then GoTo Fehler
     
    '*** neues Workbook erstellen
    Set wb = Workbooks.Add
    wb.Worksheets(1).Name = WorkRng.Worksheet.Name
     
    'Datenbereich kopieren
    WorkRng.Copy Destination:=wb.Worksheets(1).Range("A1")
     
    Application.DisplayAlerts = False    'WarnMeldung wenn überschreiben ? AUS
     
    On Error GoTo Fehler                 'nach CSVName kann noch & WorkRng.Worksheet.Name
    'Speichert im Pfad der Exceldatei
    wb.SaveAs Filename:=ThisWorkbook.Path & "\" & CSVName & NameAnhang, _
                                      FileFormat:=xlCSV, _
                                      CreateBackup:=False, _
                                      Local:=True
    wb.Close True
    Application.DisplayAlerts = True      'WarnMeldung überschreiben ? Ein
         
    Call MessageBox_zeitgesteuert(CSVName, NameAnhang, lngDauer, AzBuecher)
     
    Exit Sub
Fehler:
     If strErr = "" Then strErr = "Fehler beim Speichern"
     MsgBox "Keine Datei erstellt." & vbLf & strErr, vbCritical, "ein Fehler ist aufgetreten"
 
End Sub
 
Sub auto_range(sErr As String, WorkRng As Range, lngAzB As Long, NameAnhang As String)
   'Datensatz auf Gültigkeit prüfen
     
    Dim i&, LastRow&, FirstRow&
    Dim VorlFeldnamen As Variant
     
    'Vorlagen Feldnamen in Datenfeld speichern
    VorlFeldnamen = Application.Transpose( _
                    Application.Transpose(Range(Range("Kopfz_S"), Range("Kopfz_6").End(xlToLeft))))
            
'***************** Prüfen ob Starzelle  = 1. Kopfzelle
    sErr = ""
    If WorkRng <> VorlFeldnamen(1) Then
        sErr = " Bitte den ersten Feldnamen  " & Range("Kopfz_S").Value & "  wählen! "
        Exit Sub
    End If
      
'***************** Prüfen ob die Kopfzeile der Vorgabe aus "Anleitung" entspricht *************
    
   For i = LBound(VorlFeldnamen) To UBound(VorlFeldnamen)
    If WorkRng.Offset(, -1 + i).Value <> VorlFeldnamen(i) Or WorkRng.Offset(, -1 + i).Value = "" Then
        Exit For
    End If
   Next
     
    'nach fehlerfreiem For-Schleifendurchlauf ist i > Ubound(vorlfeldnamen)
    If i <= UBound(VorlFeldnamen) Then
      sErr = "Feldnamen stimmen nicht überein - Siehe Blatt Anleitung!!"
      Exit Sub
    End If
'************************************************************************************************
    
'############################## String  löschen bis - #####################################
      
  'Anzahl Bücher = Anzahl der Zeilen unterhalb Überschrift
  lngAzB = WorkRng.End(xlDown).Row - WorkRng.Row
   
  'Prüfung Überschreitung MaxBücheranzahl
    If lngAzB > Range("MaxBuecher").Value Then
       sErr = lngAzB & " Bücher sind zu viel." & vbLf & _
              "Es sind nur " & Range("MaxBuecher").Value & " im Fach vorgesehen"
       
    Else
        'Namens Erweiterung
        NameAnhang = IIf(Range("okExtension").Value >= 1, "_ab_" + WorkRng.Offset(1, 0).Value, "")
        NameAnhang = NameAnhang & "_bis_" + WorkRng.Offset(lngAzB)
        'Ändert die Größe des angegebenen Bereichs
        Set WorkRng = WorkRng.Resize(lngAzB + 1, UBound(VorlFeldnamen))
    End If
       
End Sub
 
Private Sub MessageBox_zeitgesteuert(CSVName, NameAnhang, lngDauer, AzBuecher)
                                                            'Beendet die Windows "MessageBox" nach lngDauer
Dim iAnzeige As Integer
Dim objShell As Object
Set objShell = CreateObject("WScript.Shell")
iAnzeige = objShell.Popup("In der neuen Datei  " & CSVName & NameAnhang & ".CSV  wurden " & _
                            AzBuecher & " Bücher gespeichert", _
                            lngDauer, _
                            "CSV für BOOKcook Import Anzeigedauer: " & lngDauer & " sec.", _
                            vbInformation)
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
05.12.2022 08:57:48 ulli
NotSolved
05.12.2022 22:22:05 ralf_b
NotSolved
05.12.2022 22:36:48 Gast34433
NotSolved
05.12.2022 23:14:48 ulli
NotSolved
06.12.2022 02:27:58 ralf_b
NotSolved
06.12.2022 07:50:59 Gast34428
NotSolved
06.12.2022 13:52:14 ralf_b
Solved
06.12.2022 15:39:23 ulli
NotSolved
06.12.2022 16:17:23 ulli
NotSolved
06.12.2022 16:36:34 ralf_b
NotSolved
06.12.2022 22:38:01 Ulli
NotSolved
07.12.2022 09:14:00 ulli
NotSolved
09.12.2022 10:44:18 ulli
NotSolved
09.12.2022 11:30:24 ralf_b
NotSolved
09.12.2022 13:14:26 Gast12378
NotSolved
09.12.2022 14:20:48 ralf_b
NotSolved
Rot update
09.12.2022 15:29:52 ralf_b
NotSolved
09.12.2022 23:28:17 ulli
NotSolved
09.12.2022 23:36:42 ralf_b
NotSolved
10.12.2022 11:05:56 ulli
NotSolved
10.12.2022 15:49:46 ralf_b
NotSolved
10.12.2022 18:15:44 ulli
NotSolved
10.12.2022 18:39:40 ralf_b
NotSolved
Blau Blau update
10.12.2022 19:00:34 Gast95702
NotSolved