ich bin neu hier und auch noch ziemlich grün in VBA, aber ich probiere mich gern. Aktuell verzweifel ich jedoch an einer Sache.
Ich habe ein Verwaltungsdatei, mit der ich andere Dateien anspreche und daraus meine Stunden und Reisekosten generiere. So weit so gut.
Ziel ist es eine Range aus einer Datei zu kopieren und in eine andere die Werte einzufügen.
Folgende Variante funktioniert, die Range ist aber bis auf die Zielzeile (Row) statisch.
Dim Row As Integer
Workbooks(Datei1).Worksheets(1).Range("E5:F" & Row).Copy
Nun kann die Spalte (F) aber auch variieren, also wollte ich diese durch eine Suche eines Wertes bestimmten und dann verwenden. Das ganze sieht wie folgt aus, funktioniert jedoch nicht.
Dim Zelle_Beg_Nr As Integer
Dim Zelle_End_Nr As Integer
Dim Zelle_Beg As String
Dim Zelle_End As String
' Suche Spalte für Arbeitsbeginn
Zelle_Beg_Nr = 1
Do Until Workbooks(Datei1).Worksheets(1).Cells(4, Zelle_Beg_Nr).Value = "Komm" Or Zelle_Beg_Nr = 26
Zelle_Beg_Nr = Zelle_Beg_Nr + 1
Loop
' Setze Buchstabe für Spalte
Zelle_Beg = Columns(Zelle_Beg_Nr).Address
Zelle_Beg = Left(Zelle_Beg, InStr(Zelle_Beg, ":") - 1)
Zelle_Beg = Right(Zelle_Beg, 1)
' Suche Spalte für Arbeitsende
Zelle_End_Nr = 1
Do Until Workbooks(Datei1).Worksheets(1).Cells(4, Zelle_End_Nr).Value = "t/Geht" Or Zelle_End_Nr = 26
Zelle_End_Nr = Zelle_End_Nr + 1
Loop
' Setze Buchstabe für Spalte
Zelle_End = Columns(Zelle_End_Nr).Address
Zelle_End = Left(Zelle_End, InStr(Zelle_End, ":") - 1)
Zelle_End = Right(Zelle_End, 1)
'Markieren und kopieren der Arbeitszeiten
Workbooks(Datei1).Worksheets(1).Range(Cells(5, Zelle_Beg_Nr), Cells(Row, Zelle_End_Nr)).Copy Hier erscheint ein Anwendungs- oder objektdefinierter Fehler (1004)
Bitte erschlagt mich nicht für diesen Stil, wie gesagt, bin absolut grün. Aber, wenn ich es nicht mit der dynamischen Spalte versuche, funktioniert die Geschichte recht gut.
Vielen Dank im Voraus für die Hilfe und auch die Geduld :-)
Gruß
Sascha