Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
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

fehler in VBA

fehler in VBA
26.01.2016 10:29:26
Erik
Hallo zusammen!
Habe mir mittels Makrorecorder und einem fertigen "Datei öffnen makro" ein Makro gebastelt.
Es ist aber ein Fehler drinn den ich alleine nicht gelöst bekomme.
Hier einmal das Makro:
Sub csvImport()
Cells(65000, 4).End(xlUp).Offset(1, 0).Select
Dim wb As Workbook
Dim lngZ As Long
Dim strFileName
Dim strFilter As String
strFilter = "csv Dateien(*.csv*), *.csv*"
ChDrive "D"
ChDir "D:\"
strFileName = Application.GetOpenFilename(strFilter)
If strFileName = False Then Exit Sub
Set wb = Workbooks.Open(strFileName)
Range("J1").Select
Selection.Copy
Windows("Kundenteile WerkstattTEST.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("E98").Select
Windows(strFileName).Activate
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Range("B1", "B" & Range("a65536").End(xlUp).Row).Select
Selection.Copy
Windows("Kundenteile WerkstattTEST.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F98").Select
Windows(strFileName).Activate
Application.CutCopyMode = False
Range("D1", "D" & Range("a65536").End(xlUp).Row).Select
Selection.Copy
Windows("Kundenteile WerkstattTEST.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("G98").Select
Windows(strFileName).Activate
Application.CutCopyMode = False
Range("E1", "E" & Range("a65536").End(xlUp).Row).Select
Selection.Copy
Windows("Kundenteile WerkstattTEST.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows(strFileName).Activate
ActiveWindow.Close
End Sub

Der Fehler steckt in den Zeilen:
Windows(strFileName).Activate
Was muß dahin. Der Name ändert sich ja immer. Excel soll immer zwischen der ausgngewählten Datein und dem Sheet Kundenteile wechseln !
Gruß
Erik
Windows(strFileName).Activate

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

Betreff
Datum
Anwender
Anzeige
AW: fehler in VBA
26.01.2016 11:20:33
otto
Hi,
ich denke
Workbooks(strFileName).Activate
otto

AW: fehler in VBA
26.01.2016 11:25:03
Erik
Hallo Otto,
leider kommt die Fehlermeldung:
Laufzeitfehler `9`:
Index außerhalb des gültigen Bereichs

AW: fehler in VBA
26.01.2016 11:54:49
otto
Hi,
sorry, csv ist ja auch kein Workbook!
otto

AW: fehler in VBA
26.01.2016 12:22:19
Erik
Hat noch jemand ne Idee ?
Gruß
Erik

AW: fehler in VBA
26.01.2016 12:43:47
Daniel
hi
mit GetOpenFileName bekommst du den vollständigen Dateinamem mit Pfad.
für die Aktion Windows(...).Activate brauchst du aber nur den reinen Dateinamen, ohne Pfadangabe davor.
du müsstest also erstmal in strFileName den Pfad abschneiden, so dass der reine Dateiname übrig bleibt:
Windows(Mid(StrFileName, InstrRef(StrFileName, "\") + 1)).Activate

ist aber unnötiger Aufwand, weil du ja die Datei in einer Variablen abgelegt hast, und deren Namen abfragen kannst:
Windows(wb.Name).Activate

aber auch das ist unnötig, weil man hier die Datei direkt aktivieren kann und normalerweise nicht über das Fenster geht:
wb.Activate

aber auch das ist nunnötig wie man normalerweise die Worksbooks uns Sheets gar nicht aktiviert und selektiert, sondern diese Angaben direkt vor den Befehl schreibt:
dh man Schreibt nicht:
Workbooks("Mappe1").Activate
Sheets("Tabelle1").Select
Range("A1").Select
Selection.Copy
Workbooks("Mappe2").Activate
Sheets("Tabelle1").Select
Range(Rows.count, 1).end(xlup).Offset(1, 0).Select
Selection.PasteSpecial xlpasteAll
sondern man schreibt direkt, ohne zu selektieren:
Workbooks("Mappe1").Sheets("Tabelle1").Range("A1").Copy
Workbooks("Mappe2").Sheets("Tabelle2").Cells(Rows.count, 1).End(xlup).Offset(1, 0).PasteSpecial xlpasteall
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige