Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Werte Kopieren mit VBA | Herbers Excel-Forum


Betrifft: Werte Kopieren mit VBA von: Markus
Geschrieben am: 11.11.2009 09:38:33

Hallo zusammen,

ich habe eine Datei, aus der ich einige Werte in eine Zieldatei mit VBA kopiere.
Der Zielort hat eine Bedingte Formatierung.
Nach dem Kopiervorgang ist die Formatierung unwirksam.

Woran liegt das?
Wie kann ich das Makro vereinfachen, wenn ich z.Bsp.: B2:AA105 kopieren möchte.

Anleitung ist in der Datei, ich hoffe ihr kommt klar.

Danke.

Gruß Markus

https://www.herber.de/bbs/user/65757.xls

  

Betrifft: AW: Werte Kopieren mit VBA von: Oberschlumpf
Geschrieben am: 11.11.2009 09:49:16

Hi Markus

Wie siehts denn mit deiner Antwort in diesem Thread aus?!?
https://www.herber.de/forum/messages/1115462.html

Ciao
Thorsten


  

Betrifft: AW: Werte Kopieren mit VBA von: Markus
Geschrieben am: 11.11.2009 10:57:10

Hi Thorsten,
war leider nicht von mir!

Es gibt leider mehrere die Markus heißen.

Gruß Markus


  

Betrifft: AW: Werte Kopieren mit VBA von: Sven
Geschrieben am: 11.11.2009 10:30:31

Hi Markus, wenn Du die Wert mit der Syntax

Selection.PASTESpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False


(entspricht "InhalteEinfügen) einfügst (anstatt einfach nur mit .paste), sollten die bestehenden Formatierungen erhalten bleiben.

Gruß, SVen


  

Betrifft: AW: Werte Kopieren mit VBA von: Markus
Geschrieben am: 11.11.2009 11:17:09

Hallo Sven,
funktioniert irgendwie nicht.

hier mein Kopiervorgang

sh.Range("G2:G21").Copy .Range("G2:G21")
sh.Range("G2:G21").Value = sh.Range("G2:G21").Value

Gruß Markus


  

Betrifft: AW: Werte Kopieren mit VBA von: Sven
Geschrieben am: 11.11.2009 13:09:42

Hallo Markus,

vielleicht bin ich etwas umständlich, aber ich würde das ganze so schreiben:

Sub Bereich_Kopieren()

Sheets("Tabelle1").Select
Range("G2:G21").Select
Selection.Copy

Sheets("Tabelle2").Select
Range("G2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

End Sub

Der Bereich wird von "Tabelle1" nach "Tabelle2" kopiert. Dort habe ich eine bedingte Formatierung (ungleich 0) definiert. Die bleibt erhalten und springt auch an.

Hoffe das hilft.

Gruß, Sven


https://www.herber.de/bbs/user/65775.xls


  

Betrifft: AW: Werte Kopieren mit VBA von: Markus
Geschrieben am: 11.11.2009 13:31:35

Hallo Sven,

funktioniert leider nicht.
Schau doch mal in mein Beispiel, ich kopiere das ganze in eine andere Datei!

Gruß Markus


  

Betrifft: AW: Werte Kopieren mit VBA von: Sven
Geschrieben am: 11.11.2009 14:52:33

Ups, Deine Beispieldatei habe ich glatt übersehen ... allerdings (liegt vermutlich an mir) verstehe ich auch nicht ganz genau, wie sich das Makro mit Deinem Ausgangstext und den Angaben in der Tabelle verträgt ...

Vielleicht könntest Du einfach mal schreiben, was das Makro machen soll ... aber vielleicht sitze ich ja auch auf der Leitung.

Soweit ich Deinen Eingangstext richtig interpretiere soll doch ein Bereich aus Deiner Vorlage in alle Sheets eines anderen Workbooks kopiert werden, wobei das "Ziel" über Deine Userform/Inputbox ausgewählt wird, oder?

Grübelnd, Sven


  

Betrifft: AW: Werte Kopieren mit VBA von: Sven
Geschrieben am: 11.11.2009 16:17:00

Hm, schau mal ob es das trifft. Habe in der Anlage1 (bitte umbenennen in test.xls) jetzt ein Makro angelegt (aus Deinem geschnitzt, nebst Userform), das Dir aus Deiner Vorlage-Tabelle1 die Zellen G2:G21 rauskopiert und in alle Sheets des von Dir in der Userform benannten workbooks, jeweils in die Zellen G2:G21 einfügt. Als Ausnahme habe ich definiert, dass im Ziel-Workbook nicht in worksheets mit dem Namen "Vorgaben" einkopiert wird. Als Anlage2 habe ich die „Mappe2“ angehängt. In der Mappe2 habe ich jeweils für die Spalten G die bedingte Formatierung ungleich 0 formuliert. Beim einfügen bleibt die Formatierung erhalten, die Daten werden eingefügt und die Formatierung springt an ...

Für einen Testlauf muss die Mappe2, wie in Deiner Vorgabe, geöffnet sein (ginge aber auch anders, d. h. Du könntest das Ziel – Workbook auch über das Makro öffnen).

Ist das in etwa das was Du wolltest?

Gruß, Sven


https://www.herber.de/bbs/user/65779.xls

https://www.herber.de/bbs/user/65780.xls


  

Betrifft: AW: Werte Kopieren mit VBA von: Markus
Geschrieben am: 11.11.2009 20:43:50

Hallo Sven,

das Makro funktioniert folgender Maßen:
Es werden die gewünschten Zellen in die ausgewählte Datei in das Arbeitsblatt mit dem gleichen Namen
kopiert.
In der Quelldatei werden das bzw. die zu kopierenden Arbeitsblätter und das Blatt "Vorgaben" deshalb markiert.

Das Makro soll auch so funktionieren.
Der Fehler liegt vielleicht an der bedingten Formatierung, sobald ich in ein formatiertes Feld etwas eintrage
verschwindet die Formatierung.
Diese soll aber unbedingt erhalten bleiben.

Gruß Markus


  

Betrifft: AW: Werte Kopieren mit VBA von: Markus
Geschrieben am: 11.11.2009 21:02:03

Habe es gerade selber hinbekommen.

Bei der bedingten Formatiereung muß es heißen: Formel ist =D$23="X"

dann funktioniert es.

Wäre euch trotz dem dankbar wenn mir jemand die Formel vom eigentlichen Kopiervorgang
vereinfachen könnte.

Danke Gruß Markus


  

Betrifft: AW: Werte Kopieren mit VBA von: Sven
Geschrieben am: 12.11.2009 07:42:34

Ah jetzt ja! Wenn schon nicht geholfen dann wenigstens was gelernt. Sehr clevere Idee - und ich sehe auc nix, was man kürzen könnte (aber das will nix heißen ;-))



Gruß vom Sven


  

Betrifft: AW: Werte Kopieren mit VBA von: Markus
Geschrieben am: 12.11.2009 12:03:10

Hallo,
kaum ist ein Problem erldeigt tut sich das nächste auf, bei dieser Operation werden die Zellenformate mit
kopiert, wie kann man das unterbinden?

sh.Range("C62:C86").Copy .Range("A62:A86")
sh.Range("C62:C86").Value = sh.Range("A62:A86").Value

Danke, Gruß Markus


  

Betrifft: AW: Werte Kopieren mit VBA von: F1
Geschrieben am: 12.11.2009 18:16:16

Range("A62:A86") = sh.Range("C62:C86")


  

Betrifft: AW: Werte Kopieren mit VBA von: Markus
Geschrieben am: 17.11.2009 11:13:54

Hallo F1,

so funkts leider nicht, hat noch jemand eine Idee, hänge noch einmal das Makro an.
Danke.

Sub Uebernahme_ID()

  Dim sh As Worksheet
  UF_Dateiauswahl3.Show
  If bolKopieren3 = True Then
    For Each sh In ActiveWindow.SelectedSheets
      If sh.Name <> "Vorgaben" Then
      With Workbooks(strDateiName3).Sheets(sh.Name)
        
        .Range("C62:C86") = sh.Range("A62:A86")

              End With
      End If
    Next
    Sheets("Tabelle1").Select
    MsgBox " Daten wurden kopiert! " _
     End If
End Sub



  

Betrifft: AW: Werte Kopieren mit VBA von: F1
Geschrieben am: 17.11.2009 20:44:02

Die Wertzuweisung ist ok, der Fehler liegt woanders in deinem Code.

F1


Beiträge aus den Excel-Beispielen zum Thema "Werte Kopieren mit VBA"