Registriert seit: 08.12.2017
Version(en): 2016
12.06.2020, 15:55
(Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2020, 15:56 von robertko.)
Moin.
Ich habe gerade schwierigkeiten mit VBA
In Tabelle1 habe ich ein Formular, welches ausgefüllt wird und mittels Button werden die ausgefüllten Zellen nach Tabelle2 kopiert.
Darauf hin ist das Formular in Tabelle1 wieder leer und kann erneut ausgefüllt und übertragen werden.
Das funktioniert alles einwandfrei, Problem ist nur, dass die bedingte Fomatierung nicht mitkopiert wird.
Die brauche ich aber unbedingt. Kann mir da jemand helfen?
Hier mein VBA-Code:
Code:
Sub Kopieren()
With Worksheets("Tabelle2")
Worksheets("Tabelle1").Range("A1:H50").Copy _
Destination:=.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 2, 1)
End With
MsgBox "Daten wurden Übertragen", 10
Worksheets("Tabelle1").Range("A3:H50").ClearContents
End Sub
Vielen Dank
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi,
warum speicherst du dein Formular nicht als Excel-Vorlage [.xltx (normal) oder .xltm (mit Makros)]. Dann kannst du dir die ganzen Verrenkungen mit dem Kopieren sparen.
Registriert seit: 08.12.2017
Version(en): 2016
12.06.2020, 16:29
(Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2020, 16:31 von robertko.)
Und wieso bekommt man grundsätlich anstatt einer klaren Antwort auf eine Klare frage, eine Gebenfrage?
Was soll das bringen, wenn ich es als Vorlage speichere?
In Sheet1 ist das Formular, nach dem Ausfüllen fließt der Inhalt in Sheet2
Nun ist das Formular in Sheet1 wieder leer.
Jetzt wird es erneut ausgefüllt und übertragen und landet dann direkt unter dem letzten Eintrag in Sheet2.
Das heißt je öfter das Formular ausgefüllt wird, desto voller wird Sheet2.
Sheet 2 ist lediglich eine Zusammenfassungen bzw, Datensammlung aus allen Eingaben in Sheet1.
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
nicht über
.Copy Destination
sondern
.Copy
.PasteSpecial (bitte mittels Aufzeichnung mit Inhalte Einfügen bedF die Parameter hinzutun)
Wehrdienst für nach 31.12.2007 geborene Männer. Freiwilligkeit wird nicht ausreichen; also gibt es das Losverfahren mit daraus mehr als 50% Dienstverpflichteten. Herzlichen Glückwunsch. (Ich habe 15 Monate in der Lw gedient). Weiße Jahrgänge der Bw also ca. -1937 und 1994-2007. Alternativen wie Zivildienst/Verweigerung/Soziales Jahr noch nicht besprochen.
Registriert seit: 08.12.2017
Version(en): 2016
12.06.2020, 16:35
(Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2020, 16:55 von robertko.)
Ich hatte gestern schonmal etwas über PasteSpecial gelesen, wusste aber nicht, wie ich das in meinen Code integrieren kann.
Also tausche ich "Destination" nur mit "PasteSpecial".
Ich probiere mich mal aus, Aber ich arbeite nicht täglich mit VBA.
Danke
Ich glaub, ich habs.
Kann da nochmal jemand drüberschauen?
Code:
Sub Kopieren()
With Worksheets("Tabelle2")
Worksheets("Tabelle1").Range("A1:H50").Copy
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 2, 1).PasteSpecial Paste:=xlPasteAllMergingConditionalFormats
End With
MsgBox "Daten wurden Übertragen", 10
Worksheets("Tabelle1").Range("A3:H50").ClearContents
End Sub