Clever-Excel-Forum

Normale Version: Probleme mit makro daten in anderes blatt speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
[attachment=14257]Hallo liebe Excelfreunde,

ich habe folgendes Problem....besser gesagt 2 Probleme mit meiner Exceldatei, die Daten vom Blatt "Belege buchen" in das Blatt "Datenblatt übertragen soll.

Soweit macht das Makro dieses auch (Schaltfläche "Daten speichern"), nur soll in dem Blatt "Datenblatt" nicht das gleiche Format (also Zellenfarbe und Schriftgröße) mit übernommen werden.

Das zweite Problem ist, das ich gerne verhindern möchte, das wenn ich versehentlich auf die Schältfläche " Daten speichern" drücke, aber keine Daten da sind, er mit dann im anderen Blatt eine leere Zeile einfügt. 

Wie kann ich dies beiden Probleme im Makro lösen?

Grüße

Mdejong
Hallo,

so etwas würde ich mit einem UserForm lösen.
(08.11.2017, 18:47)Klaus-Dieter schrieb: [ -> ]Hallo,

so etwas würde ich mit einem UserForm lösen.

danke für deine Antwort.....Userform würd ich gerne haben wollen...eine darstellen kann ich, aber nicht programmieren :)
Hallöchen,

den ersten Punkt so:

Range("B4,C4,D4,E4,F4,G4").Copy
Worksheets("Datenblatt").Range("A2").PasteSpecial Paste:=xlValues

und für den zweiten nimmst Du am Makroanfang
a = WorksheetFunction.Transpose(WorksheetFunction.Transpose(Range("B4:G4").Value))
If Trim(Join(a)) = "" Then Exit Sub

Wie Du siehst, kann man Deine Range-Angabe abkürzen.
(08.11.2017, 20:59)schauan schrieb: [ -> ]Hallöchen,

den ersten Punkt so:

Range("B4,C4,D4,E4,F4,G4").Copy
Worksheets("Datenblatt").Range("A2").PasteSpecial Paste:=xlValues

und für den zweiten nimmst Du am Makroanfang
a = WorksheetFunction.Transpose(WorksheetFunction.Transpose(Range("B4:G4").Value))
If Trim(Join(a)) = "" Then Exit Sub

Wie Du siehst, kann man Deine Range-Angabe abkürzen.
Vielen Dank für deine Hilfe.
[attachment=14266]Ich habe den Vorschlag von Klaus-Dieter umgesetzt....eine Userform erstellt, um mein vorheriges Problem zu lösen.
Soweit habe ich es auch hinbekommen.
Wie muss ich die Daten übertragen, ohne das mir meine Zellenformatierung verändert wird?
Einige Spalten sind als Zahl ohne Nachkommastellen formatiert und einige Spalten in Euro-Währung.

Mein Code zum übertragen von Userform ins Tabellenblatt, überschreibt diese Formatierung als "Text".

Kann mir da jemand helfen?

Und wie kann ich Excel sagen, das er die Userform beim Starten der Mappe sofort öffnet?
Das Datenblatt will ich nur bei Bedarf anzeigen lassen?

Gruß

M. DeJong
Hallo,

so sollte das funktionieren:
(09.11.2017, 11:41)Klaus-Dieter schrieb: [ -> ]Hallo,

so sollte das funktionieren:

Prima..Danke, Format passt jetzt.....nur leert die Userform nach speicher der Daten die Eingabeboxen nicht :)
Um anschließend eine neue Eingabe zu machen!
Hallo Klaus-Dieter,

mir ist noch etwas aufgefallen.
Beim 2. Aufruf der Userform, ist das Makro nicht mehr zu finden???
(09.11.2017, 12:14)MdeJong schrieb: [ -> ]Hallo Klaus-Dieter,

mir ist noch etwas aufgefallen.
Beim 2. Aufruf der Userform, ist das Makro nicht mehr zu finden???

Habe ich schon hinbekommen.  :)