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

Dateiname als Variable

Dateiname als Variable
02.02.2022 15:34:49
wolfgang
Guten Tag,
ich habe folgenden Dateiname:
Windows("__Ausstattungs-Programm Vers. 11.31_i.xlsm").Activate
das ist die Datei, da möchte ich etwas reinkopieren, da klappt soweit.
Da der Dateiname aber durch die Vers. verschieden sein kann,
möchte ich einen variablen Namen haben.
So klappt es allerdings nicht:
Windows("__Ausstattungs-Programm Vers.*.xlsm")
Was muss ich ändern ?
gruss
wolfgang

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiname als Variable
02.02.2022 15:50:52
ChrisL
Hi Wolfgang
Hier ein Beispiel:

Sub t()
Dim wb As Workbook
Dim b As Boolean
For Each wb In Application.Workbooks
If wb.Name Like "__Ausstattungs-Programm Vers.*.xlsm" Then
b = True
Exit For
End If
Next wb
If Not b Then
MsgBox "nix gefunden"
Exit Sub
End If
MsgBox "weiter gehts mit Mappe: " & wb.Name
End Sub
cu
Chris
AW: Dateiname als Variable
02.02.2022 16:29:13
wolfgang
Hallo Chris,
danke.
Wo bzw. Wie setzte ich die Daten von meiner UserformW in die Windows("__Ausstattungs-Programm Vers.*.xlsm").
Es wird aus einer Listbox der UserformW in die Windows("__Ausstattungs-Programm Vers.*.xlsm") kopiert.
With Sheets("Belege")
ListBox1.ColumnCount = 7
ListBox1.ColumnWidths = "80;120;140;140;140;140"
ListBox1.List = .Range(.Cells(3, 2), .Cells(.Rows.Count, 7).End(xlUp)).Resize(, 7).Value
End With
in die "__Ausstattungs-Programm Vers.*.xlsm ab Zelle D12 bis D17
gruss
wolfgang
Anzeige
AW: Dateiname als Variable
02.02.2022 16:41:18
ChrisL
Hi Wolfgang
Den Zusammenhang mit der Listbox fehlt mir im Moment noch.
"wb" ist deine Variable für die Mappe/Datei. Bereich erwähnst du, aber dazwischen braucht es noch ein Blatt.
Workbooks("MappeXY.xlsm").Worksheets("Tabelle1").Range("A1")
entspricht unter Verwendung der Variable:
wb.Worksheets("Tabelle1").Range("A1")
oder hier mal irgendwas kopiert:

ThisWorkbook.Worksheets("Belege").Range("D12:D17").Copy wb.Worksheets("Tabelle1").Range("D12")
oder nur Werte übertragen:

wb.Worksheets("Tabelle1").Range("D12") = "xy"
cu
Chris
Anzeige
Hab auch was...
02.02.2022 16:58:49
wolfgang
Hallo Chris,
habe mal recherchiert und was gefunden:
Private Sub CommandButton5_Click()
Dim i
For i = 0 To 7
Sheets("Muster").Range("C12").Cells(i + 1, 1) = ListBox1.Column(i)
Next i
Exit Sub
Das kopieren klappt kommt aber noch Fehlermeldung am Schluss:
"Laufzeitfehler..."
Eigenschaft Column konnte nicht abgerufen werden.
anstelle von Sheets("Muster").Range("C12") sollte meine
"__Ausstattungs-Programm Vers.*.xlsm
Sheet 2 oder die aktive geöffnete Tabelle reinkopiert werden.
gruss
wolfgang
So klappt es bis auf...
02.02.2022 17:22:12
wolfgang
Hallo Chris,
so klappt es,
nur am Ende kommt Fehlermeldung:
Laufzeitfehler 1004
Anwendungs oder objektdefinierter Fehler
Dim wb As Workbook
Dim b As Boolean
Dim i
For Each wb In Application.Workbooks
If wb.Name Like "__Ausstattungs-Programm Vers.*.xlsm" Then
b = True
Exit For
End If
Next wb
'MsgBox "weiter gehts mit Mappe: " & wb.Name
wb.Activate
For i = 0 To 7
ActiveSheet.Range("C12").Cells(i + 1, 1) = ListBox1.Column(i)
Next i
gruss
wolfgang
Anzeige
AW: So klappt es bis auf...
02.02.2022 18:00:51
ChrisL
Hi
Trial&Error...

Dim wb As Workbook
Dim b As Boolean
Dim i Integer
For Each wb In Application.Workbooks
If wb.Name Like "__Ausstattungs-Programm Vers.*.xlsm" Then
b = True
Exit For
End If
Next wb
If b = False Then Exit Sub
For i = 0 To 6
wb.Worksheets("Sheet2").Range("C12").Cells(i + 1, 1) = ListBox1.Column(i)
Next i
oder

wb.Worksheets(2).Range("C12").Cells(i + 1, 1) = ListBox1.Column(i)
cu
Chris
Leider nicht !
02.02.2022 18:20:38
wolfgang
Hallo Chris,
die Zeile aus der Listbox der Userform wird kopiert alles i.o. aber
dann die gleiche Fehlermeldung:
Laufzeitfehler 1004
Anwendungs ​​oder objektdefinierter Fehler

For i = 0 To 6
bleibt hier stehen: wb.Worksheets(2).Range("C12").Cells(i + 1, 1) = ListBox1.Column(i)
aber Daten sind kopiert.
gruss
wolfgang
Anzeige
AW: Leider nicht !
02.02.2022 18:28:54
ChrisL
Hi
vielleicht sind es doch nur 6 statt 7 Spalten
For i = 0 To 5
(beachte, ab null statt eins zählen)
Und hier noch eine kleine Bettlektüre zum Thema Select/Activate verhindern. Hat nichts mit dem Fehler zu tun, aber trotzdem
https://www.herber.de/vbabasics/0009.html
cu
Chris
Jetzt Top ! Danke -)
02.02.2022 18:45:21
wolfgang
Hallo Chris,
erst mal Danke für die Unterstützung !
jetzt klappt es.
For i = 0 To 5
wb.Worksheets(2).Range("C12").Cells(i + 1, 1) = ListBox1.Column(i)
Next i
Unload Me
gruss
wolfgang

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige