Clever-Excel-Forum

Normale Version: Zellen kopieren mit VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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 

  
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.
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.
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
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
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.
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
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)
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
Hallo Uwe,

nein, Winny hat es nicht so wie in den verlinkten Beiträgen verstanden oder ich verstehe Dich jetzt falsch Wink 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 Sad

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
Seiten: 1 2