Word: Code errechnen und in Tabelle einfügen

Dieses Thema Word: Code errechnen und in Tabelle einfügen im Forum "Microsoft Office Suite" wurde erstellt von panscher, 26. Apr. 2011.

Thema: Word: Code errechnen und in Tabelle einfügen Hallo Alle, ich bin gerade dabei ein Etiketten-Vorlage zu erstellen, das Etikett enthält eine Code. Der Code wird...

  1. Hallo Alle,

    ich bin gerade dabei ein Etiketten-Vorlage zu erstellen, das Etikett enthält eine Code.

    Der Code wird aus Herstellerid (012), Jahreszahl-100, aktuelle Monat, aktueller Tag erzeugt.

    Der Code sieht dann so aus: 01219110426

    Mein Word-Vorlage (Tabelle) hat insgesamt

    10 Spalten, mit jeweils 9 Zwischenräumen, diese befinden sich zwischen jeder Spalte (1-3,3-4,4-5,5-6,6-7,7-8,8-9).
    Nach unten sind es 27 Zeilen.

    Nun hätte ich gerne eine Inputbox für die Eingabe des aktuelle Datum, danach soll Word über ein VBA-Makro
    mir den Code erstellen und ihn mir in die 10 Spalten und 27 Zeilen einfügen.

    Kann mir da jemand weiterhelfen, ich kenne mich leider mit VBA nicht aus.

    Gruß Panscher
     
  2. Hallo Panscher,

    nen Makro dafür könnte ich dir schreiben.

    Fangen wir mal langsam an:
    HerstellerID: Wo kommt die her? Ist die immer gleich ? Wie kann das Makro an die ID kommen ?

    Tabelle:
    Ist das eine Tabelle mit 19 Spalten und 27 Zeilen, bei der die erste und dann jede weitere 2.te mit Inhalt zu füllen ist ?

    Wie passen 11 Digits
    in 10 Spalten ?

    Gruß Matjes :)
     
  3. Hallo Matjes,

    die HerstelleriID ist immer gleich und ändert sich auch nicht, diese könnte man z.b fest im Makro definieren.

    Genau, es muss die erste und jede 2.te gefüllt werden, es handelt sich hier um eine Herma 4343 Etiketten-Vorlage.

    Mit einer kleinen Schriftt passen die 11 schon rein, habe ich jetzt auch drinne.

    Gruß Panscher
     
  4. Hallo Panscher,

    Wird also eine Definition. Abgehakt :D

    Dem Makro ist eingentlich egal, ob es eine Vorlage 4343 oder xyz ist. Dafür ist der Einrichter der Vorlage zuständig ;D
    Bedeutend ist, welche Tabelle darüber gelegt wird und wie die Tabelle auszufüllen ist.
    Die direkte Frage ist immernoch offen, wie die 11 Digits (01219110426) auf die 10 Spalten aufgeteilt werden sollen, oder soll in jede Spalte diese 11 Digits geschrieben werden ?

    Alle 27 Zeilen werden gleich ausgefüllt ?


    Die Schriftgröße und formatierung liegt auch beim Einrichter der Vorlage.

    Gut wäre ein Screenshot einer ausgefüllten Vorlage.

    Gruß Matjes :)
     
  5. Hallo Matjes

    Ja, in jeder Spalte und Zeile soll der 11 Digits rein

    Hier der Screenshot

    [​IMG]

    Gruß Panscher
     
  6. Hallo Panscher,

    folgendes Makro arbeitet auf dem aktuellen Dokument in der ersten Tabelle und sollte das Gewünschte tun.

    Gruß Matjes :)
    Code:
    Option Explicit
    Private Const cHERSTELLERID = 012
    Private Const cTAB_Z_ANZAHL = 28
    Private Const cTAB_SP_ANZAHL = 19
    Private Const cTAB_SP_DISTANZ = 2
    '**************
    Sub Word_TabAusfuellen()
    
     
     Dim Doc As Document, myTab As Table
     Dim dDatum As Date
     Dim sAusgabe As String
     
    ->Document setzen, auf dem der Makro arbeiten soll
     Set Doc = ActiveDocument
     
    ->Tabelle setzen, auf dem der Makro arbeiten soll
     On Error Resume Next
     Set myTab = Doc.Tables(1)
     On Error GoTo 0
     If myTab Is Nothing Then
      MsgBox Keine Tabelle im Dokument  & Doc.Name & . -> Abbruch
     End If
     
    ->DatumsEingabe
     If Not DatumsEingabe(dDatum) Then GoTo AUFRAEUMEN
     
    ->Ausgabestring zusammenstellen
     sAusgabe = _
      cHERSTELLERID & _
      Format(Year(dDatum) - 100, 0000) & _
      Format(Month(dDatum), 00) & _
      Format(Day(dDatum), 00)
     
     If Not TabAusfuellen(myTab, sAusgabe) Then GoTo AUFRAEUMEN
     
    AUFRAEUMEN:
     Set Doc = Nothing: Set myTab = Nothing
    End Sub
    '****************
    Private Function DatumsEingabe(dDatum As Date) As Boolean
     Dim sDatum As String
     DatumsEingabe = False
    ->heutiges Datum
     dDatum = Now()
     
    ->Eingabe datum mit vrogabe des heutigen Datums
     sDatum = InputBox( _
      Bitte geben Sie das Datum in der Form DD.MM.JJJJ ein., _
      Datumseingabe, Format(dDatum, dd.mm.yyyy))
     
    ->Eingabe prüfen
     On Error Resume Next
     dDatum = sDatum
     If Err.Number <> 0 Then
      Err.Clear
      MsgBox Datum-> & sDatum &-> konnte nicht als Datum interpretiert werden.
     Else
      DatumsEingabe = True->Datum ok
     End If
     On Error GoTo 0
    End Function
    '****************
    Private Function TabAusfuellen(myTab As Table, sAusgabe As String) As Boolean
     Dim z As Long, sp As Long
     
     On Error Resume Next
     
     For z = 1 To cTAB_Z_ANZAHL
      For sp = 1 To cTAB_SP_ANZAHL Step cTAB_SP_DISTANZ
       myTab.Cell(z, sp).Range.Text = sAusgabe
       If Err.Number <> 0 Then GoTo ENDEBEARBEITUNG
      Next
     Next
    ENDEBEARBEITUNG:
     If Err.Number <> 0 Then
      MsgBox _
       Beim Ausfüllen der Tabelle trat ein Fehler auf. & vbCrLf & _
       Zeile  & z &  Spalte  & sp
      Err.Clear
      TabAusfuellen = False
     Else
      TabAusfuellen = True->alles ok
     End If
     On Error GoTo 0
    End Function
     
  7. Hallo Matjes,

    das Makro arbeitet super.
    Vielen Vielen Dank für deine Hilfe.

    Gruß Panscher

     
Die Seite wird geladen...

Word: Code errechnen und in Tabelle einfügen - Ähnliche Themen

Forum Datum
Word 2K Barcode Microsoft Office Suite 1. Juni 2005
Welches ist das letzte kaufbare Office und Fehler beim Scrollen in Word: Text verdoppelt sich Microsoft Office Suite 14. Juli 2016
Word und Powerpoint hakeln. Filme abspielen führt zu Aufhängen Windows 10 Forum 17. Dez. 2015
Webhosting für WordPress auf Windows Server Webentwicklung, Hosting & Programmierung 21. Juli 2015
Öffnen mit Doppelklick funktioniert bei Word u. Excel Dateien nichtmehr Microsoft Office Suite 10. Feb. 2015