ich habe nach langer Zeit mal wieder ein Anliegen, da ich mich VBA-technisch für mich mal wieder auf Neuland begeben habe. Ich habe folgendene Fragestellungen, bei denen ich nicht weiter weiß und mich auch googlen nicht weiterbrachte (aber vllt. war ich auch einfach zu doof):
Ich möchte mithilfe eines VBA-Programmes alle Excel-Sheets einer Arbeitsmappe (ca. 60 sheets) durchlaufen. Jedes sheet das mit "T1" anfängt soll in der Spalte AA alle Werte kopieren und diese in die erste freie Spalte A in dem Sheet "CVA Kontrahenten" hinzufügen. Leider muss ich hierbei nach dem Namen im Excelsheet (und nicht nach dem Indexnamen) gehen, da die Datei regelmäßig erweitert/verändert wird und ich das Unternehmen im Dezember verlassen werde, um mich auf meine letzten Klausuren zu fokussieren.
Anbei die Formel, die ich geschrieben habe (u.a. angelehnt an etwas, das ich von Hajo gegoogelt habe) - ich glaube, dass der Code funktioniert bis auf den Punkt, dass keine Tabelle, die mit "T1" startet, gefunden wird, ich weiß aber nicht, wie ich es anders schreiben kann, LG (PS: Ich werde hierzu noch eine 2. Fragestellung gleich posten, bei der ich leider gar nicht weiterweiß):
Option Explicit
Sub Hallo()
'Variablen für Worksheet-Selection
Dim WsTabelle As Worksheet
Dim CVA As Worksheet
'Variablen zum Kopieren werden bestimmt
Dim Ticker1 As Range
Dim Ticker2 As Range
'Variablen, um in Worksheets zu arbeiten
Dim ZeileWorksheet As Long
Dim ReiheWorksheet As Long
Dim ZeileWorksheetEnde As Long
Dim ZeileCVA As Long
Dim ReiheCVA As Long
'Grundeinstellungen für die Worksheets
ReiheWorksheet = 27
ZeileWorksheet = 13
ZeileWorksheetEnde = 13
ZeileCVA = 2
ReiheCVA = 1
Set CVA = Sheets("CVA Kontrahenten")
'Code, um Worksheets auszuwählen, die "T1" beinhalten
For Each WsTabelle In Sheets
If Left(WsTabelle.Name, 2) = "T1" Then
With WsTabelle
ZeileWorksheetEnde = ZeileWorksheet
Do Until Cells(ZeileWorksheetEnde, ReiheWorksheet) = ""
If Cells(ZeileWorksheet, ReiheWorksheet) = "" Then
ZeileWorksheetEnde = ZeileWorksheetEnde + 1
End If
Loop
ZeileWorksheetEnde = ZeileWorksheetEnde - ZeileWorksheet
Set Ticker1 = Range(Cells(ZeileWorksheet, ReiheWorksheet), Cells(ZeileWorksheetEnde, _
ReiheWorksheet))
Ticker1.Copy
Worksheets("CVA Kontrahenten").Activate
Cells(ZeileCVA, ReiheCVA).PasteSpecial xlPasteAll
ZeileCVA = ZeileCVA + ZeileWorksheetEnde
ZeileWorksheetEnde = 0
End With
End If
Next WsTabelle
End Sub
Über Hilfe freue ich mich sehr!
LG
Michi