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

Copy to all sheets Problem

Copy to all sheets Problem
01.07.2022 11:39:07
Johannes
hallo nochmal,
Hänge noch an einem anderen Problem, mit dem ich nicht weiter komme.
Ich habe einen code der mir einen festen Bereich auf alle Arbeitsblätter kopieren soll außer 2 spezielle blätter (Name bekannt)
Geht so weit bis auf 2 Probleme.
1.) das erste WS "All" wird beim Kopieren übersprungen, aber das 2, "ANT" wird trotzdem überschrieben. Ich habe es mit oder versucht, aber gescheitert.
2.) beim Kopieren werden nur die Zellwerte kopiert, nicht die Formatierung. Ich vermute mal, das liegt an (.value), hab da mal was gelesen, aber ich komme nicht mehr darauf.

Sub Copy_to_all_Sheets()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
'If Not wks.Name = "All" Then
If Not wks.Name = "All" Or wks.Name = "ANT" Then
'If Not wks.Name = "All" Or If Not wks.Name = "ANT" Then
wks.Range("O1:DK200").Value = Tabelle1.Range("O1:DK200").Value
End If
Next
Set wks = Nothing
MsgBox " bereich O1:DK200 auf alle blätter kopiert !"
End Sub
Kann mir da jemand helfen?
Danke
Johannes

26
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Copy to all sheets Problem
01.07.2022 11:48:11
Oberschlumpf
Hi Johannes,
änder mal diesen Code...

If Not wks.Name = "All" Or wks.Name = "ANT" Then
...um in...

If wks.Name  "All" And wks.Name  "ANT" Then
Hilfts?
Ciao
Thorsten
AW: Copy to all sheets Problem
01.07.2022 12:07:09
onur
Oder das NOT ausserhalb von Klammern schreiben:

If Not (wks.Name = "All" Or wks.Name = "ANT") Then

AW: Copy to all sheets Problem
01.07.2022 12:19:25
Johannes
Hallo,
Danke aber die Lösung von Thorsten hat das gelöst

If wks.Name  "All" And wks.Name  "ANT" Then
merci
Johannes
Anzeige
AW: Copy to all sheets Problem
01.07.2022 12:23:09
onur
Es gibt nicht nur EINE Lösung - Wenn du NOT so benutzt, wie du es getan hast, bezieht es sich nur auf die ERSTE Bedingung, aber nicht und nicht auf BEIDE.
AW: Copy to all sheets Problem
01.07.2022 12:17:17
Johannes
Hi Thorsten
Ja hilft danke
Ich traue mich jetzt nicht mehr "super" zu sagen bevor ich wieder prügel bekomme,
aber das hat mich gestern bis Mitternacht wach gehalten.
Hättest du für mich auch eine Lösung für Problem, dass die Formatierung nicht mit kopiert wird? Ohne übermäßig auf deinen Nerven herumzutrampeln.
Ich versuche, auch aus Fehlern zu lernen.

Sub Copy_to_all_Sheets()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
If wks.Name  "All" And wks.Name  "ANT" Then
wks.Range("O1:DK200").Value = Tabelle1.Range("O1:DK200").Value
End If
Next
Set wks = Nothing
MsgBox " Bereich O1:DK200 auf alle blätter kopiert !"
End Sub
Johannes
Anzeige
AW: Copy to all sheets Problem
01.07.2022 12:20:09
onur

wks.Range("O1:DK200").copy  Tabelle1.Range("O1:DK200")

AW: Copy to all sheets Problem
01.07.2022 12:50:40
Daniel
besser, ist beim Einfügen nur die linke obere Zelle des Zielbereichs anzugeben.
einen echten Zielbereich braucht man nur, wenn der kopierte Bereich vervielfältigt werden soll und eine andere Größe haben soll als der kopierte Bereich.
braucht man aber nur eine 1:1 Kopie, reicht die linke obere Zelle als Ziel
dann hat man weniger Aufwand, wenn der kopierte Zellbereich variabel ist, weil man den Zielbereich nicht auch noch anpassen muss

wks.Range("O1:DK200").copy  Tabelle1.Range("O1")
Gruß Daniel
Anzeige
AW: Copy to all sheets Problem
01.07.2022 13:54:52
onur
Stimmt auch nun wieder ......
AW: Copy to all sheets Problem
01.07.2022 14:11:03
Johannes
Hallo nochmal,
Weiß nicht, ob am Freitagnachmittag liegt, aber der code so wie ich ihn habe kopiert immer nur die werte ohne Formeln und Formatierungen.
Hier nochmal gesammelte werke. Ich habe den Bereich verkleinert zum Üben gehts schneller:
Hab ich was falsch gemacht?
VG. Johannes

Sub Copy_to_all_Sheets()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
If wks.Name  "All" And wks.Name  "ANT" Then
'wks.Range("O1:R200").Value = Tabelle1.Range("O1:R200").Value
'wks.Range("O1:DK200").copy  Tabelle1.Range("O1")
wks.Range("O1:R200").Copy Tabelle1.Range("O1:R200")
End If
Next
Set wks = Nothing
MsgBox " bereich O1:DK200 auf alle blätter kopiert !"
End Sub

Anzeige
AW: Copy to all sheets Problem
01.07.2022 14:18:08
onur
"kopiert immer nur die werte ohne Formeln und Formatierungen" - das ist Blödsinn - ich habe es gerade eben noch getestet. Dann liegt es an irgendeinem anderen Code von dir, der da noch dazwischenpfuscht.
AW: oder ich bin zu blöde
01.07.2022 15:32:29
Johannes
Hallo, oder ich bin zu blöde
Werde mir das Wochenende damit versauen.
Bei mir gehts definitiv nicht, aber ich suche weiter, was da bei mir rumpfuscht.
Schönes Wochenende
Johannes
AW: oder ich bin zu blöde
01.07.2022 15:33:20
onur
Poste doch die Datei mal.
AW: oder ich bin zu blöde
02.07.2022 10:15:31
Johannes
Hi Onur,
anbei die Testdatei, leider wegen 300KB Beschränkung sehr limitiert
auf dem Button im blauen Feld im WS "Master" ist Gerds Lösung verknüpft in Modul3
Die anderen, die ich unter anderen probiert habe, sind in Modul 4
https://www.herber.de/bbs/user/153925.xlsm
Danke Euch allen
Johannes
Anzeige
AW: oder ich bin zu blöde
02.07.2022 10:27:46
onur
Habe dir eben schon (10:21 Uhr) geantwortet.
AW: oder ich bin zu blöde
02.07.2022 10:30:46
onur
Sorry, natürlich SO:

Tabelle1.Range("O1:R200").Copy wks.Range("O1")

AW: oder ich bin zu blöde
02.07.2022 12:44:48
Johannes
Passt!
Danke Euch alle wieder mal
Schön das ich sogar an einem Samstag, wenn die Sonne scheint eine Antwort bekomme.
Ihr seid die besten.
Schönes Wochenende
Johannes
AW: Copy to all sheets Problem
01.07.2022 14:58:46
GerdL
Hallo Johannes!

Sub Copy_values_to_several_sheets()
Dim wks As Worksheet
Tabelle1.Range("O1:R200").Copy
For Each wks In ThisWorkbook.Worksheets
Select Case wks.Name
Case "All", "ANT", Tabelle1.Name
Case Else
wks.Range("O1").PasteSpecial Paste:=xlPasteValues
End Select
Next
Application.CutCopyMode = False
MsgBox " Bereich O1:R200 auf diverse Blätter kopiert !"
End Sub
Gruß Gerd
Anzeige
AW: Copy to all sheets Problem
01.07.2022 15:35:43
Johannes
Danke Gerd, kann jetzt nimmer, die Familie ruft.
Aber ich setze mich am WE wieder dran.
Danke
Johannes
AW: Fast! nur text copiert. mit Datei hochgeladen
02.07.2022 10:08:08
Johannes
Moin Gerd
ich weiß nicht, ob Du heute Samstag jemand da ist, aber ich probiers mal.
Ich habe Deinen code gerade probiert, mit folgendem Ergebnis!
Ich habe 5 Worksheets. All,Ant,Master,Tabelle3,Tabelle4 in eine brandneue Excel Arbeitsmappe
Ausgelöst hab ich durch Button auf Master mit dem Modul mit Deinem code.
Das Ergebnis:
Sheet All, ist leer - soll leer, gut so
Sheet Ant, ist leer - soll leer, gut so
Sheet Master, ist unverändert, gut so
Sheet Tabelle 3, ist unformatet text - soll Formel und bedingte Formatierung, ned so gut
Sheet Tabelle 4, ist unformatet text - soll Formel und bedingte Formatierung, ned so gut
Keine Ahnung an was das liegt, das zieht sich wie ein faden durch alle Vorschläge das die Formatierung nicht übernommen wird und das ist mit das wichtigste da ich Änderungen in Master auf die bis zu 15 WS übertragen will. Meistens eben Formeländerungen oder bedingte Formatierung, die dann übernommen werden soll.
Ich mache es bis jetzt mit copy-past und das klappt immer. Also kann es nicht unmöglich sein. Ich habe extra nochmal alles auf ein neues Arbeitsblatt kopiert und hochgeladen.
https://www.herber.de/bbs/user/153925.xlsm
Im Sheet »Master« auf den Button im blauen Feld ist Deine Lösung verknüpft, und die befindet in Modul 3
Danke
Johannes
Anzeige
AW: Fast! nur text copiert. mit Datei hochgeladen
02.07.2022 10:21:38
onur
Hi,
FUNKTIONIERT doch alles, wie es soll, WENN du es so machst, wie ich schrieb:

wks.Range("O1:DK200").copy  Tabelle1.Range("O1")
und NICHT mit

wks.Range("O1").PasteSpecial Paste:=xlPasteValues
da PasteValues immer nur die WERTE einfügt (heisst ja nicht umsonst pasteVALUES).
kleiner Widerspruch
02.07.2022 10:32:33
Oberschlumpf
Moin onur,
wenn du...

wks.Range("O1:DK200").copy  Tabelle1.Range("O1")
...genau so in der neu gezeigten Bsp-Datei verwendest, ist der interne Name Tabelle1 = Sheets("Master").
Und dann würden die Daten immer ins Master eingefügt werden = gar nich gut :-)
@Johannes
Ich hab dem Import-Button das Makro "Copy_values_to_several_sheets_GERD" aus Modul3 zugewiesen, weil du ja extra erwähnt hattest, das Makro ist in Modul3.
Und damit auch alle Formate/Formeln übertragen werden, habe ich aus...

wks.Range("O1").PasteSpecial Paste:=xlPasteValues
...das hier gemacht...

wks.Range("O1").PasteSpecial Paste:=xlPasteAll
Dann auf den Button geklickt, und sicherheitshalber^^, das Makro mit F8 Zeile für Zeile durchlaufen lassen.
Ergebnis:
- nur in den Sheets "Tabelle3" und "Tabelle4" wird aus Tabelle "Master" der Zellbereich "O1:R200" inklusive Format + Formeln eingefügt.
Nimm die Änderungen im Code vor und teste selbst.
Mal sehen, wie dein Feedback sein wird.
Ciao
Thorsten
Anzeige
AW: kleiner Widerspruch
02.07.2022 10:33:26
onur
Habe mich bereits verbessert.
AW: kleiner Widerspruch
02.07.2022 10:40:22
Oberschlumpf
jep, DAS hatte ich aber nich mitbekommen, weil ich während deiner Verbesserung entweder noch am Formulieren oder gerade beim Absenden war :-)
AW: kleiner Widerspruch
02.07.2022 10:46:12
onur
Ich hatte dummerweise einfach meine Codekorrektur für die allererste Frage genommen (bzw damals seine Zeile korrigiert)
Zu der Zeit wusste ja Keiner, dass die GANZE Zeile Murks war. Aber jetzt, mit der Datei, sah man es sofort....
AW: kleiner Widerspruch
02.07.2022 12:40:39
Johannes
Hi Thorsten,
Geht alles wie es aussieht, Danke
Schönes Wochenende
Johannes

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige