Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten Top
#2
Nun dein Beitrag ist schon länger her,deswegen die Frage, ob du es lösen konntest?
Antworten Top
#3
Was heißt länger her?, ist von gestern 25.06.21 17:14
Antworten 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
Antworten 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
Antworten Top
#6
Kurze Google Suche:

Schau dir die VBA Funktionen

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

an.
Cadmus
Antworten 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
Antworten Top
#8
(29.06.2021, 21: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
Antworten 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
Antworten 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
Antworten Top


Gehe zu:


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