Ausfüllen von Etiketten per Makro

14/07/2009 - 22:20 von Marion Scheffels | Report spam
Hi @all!

Ich möchte gern einen Etikettenbogen per Makro beschriften für die
wöchentlichen Archivumschlàge unserer Kassenbelege.

Am Anfang werden die Kassennummer und das Startdatum abgefragt.
Auf jedes Etikett kommt nun die Kassennummer, weiterer Text und
anschließend der Zeitraum der Belege, angefangen mit den Startdatum.

Leider habe ich von Word-Makros weniger Ahnung, ich habe bislang nur
eine Reihe Excel-Makros gebastelt... könntet ihr mir bitte helfen?

Aus dem Objektkatalog werde ich leider nicht so recht schlau.
kasse = interaction.InputBox(prompt, "Bitte die Kasse eingeben", , , , ,
) as String
Was wird da noch an Angaben gefordert? Fenster einfach mittig. Default,
Help File und Context kann ich nicht deuten.

Wie gebe ich das Datum ein? DD.MM.JJ sind als Eingabe geplant. Wie
wandele ich es in den numerischen Wert um, zu dem ich immer 6 oder 1 Tag
addieren kann und gebe es als Datum wieder aus?

Da es 15 oder 24 Etiketten werden, wàre eine Schleife sinnvoll. Schreibt
man die genauso wie in Excel For I = 1 to 15 und Next I?

Wie startet sich das Makro selbst beim Öffnen der Datei bzw Vorlage?
Ich habe ein Sub AutoExec in den Makros eines Etikettenbogens...
allerdings ist das leer. Klingt aber nach dem, was ich suche. Sollte ich
das Makro dort hineinschreiben?

Vielen Dank für eure Hilfe und Ratschlàge!

MarionS
einwegadresse0@marions.de

"Darf ich Ihnen unseren Zehnerpack anbieten?"
"Wieviel sind denn da drin?"
 

Lesen sie die antworten

#1 Thomas Gahler
15/07/2009 - 12:38 | Warnen spam
Hallo Marion


Am Anfang werden die Kassennummer und das Startdatum abgefragt.
Auf jedes Etikett kommt nun die Kassennummer, weiterer Text und
anschließend der Zeitraum der Belege, angefangen mit den Startdatum.


Von wo kommt denn dein weiterer Text? Ist der immer gleich, oder soll der
auch aus eine Inputbox stammen?



Leider habe ich von Word-Makros weniger Ahnung, ich habe bislang nur
eine Reihe Excel-Makros gebastelt... könntet ihr mir bitte helfen?


Das ist doch schon mal was. VBA ist VBA nur eben das Objekt-Modell ist ein
wenig anders und viiiiiiiiel Grösser ;-)



Aus dem Objektkatalog werde ich leider nicht so recht schlau.
kasse = interaction.InputBox(prompt, "Bitte die Kasse eingeben", , , , ,
) as String
Was wird da noch an Angaben gefordert? Fenster einfach mittig. Default,
Help File und Context kann ich nicht deuten.


Das sind alles optinale Argumente, die benötigst du nicht bzw. nur dann wenn
du was einzutragen hast. Help File und Context benötigts du, wenn du eine
eigen Hilfedatei zu deinem Programm erzeugst, damit die F1-Taste weiss was
zu tun ist.


Sub Demo()
Dim strKasse As String
strKasse = InputBox("Bitte Kassennummer eingeben")
'oder
strKasse = InputBox("Bitte Kassennummer eingeben", _
"Kassen-Etiketten-Programm")
'oder
strKasse = InputBox("Bitte Kassennummer eingeben", _
"Kassen-Etiketten-Programm", _
"0001")
End Sub



Wie gebe ich das Datum ein? DD.MM.JJ sind als Eingabe geplant.


Die Input-Box ist gibt dir ein String zurück. Entweder gibst du das Datum
richtig ein, oder du musst das fehler-Handling selber programmieren.



Wie wandele ich es in den numerischen Wert um,


Nicht in einen nummerischen in ein Datumswert umwandeln

Sub Demo1()
Dim datStartDatum As Date

datStartDatum = CDate("15.07.2009")
End Sub



zu dem ich immer 6 oder 1 Tag
addieren kann und gebe es als Datum wieder aus?


Datu gibt es ein paar schöne Date*() Funktionen. Du benötigts DateAdd()

datStartDatum = DateAdd("d", 10, datStartDatum)
addiert 10 Tage zum Datum hinzu


Da es 15 oder 24 Etiketten werden, wàre eine Schleife sinnvoll. Schreibt
man die genauso wie in Excel For I = 1 to 15 und Next I?


Genau, nru wirst du das nicht so statisch sondern dynamisch programmieren.
Wir kennen das Dokuemnt, dieses hat wohl eine Tabelle drauf und los geht es.


Sub Demo2()
Dim doc As Word.Document
Dim tbl As Word.Table
Dim intSpalte As Integer
Dim intZeile As Integer

Set doc = ActiveDocument
Set tbl = doc.Tables(1)
For intSpalte = 1 To tbl.Columns.Count
For intZeile = 1 To tbl.Rows.Count
tbl.Cell(intZeile, intSpalte).Range.Text = intZeile & "/" &
intSpalte
Next intZeile
Next intSpalte
End Sub




Wie startet sich das Makro selbst beim Öffnen der Datei bzw Vorlage?


Also noch ein kleiner Unterschied von Word und Excel. Makros gehören in die
Dokumentvorlage und bleiben dort. Also dieser werden dann nicht im Dokument
gespeichert.

In deiner KassenEtiketten.dot ein Modul anlegen und dort ein Makr mit dem
Namen AutoNew() erstellen und schon hast du was du suchst.


Ich habe ein Sub AutoExec


AutoExec wir beim laden von Word ausgeführt
AutoOpen bei Öffnen eines Dokuments
AutoClose beim Schliessen des Dokuments
AutoExit bei schliessen von Word

das sind alle Auto-Makros



wenn du willst kannst du deine Dokuemntvorlage so gestalten, dass sie 24
Etiketten (4x6) drin hat. Ein Makro könnte die Tabelle auf 15 Etiketten
(3x5) umbauen.


Reicht dir das mal ein Stückchen? Sonst melde dich wieder




Thomas Gahler
MVP für Word
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP3), Office XP (SP3)

Ähnliche fragen