Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel <-> Word Seriendruck (wenn Zelle nicht leer)

Excel <-> Word Seriendruck (wenn Zelle nicht leer)
14.12.2007 00:41:00
Alex
Hallo Leute,
bin leider immer noch am Kämpfen mit meinem Projekt - habe nun dank Jens alles soweit hinbekommen, wie ich mir das vorgestellt habe. Allerdings eine Sache geht noch überhaupt nicht. Seriendruck in Excel oder von mir aus kann es auch ein Makro sein, dass mir Word startet und dann in die Felder die Daten übernimmt.
Problem ist - ich hab in VBA nur äußerst bescheidene Kenntnisse und weis nicht, wie ich an Word nur dann einen "Datumswert" übergebe, wenn in der Tabelle einer eingetragen ist. (quasi irgendwie If Not xxx "" oder If Not IsEmpty(Range...)) - aber irgendwie klappt das nicht... hab entweder eine Endlosschleife die ich nicht mehr verlassen kann - oder der Compiler meckert, dass ich eine Typen unverträglich sind, With-Block... nicht passt, etc.
Hab hier mal zwei screenies angehängt - mit der Bitte um Erklärung, wie ich Excel sagen kann, dass es nur Name, Klasse und Datum in eine zweite Tabelle kopiert, wenn ein Datumswert vorhanden ist - und dann Datum an Datum in eine eigene Spalte legt.
Hier noch mein bisheriger Versuch:
  • 
    Sub BonSchueler()
    Dim name As Long
    Dim Row As Range
    Dim rngSource As Range, Copy As Range
    Dim cell As Range
    Dim ws1 As Worksheet, ws2 As Worksheet
    Set ws1 = Sheets("Datenbank")
    Set ws2 = Sheets("Bondruck")
    Set rngSource = ws1.Range("D2:AH34") 'Bereich in dem die Datumswerte per
    'Steuerelement Kalender eingetragen werden
    Application.ScreenUpdating = False
    Worksheets("BonSchueler").Cells.Clear 'Alte Tabelleninhalte löschen
    For name = 1 To Sheets("Datenbank").Cells(2, 1).End(xlDown).Row
    If Not IsEmpty(rngSource) Then   ' Wenn Zelle nicht leer ist
    '    With Copy
    ws2.Cells(6 + 6, 3) = ws1.Cells(Range("D2:AH2"), 1)  ' Datum
    ws2.Cells(4 + 6, 3) = ws1.Cells(Row.Count, 1)        ' Name
    ws2.Cells(5 + 6, 3) = ws1.Cells(Row.Count, 2)        ' Klasse
    ws2.Cells(3 + 6, 3) = ws1.Cells(Row.Count, 3)        ' Menüpreis
    '    End With
    End If
    Next
    Application.ScreenUpdating = True
    End Sub
    



  • Hoffe dass mir da jemand einige Tipps geben kann...
    Danke
    Alex S.

    8
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Excel <-> Word Seriendruck (wenn Zelle nicht l
    14.12.2007 00:57:46
    Alex
    Sheet "Datenbank"
    Userbild
    Hier soll in Zeilen durchsucht werden ob Datum in Zelle vorhanden
    Sheet "Bondruck"
    Userbild
    und hier sollte dann (sofern es überhaupt möglich ist) der Seriendruck stattfinden. (A4 Seite mit 2x6 Etiketten)
    Man müsste also 6 mal die Zellen füllen (eventuell mit .Cells(4+6,3) ?)
  • .Cells(4,3) 'Name
    .Cells(5,3) 'Klasse
    .Cells(6,3) 'immer das Datum das in der Tabelle hinterlegt ist, dann das nächste, usw. bis Spalte AH, dann nächster Name
    .Cells(4,6) 'Name zweites Etikett (waagrecht) am Seriendruck
    .Cells(5,6) 'Klasse
    .Cells(6,6) ' Datum
    .Cells(10,3)
    .Cells(11,3)
    .Cells(12,3)

  • nur wie kann ich das dynamisch gestalten oder sagen, dass wenn ein Blatt voll ist mit Werten diese gedruckt, dann mittels ClearContents die Felder leeren und mit den nächsten Daten bestücken...
    Bin für jeden Tipp dankbar :)
    MfG

    Anzeige
    noch offen...
    14.12.2007 01:32:00
    Jens

    AW: noch offen...
    14.12.2007 10:41:11
    Alex
    Hallo Heinz, hallo Jens,
    danke für deine Mühe - damit lässt sich sicher etwas anfangen - werde mich gleich mal daran machen - das nach meinem Sheet umzubauen.
    Bedanke mich schon mal jetzt ganz herzlich für die rasche und kompetente Info :)
    PS.: das Forum und die Leute hier sind ein Hammer... immer bereit einem sofort Rede und Antwort zu stehen :)
    MfG
    Alex S.

    Anzeige
    AW: noch offen...
    14.12.2007 15:14:30
    Alex
    Hallo Heinz,
    habe nun dank deiner Vorarbeit alles soweit hinbekommen, allerdings ein Problem stellt sich mir noch.
    Ich schaffe es nicht die ersten 12 Werte zu drucken... er nimmt bei mir mit =INDEX(Liste!A:C;2+Liste!$E$1;1) nur die Namen 13 bis 24 in der Tabelle Liste.
    Darf ich fragen wie du die Matrix deklarierst? Du schreibst ja nur =INDEX(Liste;2+Liste!$E$1;1)... bei mir läuft das jedoch nicht... wenn ich das so übernehme erscheint bei mir in der jeweiligen Zelle #NAME? - habe jedoch die Zelle gleich formatiert wie du in deinem Bsp.
    Bitte nochmals um Hilfeeee :)
    MfG
    Alex S.

    Anzeige
    AW: noch offen...
    15.12.2007 20:01:25
    HAW
    Hallo Alex,
    habe erst jetzt deine Frage gesehen.
    das kommt darauf an, was in der Zelle E1 der Tabelle Liste steht.
    Mit dieser Zahl wird gesteuert, welcher 12er-Block verwendet wird.
    Für die ersten 12 muss da eine 0 stehen, für die zweiten 12 eine 12, für die dritten 12 eine 24 usw.
    Vermutlich hast du eine 12 stehen, dann werden in der Tabelle Bondruck die Datensätze 13 bis 24 (also der zweite 12er-Block) angezeigt.
    Liste ist als Name definiert.
    Sie mal unter Einfügen/Name/Definieren nach:
    Da findest du den Namen Liste. Wenn du ihn anklickst kannst du unten die Definition sehen:
    =Liste!$A;$C
    Du kannst natürlich anstatt dem Namen Liste auch den definierten Bereich Liste!$A:$C verwenden, wie du das ja offensichtlich getan hast.
    Gruß
    Heinz

    Anzeige
    AW: noch offen...
    15.12.2007 22:04:08
    Alex
    Hallo Heinz,
    ja - ich habe schon gesehen - dass beim ersten mal der Wert auch 0 gesetzt wird - aber sobald das Makro durch ist - ist der Wert auf 12 - und erst dann beginnt er mit dem Druck... somit druckt er auch die Datensätze 13 - 24. werde nun mal versuchen - dass er beim wert 0 gleich die ersten 12 Datensätze druckt und erst danach die Zahl auf 12 erhöht. Soweit ich das gesehen habe - funktioniert dies aber in deiner originalen Version auch nicht... Versuche schnell mal, das ganze in eine Schleife zu packen. Oder aber ich setze den Wert im Makro Drucken auf 0 und erhöhe ihn erst nachdem die Schleife ein mal durchgelaufen ist.
    Sollte ich es nicht hinbekommen - melde ich mich nochmals...
    danke derweilen
    mfg
    Alex S.

    Anzeige
    AW: noch offen...
    15.12.2007 23:01:00
    Alex
    Hallo Heinz,
    bin nun nach etlichen Versuchen drauf gekommen, dass ich die automatische Formelberechnung ausgeschalten hatte. nachdem nun vom Manuell wieder auf Automatisch angehakt ist-läuft alles bestens...
    danke dir für deine Geduld und Mühe :)
    Schönes WE noch ...
    MfG
    Alex S.

    332 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige