Tabelle in mehrere Blätter kopieren
#1
Hallo,
Ich habe im Tabellenblatt "Leg1 1-2" eine Änderung im Bereich V21:W23 vorgenommen.
Habe dann nachfolgendes Makro aufgenommen,  was diesen Bereich in das nächst folgende Tabellenblatt kopiert.
Dieses soll jetzt aber noch in ca. 20 nachfolgenden Tabellenblätter so gemacht werden.
Kann man dieses Makro so erweitern das man das erste und letzte Tabellenblatt, also in meinem Beispiel "Leg1 1-3"  bis "Leg5 2-3" anspricht wo es dann reinkopiert werden soll.
Ich habe folgendes versucht um dieses Makro zu erweitern: Sheets("Leg1 1-3"):Sheets("Leg5 2-3").Select , leider ohne Erfolg.
Danke schon mal im Voraus
Gruß Didi

Code:
Sub Kopieren()
'
' Kopieren Makro
'

'
    Sheets("Leg1 1-2").Select
    Range("V21:W23").Select
    Selection.Copy
    Sheets("Leg1 1-3").Select
    Range("V21").Select
    ActiveSheet.Paste
    Range("E8").Select
End Sub
Top
#2
Nun dein Beitrag ist schon länger her,deswegen die Frage, ob du es lösen konntest?
Top
#3
Was heißt länger her?, ist von gestern 25.06.21 17:14
Top
#4
Hallo

dann probiere doch bitte diesen Code aus:
Ich gehe davon aus, dass Leg1 1-2 das Tabellenblatt1 ist, ansonsten
Tabelle1.Range anpassen.

Sub Kopieren()

Dim wks As Worksheet

    For Each wks In ActiveWorkbook.Worksheets
      
        wks.Range("V21:W23").Value = Tabelle1.Range("V21:W23").Value
 
    Next

End Sub

Schönen Gruß, marzian
Top
#5
Hallo Marzian,
dein Code kopiert mir nur die Werte aus der Tabelle, die Formatierung (Rahmen, Farben) kopiert er nicht mit.
Weiterhin wird es in allen Tabellenblätter kopiert.
Ich bräuchte eine Lösung, dass aus Tabellenblatt 2 der Bereich V21:W23 mit allen Formatierungen dann in die Tabellenblätter 3 bis 20 kopiert wird.
Also nicht in die Blätter davor bzw. dahinter.
Trotzdem Danke für dein Vorschlag.
Gruß Didi
Top
#6
Kurze Google Suche:

Schau dir die VBA Funktionen

.PasteSpecial Paste:=xlPasteValues 
.PasteSpecial Paste:=xlPasteFormats

an.
Cadmus
Top
#7
Jo, dass wäre sicherlich eine längere Google Suche bei mir.
Hab es da auch schon mit mehreren Suchanfragen versucht.
Hätte gehofft, dass es eine einfachere Möglichkeit gibt.
Dann werde ich mir wohl die Mühe machen müssen alles einzeln in die Tabellenblätter reinzukopieren.
Trotzdem Danke
Didi
Top
#8
(29.06.2021, 22:41)DartDidi schrieb: ..... dass es eine einfachere Möglichkeit gibt.....

Und die wäre?  Andere die Arbeit machen lassen? 

Du hast die Hälfte der Lösung schon bekommen. Aber is vielleicht besser das du das in Zukunft trotzdem lieber von Hand machst. 


Sub schleife()

Dim ws
Dim iZahl As Integer

For Each ws In Worksheets
 
  iZahl = CInt(Replace(ws.CodeName, "Tabelle", ""))
  If iZahl >= 3 And iZahl <= 20 Then
  
  'hier eigener Code

  End If
 
Next ws

End Sub
Top
#9
Hallo,
vielen Dank, komme ich so nicht mit zurecht.
Verstehe dieses auch nur Ansatzweise.
habe versucht den Code aus meinem ersten Beitrag einzufügen, kommen nur Fehlermeldungen.
Auch kein Problem, dann kopiere ich das eben per Hand einzeln nacheinander.
Gruß Didi
Top
#10
Hallo,

ok, dann probiere es so:


Sub Kopieren()

  Dim i As Integer
    Application.ScreenUpdating = False
   
    For i = 3 To 20
   
      Tabelle2.Range("V21:W23").Copy
      Sheets(i).Range("V21:W23").PasteSpecial
   
    Next i
 
  Application.CutCopyMode = False
  Application.ScreenUpdating = True
 
End Sub

Herzliche Grüße
marzian
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste