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

Makro - Bereich kopieren u einfüg. in mehreren Tabellenblät.

Makro - Bereich kopieren u einfüg. in mehreren Tabellenblät.
05.02.2024 15:44:59
FelixBaechlein
Hi,

ich versuche mich gerade an einer Makroerstellung und weiß nicht so recht wie ich es hinbekommen soll.

Folgender Sachverhalt:

Ich habe eine Datei mit mehreren Tabellenblättern.

Im ersten Tabellenblatt soll ausgehen von der ausgewählten Zelle zuerst vier Zellen nach links gewandert werden und dann von dort ein Bereich (von der nun aktiven Zelle einige Zellen nach links) kopiert und als Wert wieder eingefügt werden. Der Bezug soll hier relativ sein. Wenn ich also Z14 ausgewählt habe. soll V14:L14 kopiert werden. Wenn ich Z18 ausgewählt habe, V18:L18. Soweit bekomme ich das noch hin.

Dann soll allerdings ins nächste Tabellenblatt gesprungen werden und die gleiche Aktion durchgeführt werden, ausgehend von der GLEICHEN Zelle wie im ersten Tabellenblatt (Wenn im ersten Tabellenblatt Z14, dann hier auch Z14). Und das ganze dann noch für die nächsten 20 Tabellenblätter.

Habt ihr eine Idee wie ich das am besten hinbekomme? Gerne mit einem kurzen Beispielcode, das wäre super. Ich kenne mich nicht so gut aus.

Danke und liebe Grüße!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro - Bereich kopieren u einfüg. in mehreren Tabellenblät.
05.02.2024 16:22:40
Beverly
Hi Felix,

vielleicht so:

Sub Werte()

Dim wksTab As Worksheet
Dim lngZeile As Long
Dim intSpalte As Integer
intSpalte = Selection.Cells(1).Column
lngZeile = Selection(1).Row
If intSpalte - 14 > 0 Then
For Each wksTab In ThisWorkbook.Worksheets
wksTab.Range(wksTab.Cells(lngZeile, intSpalte - 14), wksTab.Cells(lngZeile, intSpalte)).Copy
wksTab.Cells(lngZeile, intSpalte - 14).PasteSpecial Paste:=xlValues
Next wksTab
End If
End Sub


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Makro - Bereich kopieren u einfüg. in mehreren Tabellenblät.
06.02.2024 15:36:11
FelixBaechlein
Hi Karin,

super, das funktioniert grundsätzlich schon mal gut, danke!

Eine kleine Anpassung bräuchte ich noch. Aktuell wird das Makro dann auf alle Tabellenblätter angewendet.
Ist es möglich vorzugeben, dass das Makro nur für Blätter rechts vom "Startblatt" ausgeführt wird. Oder alternativ, falls das so nicht möglich ist, für die "nächsten" 30 Tabellenblätter?
AW: Makro - Bereich kopieren u einfüg. in mehreren Tabellenblät.
06.02.2024 15:45:50
Beverly
Hi Felix,

bedeutet dies, dass nur das Blatt "Startblatt" ausgeschlossen werden soll? Das kann man mit einer If-Anweisung realisieren:

        For Each wkstab In ThisWorkbook.Worksheets

If wkstab.Name > "Startblatt" Then
wkstab.Range(wkstab.Cells(lngZeile, intSpalte - 14), wkstab.Cells(lngZeile, intSpalte)).Copy
wkstab.Cells(lngZeile, intSpalte - 14).PasteSpecial Paste:=xlValues
End If
Next wkstab


Wenn mehrere ausgeschlossen werden sollen, kann man das in einer Select-Case-Anweisung machen:

        For Each wksTab In ThisWorkbook.Worksheets

Select Case wksTab.Name
Case "Startblatt", "Weiteres Blatt" '== hier alle Blattnamen aufführen in denen nichte gemacht werden soll
' mache nichts
Case Else
wksTab.Range(wksTab.Cells(lngZeile, intSpalte - 14), wksTab.Cells(lngZeile, intSpalte)).Copy
wksTab.Cells(lngZeile, intSpalte - 14).PasteSpecial Paste:=xlValues
End Select
Next wksTab


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Makro - Bereich kopieren u einfüg. in mehreren Tabellenblät.
09.02.2024 09:39:26
FelixBaechlein
Hi Karin,

super, das funktioniert einwandfrei. Ich danke dir!

Ein Problem habe ich jedoch noch, vielleicht hast du dafür einen Tipp..

Ich wollte den Code nun in Google Sheets übertragen. Dafür gibt es einen VBA-to AppsScript-Converter von Google, deshalb dachte ich das wäre kein Problem.
Heute habe ich leider festgestellt dass der Converter nur von Enterprise Premium Kunden genutzt werden kann...

Kennst du dich mit AppsScript aus oder hast einen Tipp, wo man das konvertieren kann?

Der finale VBA Code sieht aktuell so aus

Sub Werte()

Dim wksTab As Worksheet
Dim lngZeile As Long
Dim intSpalte As Integer
intSpalte = Selection.Cells(1).Column
lngZeile = Selection(1).Row
If intSpalte - 24 > 0 Then
For Each wksTab In ThisWorkbook.Worksheets
Select Case wksTab.Name
Case "Marktplatzvergleich", "Parent Mapping", "SB Bericht", "SC Bericht" '== hier alle Blattnamen aufführen in denen nichte gemacht werden soll
' mache nichts
Case Else
wksTab.Range(wksTab.Cells(lngZeile, intSpalte - 24), wksTab.Cells(lngZeile, intSpalte - 3)).Copy
wksTab.Cells(lngZeile, intSpalte - 24).PasteSpecial Paste:=xlValues
End Select
Next wksTab
End If
End Sub
Anzeige
AW: Makro - Bereich kopieren u einfüg. in mehreren Tabellenblät.
09.02.2024 10:13:23
Beverly
Hi Felix,

damit kenne ich mich nicht aus. Eröffne dazu bitte einen neuen Thread, denn das Problem hat nichts mit dem Code an sich zu tun. Andere Forumsbenutzer haben möglicherweise dasselbe Problem und werden gewiss nicht vermuten, dass eine mögliche Lösung in diesem Thread hier zu finden sein könnte.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
AW: Makro - Bereich kopieren u einfüg. in mehreren Tabellenblät.
09.02.2024 10:18:22
FelixBaechlein
Hi Karin,

alles klar. Ich danke dir trotzdem vielmals, du hast mir sehr geholfen. Das konvertieren bekomme ich auch noch hin!

Schönes Wochenende!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige