Thema Datum  Von Nutzer Rating
Antwort
Rot Serienbrief
15.01.2018 10:56:37 Marlon
NotSolved

Ansicht des Beitrags:
Von:
Marlon
Datum:
15.01.2018 10:56:37
Views:
894
Rating: Antwort:
  Ja
Thema:
Serienbrief

Hallo zusammen,

zur Zeit baue ich eine kleine Datenbank auf. In dieser würde ich gerne ein Makro verwenden, dass schon die bereits vorhandene Word-Serienbrief Datei mit Bezug auf die entsprechenden Zellen in Excel für den Serienbrief öffnet, jedoch nur die in der Excel Liste zuletzt eingefügten Daten benutzt, also den sogesehen letzten Serienbrief erstellt, damit dieser dann auch enstprechend separat abgespeichert werden kann. Am besten sollte die Word-Datei dann auch automatisch nach der entsprechenden Rechnungsnummer benannt werden. Die Rechnungsnummer ist ebenfalls ein Bestandteil der zur Verfügung stehenden Daten für den Serienbrief.

Das Markro für das automatische Kopieren und Einfügen von Daten in die nächsten freien Zeilen ist mir bereits gelungen. Ich hatte überlegt, die beiden Befehle evtl. zu kombinieren. Also: Einmal Button betätigen = Autom. Kopieren und Einfügen in die Liste für den Serienbrief -> Autom. Öffnen des Serienbiefs -> Autom. Drucken, sodass man schließlich lediglich speichern muss (wäre auch cool, wenn das speichern automatisch passiert ;-) ). Makro bis jetzt:

Sub Rechnungserstellung()
Dim i, j  As Long
Dim strQuelle, strZiel As Variant
Dim strTest As String
Dim ws1, ws2 As Worksheet

strQuelle = Array("A21", "B21", "C21", "D21", "E21", "F21", "G21", "H21", "I21", "J21", "K21", "L21", "M21", "N21", "O21", "P21", "Q21", "R21", "S21", "T21", "U21", "V21", "W21", "X21", "Y21")
strZiel = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y")


Set ws1 = Worksheets("Hauptblatt") 'Name des Quell-Tabellenblatt
Set ws2 = Worksheets("Rechnungen") 'Name des Ziel-Tabellenblatts

i = 4     'erste (mögliche) Ziel-Zeile festlegen

Do
'in der Schleife wird geprueft, ob die Zellen der Ziel-Zeile leer sind
'wenn nicht, naechste Zeile pruefen...
  strTest = ""
  For j = 1 To 25
     strTest = strTest & ws2.Range(strZiel(j - 1) & i).Value
  Next j
  If strTest = "" Then Exit Do
  i = i + 1
Loop

'Uebertragung der Werte vom Quell-Tabellenblatt ins das Ziel-Tabellenblatt
For j = 1 To 25
  ws2.Range(strZiel(j - 1) & i).Value = ws1.Range(strQuelle(j - 1)).Value
Next j

End Sub

Der Hintergrund ist ganz einfach, ich kenne mich leider zu wenig mit dieser Marterie aus, um dieses Problem auch nach vielen Versuchen eigenständig zu lösen. Die Datenbank ist für einen Verwandten, der einen kleinen "Onlineshop" betreibt und so wenig wie möglich Zeit in die Erstellung und Abspeicherung von Rechnungsdaten investieren möchte.

Ich bedanke ich jetzt schon für mögliche Lösungsvorschläge, auch über die Information, dass ich mir zu viel erträume und einige Abstriche machen muss ;-)

LG Marlon


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Serienbrief
15.01.2018 10:56:37 Marlon
NotSolved