5.1k Aufrufe
Gefragt in Tabellenkalkulation von korfuweb Mitglied (949 Punkte)
Hallo liebe Supportgemeinde,

wende mich mal wieder hier vertrauensvoll an die Excel Künstler in diesem Forum.

Mein Problem:
Habe ein Materialschein Programm das aus 2 Arbeitsblättern besteht.

Sheet 1 erfasse ich diverse Artikel für einen Materialschein
Sheet 2 ist der eigentliche Materialschein als Druckvorlage der sich die Daten aus
Sheet 1 Mithilfe von SVerweis holt.

Gibt es eine Möglichkeit ein Druckdatum in einer Zelle zu hinterlegen um einen
"Doppeldruck" auszuschliesen?
Also kann ich in irgendeiner Form einen Wert an eine Zelle übergeben wenn das
Dokument gedruckt wurde?

Für eure Hilfe bin ich dankbar.
mfg
Volker

6 Antworten

0 Punkte
Beantwortet von m-o-m Mitglied (499 Punkte)
Hallo Volker,

anbei ein kurzes Makro, wleches den Druckauftrag auslöst und in Zelle A1, je nach Formatierung Datum und Zeit einträgt.

Sub Makro1()

ActiveCell.FormulaR1C1 = "=now()"
Range("A1").Select
Range("A1").Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

Gruß Maik
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Volker,

unter DieseArbeitsmappe

Option Explicit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Worksheets("DrucK").Range("A1") <> "" Then
Cancel = True
Else
Worksheets("DrucK").Range("A1") = Date
End If
End Sub


Gruß Hajo
0 Punkte
Beantwortet von korfuweb Mitglied (949 Punkte)
Hallo Maik,

so wie ich das jetzt verstehe heißt das in mein Druckformular würde jetzt in Zelle A1
das Druckdatum eingefügt !
Da es sich ja aber beim Druckformular um "leeres" Formular handelt das sich die
daten ja über SVERWEIS holt, müsste ich ja genau dieses Datum irgendwie ja an
mein Sheet 1 (der entsprechenden Zeile übergeben - hab ich das soweit richtig
verstanden?

Hallo Hajo,

bei deiner lösung scheint es dasselbe zu sein - oder ?

Ich Teste mal

Gruß Volker
0 Punkte
Beantwortet von m-o-m Mitglied (499 Punkte)
Hallo Volker,

so wie ich dich verstanden habe ist Sheet 1 ein "Sammelsurium" an Grunddaten und Sheet 2 deine "Ausdruckliste". Dies Ausdruckliste möchtest Du mit Druckdatum drucken.

Wenn Du das Sheet 2 markierst und das Makro betätigst, wird auf Sheet 2 A1 das Druckdatum eingefügt. Mit Sheet 1 passiert nix. Warum das Druckdatum nach Sheet 1 soll, weiß ich nicht.

Sollte ich dich falsch verstanden haben, melde dich.

Gruß Maik
0 Punkte
Beantwortet von korfuweb Mitglied (949 Punkte)
Hallo Maik,

das ganze funktioniert soweit bis auf die Datumsübergabe,

hab zwar dafür auch schon ne lösung hinbekommen, aber noch ein kleines
problem.

Also Sheet 1 ist eigentlich Materialscheine in Listenform die dan auf Sheet 2 in
das gewünschte Formular übergeben werden.

Die Übergabe der Daten Löse ich mit einem Makro aus.

Wie gesagt soweit hab ich auch alles hinbekommen - nur wie kriege ich jetzt
Excel dazu keinen direkten sondern indirekten zeilenbezug hinzubekommen?

Habe folgendes Macro generiert:

Range("AH1").Select <-Die Zelle wo das Druckdatum eingetragen wird
Application.CutCopyMode = False <- Kopiere das Druckdatum
Selection.Copy
Sheets("NEU_FORM").Select <- wechsle in die Eingabemaske

bis hierher alles ok,
jetzt will ich aber nur eine Spalte weiter nach rechts rücken um den kopierten Wert
einzufügen.
Also aktuelle Zelle wäre z.B: AG901
jetzt soll er die Zelle eine spalte weiter gehen also nach AH901 und mit

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks
_
:=False, Transpose:=False

den kopierten Wert einfügen !

ich hab aber so meine Probleme mit den direkten und indirekten Zellenbezügen.
wie war das ncohmal anstatt:
Range("AH901").Select
kann man das doch auc indirekt mit cells +1 oder -1 machen
weiß aber nicht mehr wie das war !!!

Gruß
Volker
0 Punkte
Beantwortet von korfuweb Mitglied (949 Punkte)
Ok habs geschafft mit
ActiveCell(1, 1).Select
...