Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro über mehrere Tabellenblätter

Makro über mehrere Tabellenblätter
01.10.2021 12:03:43
sounwissend
Hallo,
ich bin leider VBA ziemlich unwissend (habe mich vor über 10 Jahren damit befasst, inzwischen fast alles vergessen und muss jetzt dringend etwas umsetzen) - das, was ihr wohl oft lest :-)
Mein Problem:
Meine Sub klappt zwar inwzischen toll für das nächste Tabellenblatt, ich möchte jedoch, dass das für alle Tabellenblätter funktioniert.
Ich komme leider auch nach vielen Stunden ausprobieren nicht auf die Lösung.
(Ich bin schon stolz auf mich, dass ich es geschafft habe, dass die Werte Spalte A meiner Ausgangstabelle mit den Werten Spalte B
des nächsten Tabellenblattes verglichen werden, und da, wo die Werte übereinstimmen, die Werte Spalten A-E
der Ausgangstabelle in die Spalten C-G des nächsten Tabellenblattes kopiert werden - nun soll das jedoch mit allen Tabellenblättern so erfolgen).
Könnt Ihr mir helfen?

Sub ISINvergleichenZellenKopierenInAllenTabellenblaettern()
Dim sh As Worksheet
Dim rng As Range
Dim iRow As Integer
iRow = 1
For Each sh In Worksheets
If sh.Index > 1 Then
Do Until IsEmpty(Cells(iRow, 1))
Set rng = sh.Columns(2).Find( _
what:=Cells(iRow, 1), lookat:=xlWhole, LookIn:=xlValues)
If Not rng Is Nothing Then
Range(rng.Offset(0, 1), rng.Offset(0, 5)).Value = _
Range(Cells(iRow, 1), Cells(iRow, 5)).Value
End If
iRow = iRow + 1
Loop
End If
Next sh
End Sub
Ich sag einfach mal DANKE im Voraus!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro über mehrere Tabellenblätter
01.10.2021 12:26:05
peterk
Hallo
Ungetestet:

Sub ISINvergleichenZellenKopierenInAllenTabellenblaettern()
Dim sh As Worksheet
Dim itsMe As Worksheet
Dim rng As Range
Dim iRow As Integer
Set itsMe = Worksheets(1)
For Each sh In Worksheets
iRow = 1
If sh.Index > 1 Then
Do Until IsEmpty(itsMe.Cells(iRow, 1))
Set rng = sh.Columns(2).Find( _
what:=itsMe.Cells(iRow, 1), lookat:=xlWhole, LookIn:=xlValues)
If Not rng Is Nothing Then
sh.Range(sh.rng.Offset(0, 1), sh.rng.Offset(0, 5)).Value = _
itsMe.Range(itsMe.Cells(iRow, 1), itsMe.Cells(iRow, 5)).Value
End If
iRow = iRow + 1
Loop
End If
Next sh
End Sub

Anzeige
AW: Makro über mehrere Tabellenblätter
01.10.2021 12:37:12
sounwissend
Hallo und erst einmal vielen Dank! Doch es funktioniert leider noch nicht.
Ich erhalte eine Fehlermeldung:
"Fehler beim Kompilieren: Methode oder Datenobjekt nicht gefunden"
an dieser Stelle:
If Not rng Is Nothing Then
sh.Range(sh.rng.Offset(0, 1), sh.rng.Offset(0, 5)).Value = _
itsMe.Range(itsMe.Cells(iRow, 1), itsMe.Cells(iRow, 5)).Value
AW: Makro über mehrere Tabellenblätter
01.10.2021 12:41:17
peterk
Hallo
Sollte wohl heissen

sh.Range(rng.Offset(0, 1),rng.Offset(0, 5)).Value =
Peter
AW: Makro über mehrere Tabellenblätter
01.10.2021 12:45:33
sounwissend
Hallo peterk,
ich bin Dir so dankbar und mache gerade Luftsprünge - es hat geklappt!
Ganz, ganz herzlichen Dank - ich habe es einfach nicht ohne Hilfe geschafft.
Anzeige

361 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige