Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
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
Inhaltsverzeichnis

VBA Excel

VBA Excel
10.06.2014 14:39:31
Markus
Guten Tag,,
Hab eine frage und zwar hab ich dieses modul programmiert ....
Sub Kopieren()
Application.ScreenUpdating = False
Dim leereZeile
Workbooks("0001.xlsx").Sheets("0001").Range("A2:M2").Copy
Workbooks.Open "C:\dateipfad\Auswertung.xlsx"
leereZeile = Workbooks("Auswertung.xlsx").Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row  _
+ 1
Workbooks("Auswertung.xlsx").Sheets("Tabelle1").Range("A" & leereZeile & ":J" & leereZeile). _
Select
ActiveSheet.Paste
With Workbooks("Auswertung.xlsx")
.Save
.Close
End With
Application.CutCopyMode = True
Application.ScreenUpdating = True
MsgBox ("Daten sind erfolgreich übertragen worden")
With Workbooks("0001.xlsx")
.Save
.Close
End With
End Sub
Das funktioniert so weit auch recht gut ...
bis auf das das wenn ich den befehl ganz oben hinsetzte
Workbooks.Open "C:\dateipfad\0001.xlsx"
dann geht die sache schon nicht mehr warum auch immer pfad und so stimmt alles keine ahnung auch egal..
meine frage ist jetzt er müsste die datei 0001 und tabelle 0001 (siehe oben : Workbooks("0001.xlsx").Sheets("0001").Range("A2:M2").Copy)
immer nach schreiben in Auswertung.xlsx um eines erhöhen und das eben immer dann wenn das makro neugestartet wird und er soll es solange machen bis im ordner wo die daten liegen z.b. 0001 - 1000 (csv files) nicht mehr vorhanden sind also z.b. bis 0050 sind daten vorhanden er macht das bis 50 und dann schreib er "Daten sind erfolgreich übertragen worden".
wäre schön wenn mir jemand helfen könnte bitte danke

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Was genau ist deine Frage?
10.06.2014 14:50:01
EtoPHG
Markus,
Excel kann nun mal nicht mehrere Arbeitsmappen mit dem gleichen Namen geöffnet haben.
Dein erster Copy-Befehl bezieht sich ja schon auf eine (bereits geöffnete) "0001.xlsx", darum kannst du mit einem erneuten .Open nicht nochmals den gleichen Namen verwenden.
Deine Frage habe ich nicht verstanden. Vielleicht formulierst du sie zum besseren Verständnis nochmals in kurzen, verständlichen Sätzen. Fragen enden (zumindest bei mir) mit einem Fragezeichen.
Warum bei dir nicht?
Gruess Hansueli

AW: VBA Excel
10.06.2014 15:01:47
Markus
Meine frage ist wie kann ich es so gestallten das er immer die datei 0001.xlsx und den tabellennamen
diese zeile : Workbooks("0001.xlsx").Sheets("0001").Range("A2:M2").Copy
nach dem er den vorgang beendet hat also erfolgreich in die datei gespeichert hat.
immer um eines erhöhen ... also ich habe z.b. 50 files die heisen :
0001
0002
0003
....
0050
das er diesen vorgang bei allen dateien macht also immer die 2te zeile rauskopiert und in das file "Auswertung.xlsx" speichert...

Anzeige
AW: VBA Excel
10.06.2014 17:17:52
Markus
Keiner eine Idee ?

AW: VBA Excel
10.06.2014 21:06:28
Uduuh
Hallo,
ca. 1000x gefragt.
Sollte so gehen:
Sub Kopieren()
Application.ScreenUpdating = False
Dim leereZeile As Long
Dim sDatei As String, sPfad As String
Dim wkb As Workbook, wksZiel As Worksheet
sPfad = "c:\dateipfad\"
If Right(sPfad, 1)  "\" Then sPfad = sPfad & "\"
sDatei = Dir(sPfad & "?.xlsx")
Workbooks.Open "C:\dateipfad\Auswertung.xlsx"
Set wksZiel = ActiveWorkbook.Sheets("Tabelle1")
Do While sDatei  ""
With wksZiel
leereZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
End With
Set wkb = Workbooks.Open(sPfad & sDatei)
wkb.Sheets(1).Range("A2:M2").Copy wksZiel.Cells(leereZeile, 1)
wkb.Close False
sDatei = Dir
Loop
wksZiel.Parent.Close True
Application.ScreenUpdating = True
MsgBox ("Daten sind erfolgreich übertragen worden")
End Sub
Gruß aus’m Pott
Udo

Anzeige
AW: VBA Excel
11.06.2014 06:49:53
Markus
Also das funktioniert nicht... hab es ausprobiert er schreibt alle sachen in eine zeile... also da funktioniert meines ja besser ...
kann mir jemand einfach eine "schleife" bei meinen einbauen ? und das ich nicht alle files öffnen muss ... damit er die selber öffnet und schließt von wo er sie rausnimmt ... also 0001.csv

Hinweise....
13.06.2014 18:28:36
RolfK
Hallo Markus,
nur falls Du Dich wundern solltest, dass Du trotz Kennzeichen der offenen Frage keine Antwort mehr bekommst. Das mag daran liegen, dass Du, um es sehr zurückhaltend auszudrücken ziemlich unhöflich reagiert hast, denn
Natürlich funktioniert das Modul von Udo wie zu erwarten einwandfrei ... Und man schreibt einfach nicht
Also das funktioniert nicht... hab es ausprobiert er schreibt alle sachen in eine zeile... also da funktioniert meines ja besser ...

selbst wenn etwas nicht so wie erwartet funktionieren sollte. Denn hier sind ehrenamtliche Helfer am Werk, die ihre freie Zeit für Leute wie Dich opfern...
Aber mal unabhängig davon, funktioniert das Modul von Udo selbstverständlich einwandfrei, wenn Pfade und Namen richtig gesetzt sind. Wahrscheinlich liegt die Ursache allerdings darin, dass Du in Deinen Eingangsbeschreibungen immer von Excel-Dateien z.B. 0001.xlsx sprichst, die ausgelesen werden sollten und dies auch in Deinem eigenen Modul so aufgenommen hast. Erst später könnte man Deinen unklaren Beschreibungen entnehmen, dass es sich jedoch um Textdateien also z.B. 0001.csv handelt.
Und das dürfte Dir als Excel-Profi doch eigentlich klar sein, dass man die nicht mit der Anweisung
sDatei = Dir(sPfad & "?.xlsx")
einlesen kann. Je nachdem wie Deine Dateien aufgebaut sind, kannst Du ja mal den folgenden Schnipsel probieren:
sDatei = Dir(sPfad & "?.csv")
Falls das nicht funktioniert, einfach mal in der Recherche suchen nach der Behandlung von .csv Dateien.
Gruß Rolf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige