Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Friedrichroda /
Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.

Zellen kopieren mit VBA
#1
Hallo liebes Forum,

bin neu hier und hab deswegen auch gleich ein Problem was ich selber nicht gelöst bekomme.
Also ich habe in Tabelle1 folgende Daten:
In A1:A20 steht entweder der Wert Yes, No oder None (Diese Werte werden farblich(Grün, Rot, Gelb) Bedingt formartiert) 
In B1:B20 steht ein Wert der Range  A1 bis AA27
Nun möchte ich, wenn möglich, die Formatierung aus A1:A20 nach Tabelle 2 an die Stelle kopieren die im B1:B20 steht
Als Beispiel:

Wenn in Tabelle1 die Zelle A1 Grün Formatiert ist und in B1 der Wert z.B. Y1 steht, möchte ich die Formatierung nach Tabelle2 in die Zelle Y1 kopieren usw.

Ich hoffe mal die Problembeschreibung ist verständlich

und sage jetzt schon mal Danke.

Gruß

Heiko 

  
to top
#2
Hallo Heiko,

die Farbe aus der bedingten Formatierung bekommst Du so nicht kopiert. Eine Möglichkeit wäre, auf Tabelle2 die bedingte Formatierung - entsprechend angepasst - ebenfalls anzuwenden.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top
#3
Hi,

(12.05.2015, 16:24)schauan schrieb: die Farbe aus der bedingten Formatierung bekommst Du so nicht kopiert. Eine Möglichkeit wäre, auf Tabelle2 die bedingte Formatierung - entsprechend angepasst - ebenfalls anzuwenden.

das geht so aber auch nicht, denn in der Zelle in Spalte B in Tabelle 1 kann ja jede beliebige Zelle stehen: heute Y1, morgen Z5, und die Y1 steht dann in einer anderen Zelle in Spalte B mit einer anderen bedingten Formatierung.

So verstehe ich die Ursprungsfrage.
Gruß Ralf

?mage

Die deutsche Rechtschreibung ist Freeware, d.h. du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, deswegen darfst du sie nicht verändern oder in veränderter Form veröffentlichen.
to top
#4
Hi zusammen,

(13.05.2015, 09:56)Rabe schrieb: das geht so aber auch nicht, denn in der Zelle in Spalte B in Tabelle 1 kann ja jede beliebige Zelle stehen: heute Y1, morgen Z5, und die Y1 steht dann in einer anderen Zelle in Spalte B mit einer anderen bedingten Formatierung.

So verstehe ich die Ursprungsfrage.

die bedingte Formatierung ist eigentlich nicht mein Problem ich möchte nur das Format kopieren das geht doch mit "Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ "
oder?
Was ich mir vorgestellt hatte war eine Schleife über die Tabelle1 und die Formate nach Tabelle2 in die Zielzelle(Wert aus Tabelle1.B1:20) zu kopieren.

Gruß Heiko
to top
#5
Hallo Heiko,


Zitat:die bedingte Formatierung ist eigentlich nicht mein Problem ich möchte nur das Format kopieren

Im Format der Zelle stehen bei bedingter Formatierung meist andere Farben, als Du siehst. Du willst also die Originalfarbe der Zelle kopieren und nicht die durch die bedingte Formatierung eingewechselte?

Im Prinzip so:

Code:
For iCnt=1 to 20
  Cells(icnt,2).Copy
  Sheets("Tabelle2").Range(Cells(icnt,1).Value)..PasteSpecial...
Next
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top
#6
Hi Heiko,

(13.05.2015, 14:22)Heiko schrieb: die bedingte Formatierung ist eigentlich nicht mein Problem ich möchte nur das Format kopieren das geht doch mit "Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ "
oder?

Wie André schon schrieb:
Du kannst die Farbe, die durch eine bedingte Formatierung eingestellt wird, nicht in eine andere Zelle kopieren.
Gruß Ralf

?mage

Die deutsche Rechtschreibung ist Freeware, d.h. du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, deswegen darfst du sie nicht verändern oder in veränderter Form veröffentlichen.
to top
#7
Hi

warum besteht hier jeder auf der Bedingten Formatierung, der TE hat das nie erwähnt, außer in seinem letzten Beitrag wo er das sogar ausschließt.

Hier mal was Konkretes, ohne Fehlerprüfung und Validierung
Code:
Option Explicit

Sub cpyFormat()
   Dim irow As Long
   With Worksheets("Tabelle1")
       For irow = 1 To 20
           If .Cells(irow, 2) <> "" Then
               .Cells(irow, 1).Copy
               Sheets("Tabelle2").Range(.Cells(irow, 2).Value).PasteSpecial xlPasteFormats
           End If
       Next
   End With
   Application.CutCopyMode = False
End Sub
Grüße,
Winny
to top
#8
Hi Winny,

(13.05.2015, 23:30)Winny schrieb: warum besteht hier jeder auf der Bedingten Formatierung, der TE hat das nie erwähnt, außer in seinem letzten Beitrag wo er das sogar ausschließt.

schau mal in seinen ersten Beitrag:
Zitat:In A1:A20 steht entweder der Wert Yes, No oder None (Diese Werte werden farblich(Grün, Rot, Gelb) Bedingt formartiert)
Gruß Ralf

?mage

Die deutsche Rechtschreibung ist Freeware, d.h. du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, deswegen darfst du sie nicht verändern oder in veränderter Form veröffentlichen.
to top
#9
Hallo,

hier liest es sich so, wie Winny es verstand: http://www.herber.de/forum/messages/1425835.html
bzw. später nur noch hier: http://www.herber.de/forum/archiv/1424to...tm#1425835

Gruß Uwe
to top
#10
Hallo Uwe,

nein, Winny hat es nicht so wie in den verlinkten Beiträgen verstanden oder ich verstehe Dich jetzt falsch ;-) Du spielst auf das "hier" in Winnys Antwort an?

Hallo Winny,

wenn die bedingte Formatierung keine Rolle spielt. hätte sie der Fragesteller besser nicht erwähnen sollen:
Zitat:Diese Werte werden farblich(Grün, Rot, Gelb) Bedingt formartiert
Zitat:Wenn in Tabelle1 die Zelle A1 Grün Formatiert ist und in B1 der Wert z.B. Y1 steht, möchte ich die Formatierung nach Tabelle2 in die Zelle Y1 kopieren usw.
Das lässt doch den Schluss zu, dass die grüne Farbe von der bedingten Formatierung kommt ... (Die Frage bei herber kannte ich übrigens vor Uwe's Hinweis nicht)

Ich bin in meinem codeschnipsel davon ausgegangen, dass sich der Fragesteller bei Ausführung auf Tabelle1 befindet und in jeder Zelle von B1:B20 eine gültige Zelladresse steht, daher ist es so kurz. Es hätte noch kürzer sein können, wenn ich den falschen zweiten Punkt vor PasteSpecial weggelassen hätte :-(

Noch was zur Verbesserung beider codes:
Zitat:In B1:B20 steht ein Wert der Range A1 bis AA27
Ich habe das so aufgefasst, dass in jeder Zelle ein Wert steht obwohl auch gemeint sein kann, dass in B1:B20 nur in einer Zelle eine Adresse steht. Dann könnte man die Schleife nach dem Treffer mit Exit For verlassen.


Wenn der Fragesteller nun schreibt
Zitat:die bedingte Formatierung ist eigentlich nicht mein Problem ich möchte nur das Format kopieren
weiß ich immer noch nicht genau, ob er damit meint, dass er weiß, wie er die bedingte Formatierung in Tabelle2 einrichten kann oder er weiterhin davon ausgeht, dass sich mit der bedingten Formatierung das "Format" der Zelle geändert hat ...
Daher nochmal explicit mein entsprechender Hinweis mit der "Originalfarbe" weiter oben.


Ich denke aber, wir können auf weitere Aufklärung durch den TE warten, unsere Auffassungen der Frage werden sonst kaum zusammenwachsen Huh
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top


Gehe zu:


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