Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
936to940
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
936to940
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

code anpassen

code anpassen
28.12.2007 15:44:47
jürg

wertes forum
ich habe einen tollen code von euch bekommen, nur sollte die eingefügte tabelle immer am schluss sein. kan mir jemand das noch so anpassen?
wäre super

Sub zTest()
'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("notiz")
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
'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
mit gruss
Jürg

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: code anpassen
28.12.2007 16:26:00
Erich
Hallo Jürg,
die Anweisung, die du dafür brauchst, steht schon in deinem Code:
wksQuelle.Copy After:=wbZiel.Sheets(wbZiel.Sheets.Count)
statt
wksQuelle.Copy Before:=wbZiel.Worksheets(1)
Einiges an deinem Code ist mir nicht klar:
boTab1vorhanden wird wohl mit False bzw. True belegt, aber nie abgefragt.
boNotizenvorhanden wird auf False geprüft, aber nie belegt.
boNotizenvorhanden fehlt auch bei den Deklarationen.
Ich empfehle dir dringend, "Option Explicit" zu verwenden, siehe auch
http://www.online-excel.de/excel/singsel_vba.php?f=4
Ist sichergestellt, dass das Blatt "notiz" in der Quellmappe existiert?
Wozu prüfst du bei den Zielmappen die Existenz des Blatts "Notizen"?
Wofür ist "Application.DisplayAlerts = False" gut?
"Application.DisplayAlerts = True" steht gleich doppelt am Ende der Prozedur.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: code anpassen
28.12.2007 16:33:00
Jürg
hallo Erich
also ich habe den code bekommen, der läuft, was der macht weis ich nicht.
die Tabelle "Notiz" ist in der Quell-Mappe mit drinn und wird dann in viele Mappen eingefügt, jetzt zuvorderst, sollte aber zu hinterst sein .
gruss
jürg

AW: code anpassen
28.12.2007 16:48:33
Erich
Hallo Jürg,
was möchtest du mit dem Makro erreichen?
Geht es um das Blatt "Notiz" oder "notiz" oder "Notizen"? (Groß-/Kleinschreibung ist hier wichtig!)
Nehmen wir mal an, das Blatt "Notiz" soll von der Quellmappe in die Zielmappen kopert werden.
Was soll passieren, wenn eine Zielmappe schon ein Blatt "Notiz" enthält?
Soll dann trotzdem kopiert werden?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: code anpassen
28.12.2007 16:54:50
Jürg
also ich möchte dass die Tabelle "Notiz" oder "XXX" in 500 Tabellen (Dateien) eingefügt wird. alle im gleichen ordenr und bei allen Dateien am Ende stehn.
ich kann den Namen frei wählen.
Erich es kann sein dass ich heute nicht mehr antworte, werde mich aber bemühen es zu erledigen
vorerst vielen Dank
gruss
Jürg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige