1.2k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,
ich habe ein Problem, welches mir zeitlich unter den Nägeln brennt.
Ich habe eine Art Kalender für eine Fahrzeugplanung angelegt. Am Monatsende werden noch die ersten Tage des Folgemonats angezeigt. Wenn jetzt für diese Tage (oder Vorbestellung für einen anderen Monat) eine Fahrt eingetragen wird, habe ich ein Copybutton (Makro) angelegt, damit diese Einträge im nächsten Monat (pro Monat ist ein Arbeitsblatt angelegt) nicht nochmal gemacht werden müssen. Das Problem ist jetzt, dass wenn an diesem Tag (Folgemonat) bereits ein Eintrag vorgenommen wurde, dieser beim kopieren überschrieben wird und damit verschwunden ist.
Gibt es eine Möglichkeit, dass das Makro (oder ein Copybefehl) nach der Muster geschrieben wird: wenn in Zelle xx bereits ein Eintrag steht, nicht kopieren. Also nur kopieren, wenn die Zellen noch leer sind.
Für Eure Hilfe bedanke ich mich im voraus.
Gruß Flodnug

4 Antworten

0 Punkte
Beantwortet von
Hallo,
ich habe noch das Copymakro hier reingestellt, damit es eventuell nur abgeändert wird und ich nich alles neu machen muss.

Sub Februar4()
'
' Februar4 Makro
'

'
Range("DB171:DY194").Select
Selection.Copy
Sheets("Feb").Select
ActiveSheet.Paste
Range("B92").Select
Sheets("Jan").Select
Range("DB171").Select
Application.CutCopyMode = False
Sheets("Feb").Select
Range("B90").Select
End Sub

Gruß Flodnug
0 Punkte
Beantwortet von
Hallo,
habe jetzt durch weitere Recherchen eine Lösung gefunden, die genau das umsetzt, was ich möchte.
Wenn ich den entsprechenden Bereich kopiere und dann Inhalte einfügen sage und das Feld "Leerzellen überspringen" anklicke, werden nur alle nichtleeren Zellen kopiert und bestehende Einträge bleiben erhalten.
Wenn ich jetzt aber per Makroaufzeichnung das Ganze anlegen möchte, funktioniert es nicht, weil zwar alles kopiert wird, aber leider auch leere Zellen und somit bestehende Einträge überschrieben werden. Die Makroaufzeichnung erkennt also nicht, dass ich während der Aufzeichnung "Leerzellen überspringen" aktiviert habe.
Wie muß der Code abgeändert werden?
Sub Copytest1()
'
' Copytest1 Makro
'

'
Range("DB90:DY113").Select
Selection.Copy
Sheets("Feb").Select
Range("B9").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
True, Transpose:=False
Range("B9").Select
Sheets("Jan").Select
Application.CutCopyMode = False
Range("DB90").Select
End Sub

Hoffentlich wird jemand helfen können.

Gruß Flodnug
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

ist nicht so recht nachvollziebar, dein Makro

Sub Februar4()
'
' Februar4 Makro
'

'
Range("DB171:DY194").Select <-- in welcher Tabelle bist du?
Selection.Copy
Sheets("Feb").Select
ActiveSheet.Paste <- In welcher Zelle steht der Cusor?
Range("B92").Select <- wofür das Select?
Sheets("Jan").Select
Range("DB171").Select
Application.CutCopyMode = False
Sheets("Feb").Select <- ab hier alles inklar, da nicht nachvollziebar ist wofür das gut sein soll
Range("B90").Select
End Sub



Als Hinweis, du solltest den Zellinhalt des Folgemonats zwiscehnspeichen und beise Zellinhalte dann zusammenfügen.


Gruß

Helmut
0 Punkte
Beantwortet von
Hallo Helmut,

danke für Deine Antwort.

Tut mir leid, dass das Makro nicht nachvollziehbar ist, aber das ist das Script von der Makroaufzeichnung.Ixh habe es also nicht selber geschrieben, sondern der Makrorecorder.

Trotzdem kann ich wenigstens Deine Fragen beantworten.
Range("DB171:DY194").Select <-- in welcher Tabelle bist du? --> Jan;
ActiveSheet.Paste <- In welcher Zelle steht der Cusor? --> DB90;
Range("B92").Select <- wofür das Select? --> keine Ahnung, wahrscheinlich ein Zwischenclick
Sheets("Feb").Select <- ab hier alles inklar, da nicht nachvollziebar ist wofür das gut sein soll --> auch nur Zwischenclicks, um die Copymarkierungen zu beseitigen.

Gruß Flodnug
...