Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

code anpassen

code anpassen
14.09.2007 11:06:09
Jürg
Liebe Forengemeinde
ich habe diesen super guten code bekommen
kann man der noch anpassen mit
checken ob einzufügende tabbelle schon vorhanden ist und
die einzufügende Tabelle an das Ende setzen.

Sub aTest()
'Kopiert Tabelle1 einer Datei in alle Dateien eines Verzeichnisses
Dim wbQuelle As Workbook, wksQuelle As Worksheet
Dim wbZiel As Workbook, wksziel As Worksheet
Dim Datei, Anzahl%, Zaehler%, Verzeichnis, boTab1vorhanden As Boolean
On Error GoTo Fehler
If MsgBox("Tabelle1 aus aktiver Datei kopieren?" & vbLf & vbLf _
& "Bei 'Nein' wird Datei-Öffnen-Dialog angezeigt!", vbQuestion + vbYesNo) = vbYes Then
Set wbQuelle = ActiveWorkbook
Else
'Datei mit zu kopierender Tabelle1 öffnen
Verzeichnis = Application.GetOpenFilename(Filefilter:="Exceldatei(*.xls),*.xls", _
Title:="Bitte Datei mit zu kopierender Tabelle öffnen", MultiSelect:=False)
If Verzeichnis = False Then Exit Sub
Set wbQuelle = Application.Workbooks.Open(Verzeichnis)
End If
Set wksQuelle = wbQuelle.Worksheets("Notizen")
Application.ScreenUpdating = False
'Verzeichnis mit Dateien auswählen
Verzeichnis = Application.GetOpenFilename(Filefilter:="Exceldatei(*.xls),*.xls", _
Title:="Bitte Datei im Zielverzeichnis auswählen", MultiSelect:=False)
If Verzeichnis = False Then Exit Sub
Do Until Right(Verzeichnis, 1) = "\"
Verzeichnis = Left(Verzeichnis, Len(Verzeichnis) - 1)
Loop
'Anzahl Dateien im Zielverzeichnis ermitteln für Fortschrittsanzeige in Statuszeile
Datei = Dir(Verzeichnis & "*.xls")
Do Until Datei = ""
Anzahl = Anzahl + 1
Datei = Dir
Loop
'Dateien im Zielverzeichnis öffnen und ggf. Tabelle1 einfügen
Application.DisplayAlerts = False
Datei = Dir(Verzeichnis & "*.xls")
Do Until Datei = ""
Zaehler = Zaehler + 1
Application.StatusBar = "Datei " & Zaehler & " von " & Anzahl & " wird bearbeitet"
Set wbZiel = Application.Workbooks.Open(Datei)
boTab1vorhanden = False
For Each wksziel In wbZiel.Worksheets
If wksziel.Name = "Notizen" Then
boTab1vorhanden = True
Exit For
End If
Next
If boTab1vorhanden = False Then
wksQuelle.Copy Before:=wbZiel.Worksheets(1)
wbZiel.Save
End If
wbZiel.Close savechanges:=False
Datei = Dir
Loop
Application.DisplayAlerts = True
Application.StatusBar = False
Application.ScreenUpdating = False
Exit Sub
Fehler:
MsgBox "der Fehler Nummer: " & Err.Number & " ist aufgetreten" & vbLf & vbLf _
& Err.Description & vbLf
End Sub


vielhn Dank
es grüsst
jürg

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: code anpassen
14.09.2007 15:05:00
Gerd
Hallo Jürg,
so ?
.........................................................................................
Next
If boTab1vorhanden = False Then
wksQuelle.Copy Before:=wbZiel.Worksheets(1)
wbZiel.Close savechanges:=True
Else
wksQuelle.Copy After:=wbZiel.Sheets(wbZiel.Sheets.Count)
End If
Datei = Dir
Loop
Application.DisplayAlerts = True
...................................................................................................
Gruß Gerd

AW: code anpassen
15.09.2007 11:38:34
Gerd
Hallo Jürg,
nochmal der gesamte ursprüngliche Code mit meinem Änderungsvorschlag

Sub aTest()
'Kopiert Tabelle1 einer Datei in alle Dateien eines Verzeichnisses
Dim wbQuelle As Workbook, wksQuelle As Worksheet
Dim wbZiel As Workbook, wksziel As Worksheet
Dim Datei, Anzahl%, Zaehler%, Verzeichnis, boTab1vorhanden As Boolean
On Error GoTo Fehler
If MsgBox("Tabelle1 aus aktiver Datei kopieren?" & vbLf & vbLf _
& "Bei 'Nein' wird Datei-Öffnen-Dialog angezeigt!", vbQuestion + vbYesNo) = vbYes Then
Set wbQuelle = ActiveWorkbook
Else
'Datei mit zu kopierender Tabelle1 öffnen
Verzeichnis = Application.GetOpenFilename(Filefilter:="Exceldatei(*.xls),*.xls", _
Title:="Bitte Datei mit zu kopierender Tabelle öffnen", MultiSelect:=False)
If Verzeichnis = False Then Exit Sub
Set wbQuelle = Application.Workbooks.Open(Verzeichnis)
End If
Set wksQuelle = wbQuelle.Worksheets("Notizen")
Application.ScreenUpdating = False
'Verzeichnis mit Dateien auswählen
Verzeichnis = Application.GetOpenFilename(Filefilter:="Exceldatei(*.xls),*.xls", _
Title:="Bitte Datei im Zielverzeichnis auswählen", MultiSelect:=False)
If Verzeichnis = False Then Exit Sub
Do Until Right(Verzeichnis, 1) = "\"
Verzeichnis = Left(Verzeichnis, Len(Verzeichnis) - 1)
Loop
'Anzahl Dateien im Zielverzeichnis ermitteln für Fortschrittsanzeige in Statuszeile
Datei = Dir(Verzeichnis & "*.xls")
Do Until Datei = ""
Anzahl = Anzahl + 1
Datei = Dir
Loop
'Dateien im Zielverzeichnis öffnen und ggf. Tabelle1 einfügen
Application.DisplayAlerts = False
Datei = Dir(Verzeichnis & "*.xls")
Do Until Datei = ""
Zaehler = Zaehler + 1
Application.StatusBar = "Datei " & Zaehler & " von " & Anzahl & " wird bearbeitet"
Set wbZiel = Application.Workbooks.Open(Datei)
boTab1vorhanden = False
For Each wksziel In wbZiel.Worksheets
If wksziel.Name = "Notizen" Then
boTab1vorhanden = True
Exit For
End If
Next
Next
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
If boTab1vorhanden = False Then
wksQuelle.Copy Before:=wbZiel.Worksheets(1)
wbZiel.Close savechanges:=True
Else
wksQuelle.Copy After:=wbZiel.Sheets(wbZiel.Sheets.Count)
End If
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Datei = Dir
Loop
Application.DisplayAlerts = True
Application.DisplayAlerts = True
Application.StatusBar = False
Application.ScreenUpdating = False
Exit Sub
Fehler:
MsgBox "der Fehler Nummer: " & Err.Number & " ist aufgetreten" & vbLf & vbLf _
& Err.Description & vbLf
End Sub


Gruß Gerd

Anzeige
AW: code anpassen
18.09.2007 18:35:00
Jürg
hallo Gerd
sorry dass ich michg erst melde .... mannchmal geht es nicht anders
der code funktioniert, nur leider wird die mappe wie gewüscht nicht an das ende geschrieben
kann man das noch einbauen?
besten dank
hier der code

Sub aTest()
'Kopiert Tabelle1 einer Datei in alle Dateien eines Verzeichnisses
Dim wbQuelle As Workbook, wksQuelle As Worksheet
Dim wbZiel As Workbook, wksziel As Worksheet
Dim Datei, Anzahl%, Zaehler%, Verzeichnis, boTab1vorhanden As Boolean
On Error GoTo Fehler
If MsgBox("Tabelle1 aus aktiver Datei kopieren?" & vbLf & vbLf _
& "Bei 'Nein' wird Datei-Öffnen-Dialog angezeigt!", vbQuestion + vbYesNo) = vbYes Then
Set wbQuelle = ActiveWorkbook
Else
'Datei mit zu kopierender Tabelle1 öffnen
Verzeichnis = Application.GetOpenFilename(Filefilter:="Exceldatei(*.xls),*.xls", _
Title:="Bitte Datei mit zu kopierender Tabelle öffnen", MultiSelect:=False)
If Verzeichnis = False Then Exit Sub
Set wbQuelle = Application.Workbooks.Open(Verzeichnis)
End If
Set wksQuelle = wbQuelle.Worksheets("Notizen")
Application.ScreenUpdating = False
'Verzeichnis mit Dateien auswählen
Verzeichnis = Application.GetOpenFilename(Filefilter:="Exceldatei(*.xls),*.xls", _
Title:="Bitte Datei im Zielverzeichnis auswählen", MultiSelect:=False)
If Verzeichnis = False Then Exit Sub
Do Until Right(Verzeichnis, 1) = "\"
Verzeichnis = Left(Verzeichnis, Len(Verzeichnis) - 1)
Loop
'Anzahl Dateien im Zielverzeichnis ermitteln für Fortschrittsanzeige in Statuszeile
Datei = Dir(Verzeichnis & "*.xls")
Do Until Datei = ""
Anzahl = Anzahl + 1
Datei = Dir
Loop
'Dateien im Zielverzeichnis öffnen und ggf. Tabelle1 einfügen
Application.DisplayAlerts = False
Datei = Dir(Verzeichnis & "*.xls")
Do Until Datei = ""
Zaehler = Zaehler + 1
Application.StatusBar = "Datei " & Zaehler & " von " & Anzahl & " wird bearbeitet"
Set wbZiel = Application.Workbooks.Open(Datei)
boTab1vorhanden = False
For Each wksziel In wbZiel.Worksheets
If wksziel.Name = "Notizen" Then
boTab1vorhanden = True
Exit For
End If
Next
'Next
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
If boNotizenvorhanden = False Then
wksQuelle.Copy Before:=wbZiel.Worksheets(1)
wbZiel.Close savechanges:=True
Else
wksQuelle.Copy After:=wbZiel.Sheets(wbZiel.Sheets.Count)
End If
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Datei = Dir
Loop
Application.DisplayAlerts = True
Application.DisplayAlerts = True
Application.StatusBar = False
Application.ScreenUpdating = False
Exit Sub
Fehler:
MsgBox "der Fehler Nummer: " & Err.Number & " ist aufgetreten" & vbLf & vbLf _
& Err.Description & vbLf
End Sub


gruss
jürg

Anzeige
AW: code anpassen
14.09.2007 15:57:00
Jürg
hallo Gerd
vielen dank
aber leider macht code einen fehler
villeicht habe ich diesen auch falsch eingebaut
hier der code mit dem einbau

Sub aTest2()
End Sub


'Kopiert Tabelle1 einer Datei in alle Dateien eines Verzeichnisses
Dim wbQuelle As Workbook, wksQuelle As Worksheet
Dim wbZiel As Workbook, wksziel As Worksheet
Dim Datei, Anzahl%, Zaehler%, Verzeichnis, boTab1vorhanden As Boolean
On Error GoTo Fehler
If MsgBox("Tabelle1 aus aktiver Datei kopieren?" & vbLf & vbLf _
& "Bei 'Nein' wird Datei-Öffnen-Dialog angezeigt!", vbQuestion + vbYesNo) = vbYes Then
Set wbQuelle = ActiveWorkbook
Else
'Datei mit zu kopierender Tabelle1 öffnen
Verzeichnis = Application.GetOpenFilename(Filefilter:="Exceldatei(*.xls),*.xls", _
Title:="Bitte Datei mit zu kopierender Tabelle öffnen", MultiSelect:=False)
If Verzeichnis = False Then Exit Sub
Set wbQuelle = Application.Workbooks.Open(Verzeichnis)
End If
Set wksQuelle = wbQuelle.Worksheets("Notizen")
Application.ScreenUpdating = False
'Verzeichnis mit Dateien auswählen
Verzeichnis = Application.GetOpenFilename(Filefilter:="Exceldatei(*.xls),*.xls", _
Title:="Bitte Datei im Zielverzeichnis auswählen", MultiSelect:=False)
If Verzeichnis = False Then Exit Sub
Do Until Right(Verzeichnis, 1) = "\"
Verzeichnis = Left(Verzeichnis, Len(Verzeichnis) - 1)
Loop
'Anzahl Dateien im Zielverzeichnis ermitteln für Fortschrittsanzeige in Statuszeile
Datei = Dir(Verzeichnis & "*.xls")
Do Until Datei = ""
Anzahl = Anzahl + 1
Datei = Dir
Loop
'Dateien im Zielverzeichnis öffnen und ggf. Tabelle1 einfügen
Application.DisplayAlerts = False
Datei = Dir(Verzeichnis & "*.xls")
Do Until Datei = ""
Zaehler = Zaehler + 1
Application.StatusBar = "Datei " & Zaehler & " von " & Anzahl & " wird bearbeitet"
Set wbZiel = Application.Workbooks.Open(Datei)
boTab1vorhanden = False
For Each wksziel In wbZiel.Worksheets
If wksziel.Name = "Notizen" Then
boTab1vorhanden = True
Exit For
End If
Next
If boTab1vorhanden = False Then
wksQuelle.Copy Before:=wbZiel.Worksheets(1)
wbZiel.Close savechanges:=True
Else
wksQuelle.Copy After:=wbZiel.Sheets(wbZiel.Sheets.Count)
End If
Datei = Dir
Loop
Application.DisplayAlerts = True
besten Dank für nochmalige hilfe
gruss
jürg

Anzeige
AW: code anpassen
15.09.2007 12:14:10
Gerd
Hallo Jürg,
wie schon gesagt, getestet habe ich bisher nicht.
Wenn Du den Schluss mit der Sprungmarke "Fehler:" drin hast, dann wird eine Fehlernummer u. eine
Fehlerbeschreibung ausgegeben. Oder ? Welche?
Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige