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

Unbeantwortet - Format+Werte übertragen

Unbeantwortet - Format+Werte übertragen
20.07.2021 13:58:50
kk86
Hallo zusammen,
ich habe leider immer noch folgendes Problem:
Ich habe mit eurer Hilfe ein Tool erstellt, welches mit dem folgenden Befehl Angebote einliest.
Könnte mir bitte noch jemand mitteilen, wie ich in diesen Befehl ergänze, sodass die Formatierung 1:1 übernommen wird und zudem nur die Werte (keine Formeln) übertragen werden?
Set wksN = ThisWorkbook.Sheets("Tabelle1") 'Zieltabelle
Set wksX = wbX.Sheets(2)
lastrowQuelle = wksX.Cells(wksX.Rows.Count, "B").End(xlUp).Row
lastrowZiel = wksN.Cells(wksN.Rows.Count, "B").End(xlUp).Row + 2
wksN.Cells(lastrowZiel, "B").Resize(3).Value = wksX.Cells(5, "B").Resize(3).Value
wksN.Cells(lastrowZiel, "D").Resize(3).Value = wksX.Cells(5, "I").Resize(3).Value
lastrowZiel = wksN.Cells(wksN.Rows.Count, "B").End(xlUp).Row + 1
wksX.Cells(1, "B").Resize(lastrowQuelle - 1 + 1, 35).Copy wksN.Cells(lastrowZiel, "B")
Vielen Dank für eure Unterstützung!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unbeantwortet - Format+Werte übertragen
20.07.2021 14:14:18
Werner
Hallo,
ersetz mal die zwei Codezeilen:

wksN.Cells(lastrowZiel, "B").Resize(3).Value = wksX.Cells(5, "B").Resize(3).Value
wksN.Cells(lastrowZiel, "D").Resize(3).Value = wksX.Cells(5, "I").Resize(3).Value
durch das hier:

wksX.Cells(5, "B").Resize(3).Copy
wksN.Cells(lastrowZiel, "B").PasteSpecial Paste:=xlPasteFormats
wksN.Cells(lastrowZiel, "B").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
wksX.Cells(5, "I").Resize(3).Copy
wksN.Cells(lastrowZiel, "D").PasteSpecial Paste:=xlPasteFormats
wksN.Cells(lastrowZiel, "D").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False
Gruß Werner
Anzeige
AW: Unbeantwortet - Format+Werte übertragen
20.07.2021 14:27:56
GerdL
Moin

Sub Unit()
Range("A1:A2").Copy
Range("C1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Range("C1").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End Sub
Sub Unit2()
Range("A1:A2").Copy Range("C1:C2")
Range("C1:C2").ClearContents
Range("A1:A2").Copy
Range("C1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
Gruß Gerd
AW: Unbeantwortet - Format+Werte übertragen
20.07.2021 14:16:33
Daniel
Hi
Den Code fürs Werte übertragen hast du ja schon.
Formate dann mit Copy-PasteSpecial:

wksX.Cells(5, "B").Resize(3).Copy
wksN.Cells(lastrowZiel, "B").Pastespecial xlpastevalues
Sollten bei den Formaten nur die Zahlenformate relevant sein und Rahmenlinien, Hintergrundfarbe oder Bedingte Formate nicht benötigt werten, kann man Werte und Zahlenformat in einem Schritt übertragen:

wksX.Cells(5, "B").Resize(3).Copy
wksN.Cells(lastrowZiel, "B").Pastespecial xlpastevaluesandnumberformats
Das über tragen der Werte kann dann entfallen.
Welche Möglichkeiten es beim pastespecial gibt, siehst du im Kontextmenü " Inhalte einfügen ".
Wie du sie programmierst, zeigt dir dann der Makrorecorder.
Gruß Daniel
Anzeige
AW: Unbeantwortet - Format+Werte übertragen
20.07.2021 15:00:08
kk86
Hallo zusammen,
vielen Dank für die schnellen und zahlreichen Lösungsvorschläge.
Leider funktioniert keiner zu 100% für meine Anwendung.
Ich hätte gerne, dass nur die Werte (keine Formeln) und zudem die Formatierung (Rahmenlinien, Schriftart, Schriftgröße, Farbe etc.) 1:1 übertragen werden.
Könnt ihr das bitte nochmal überprüfen?
Viele Grüße
AW: Unbeantwortet - Format+Werte übertragen
20.07.2021 15:08:21
Daniel
Sorry ich hatte mich verschrieben:
Die Werte über trägst du wie bisher mit:

wksN.Cells(lastrowZiel, "B").Resize(3).Value = wksX.Cells(5, "B").Resize(3).Value
Um die Formate dann zu übertragen, brauchst du zusätzlich diesen Code:

wksX.Cells(5, "B").Resize(3).Copy
wksN.Cells(lastrowZiel, "B").PasteSpecial xlpasteformats
Das ist jetzt der Beispielcode für einen Zellbereich.
Den Code für die anderen Bereiche kannst du dir analog erstellen.
Gruß Daniel
Anzeige
AW: Widerspruch
21.07.2021 09:35:21
kk86
Hallo zusammen,
vielen Dank für die Rückmeldungen.
Ich glaube, dass ich mein Problem gefunden habe:
Ich hätte gerne, dass der Bereich von der Zelle "B2" bis "AG43" 1:1 übertragen wird und zwar nur die Werte (keine Formeln) sowie die Formatierung (Rahmenlinien, Schriftart, Schriftgröße, Farbe etc.)
Dieser Bereich kann sich nach unten beliebig erweitern, daher wäre hier der Befehl mit lastrowQuelle notwendig, oder?
Könntet ihr euch das bitte nochmal ansehen?
Danke vorab und VG
Anzeige
AW: Widerspruch
21.07.2021 21:03:34
Yal
Hallo kk,
deine Angabe sind unvollständig.
Ich verstehe es so, dass Du den Bereich B2:AG43 in der erste leere Zeile in Spalte B

Sub Unit()
Range("B2:AG43").Copy
With Range("B99999").End(xlUp).Offset(1, 0)
.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
.PasteSpecial Paste:=xlPasteFormats
End With
Application.CutCopyMode = False
End Sub
Für detaillierte Information über End oder Offset oder andere: einmal auf dem Wort klicken und Strg+F1 drücken.
VG
Yal
AW: Widerspruch
22.07.2021 10:38:44
kk86
Hallo Yal,
erstmal vielen Dank für deine Rückmeldung.
Ich habe ein Tool erstellt, welches mit dem folgenden Befehl Angebote einliest.
Set wksN = ThisWorkbook.Sheets("Tabelle1") 'Zieltabelle
Set wksX = wbX.Sheets(2)
lastrowQuelle = wksX.Cells(wksX.Rows.Count, "B").End(xlUp).Row
lastrowZiel = wksN.Cells(wksN.Rows.Count, "B").End(xlUp).Row + 2
wksN.Cells(lastrowZiel, "B").Resize(3).Value = wksX.Cells(5, "B").Resize(3).Value
wksN.Cells(lastrowZiel, "D").Resize(3).Value = wksX.Cells(5, "I").Resize(3).Value
lastrowZiel = wksN.Cells(wksN.Rows.Count, "B").End(xlUp).Row + 1
wksX.Cells(1, "B").Resize(lastrowQuelle - 1 + 1, 35).Copy wksN.Cells(lastrowZiel, "B")
Ich hätte gerne, dass der Bereich von der Zelle "B2" bis "AG43" 1:1 übertragen wird und zwar nur die Werte (keine Formeln) sowie die Formatierung (Rahmenlinien, Schriftart, Schriftgröße, Farbe etc.)
Dieser Bereich kann sich nach unten beliebig erweitern, daher wäre hier der Befehl mit lastrowQuelle notwendig, oder?
Vielen Dank für deine Unterstützung!
Anzeige
AW: Widerspruch
22.07.2021 17:24:23
Yal
Hallo kk,
wie ich vorher gesagt habe, gehe auf die Online-Hilfe für die VBA-Begriffe "Cells", "End", "Row" aber auch "Resize". Dort sind oft Beispiele vorhanden.
Es liest sich zwar nicht wie einen Roman, aber schwimmen lernt man auch nicht ohne nass zu werden.
Dann kannst Du zuordnen, wie und wo Du Änderungen an deinem Code -der Dir sehr am Herz zu liegen scheint, obwohl Du den nicht verstehst- vornehmen sollst.
"VBA bescheiden" ist ein temporärer Zustand, den nur Du ändern kannst.
Viel Erfolg
Yal

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige