Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Adressetiketten von Word zu Excel
#1
Hallo liebe Forumgemeinde,

schon oft habe ich mich hier durchs Forum geklickt, um schnell Antworten auf meine Fragen zu MS Office zu finden.

Doch dieses mal komme ich nicht mehr weiter. Nun habe ich mich registriert um euch meine (hoffentlich leicht zu beantwortende) Frage zu stellen.

Ich habe diverse Word Dateien, in diesen sind Adressetiketten welche ich in der Regel selbst ausgedruckt habe. Nun aber möchte ich diese von einer Druckerei direkt auf meine Briefe drucken. Dafür müssen die Adressdateien in eine Excelliste übertragen werden. 

Meine Frage ist, wie ich dieses automatisieren kann, ohne jede Adresse einzeln in die Adressfelder zu kopieren.

Anbei sende ich die beiden Dateien zur Veranschaulichung.

Ich freue mich über jede Antwort!

Viele Grüße
Falko


.xls   Vorlage_Adressdatei.xls (Größe: 30 KB / Downloads: 10)


.doc   Adressetiketten-Muster.doc (Größe: 34,5 KB / Downloads: 11)
Antworten Top
#2
gelöscht. ich hatte die Druckerei übersehen... sorry
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
[-] Folgende(r) 1 Nutzer sagt Danke an Jockel für diesen Beitrag:
  • falkowi
Antworten Top
#3
Hallo,

mit folgendemCode werden die Adressen im Word-Dokument gelesen. Damit ist ein Umwandlung in das gewünschte Format und die Übertragung nach Excle möglich.

Code:
Sub T_1()
Debug.Print ThisDocument.Tables(1).Columns.Count, ThisDocument.Tables(1).Rows.Count
With ThisDocument.Tables(1)
  For i = 1 To .Rows.Count
       For j = 1 To .Columns.Count Step 2
           Debug.Print .Cell(i, j).Range.Text
       Next j
   Next i
End With
End Sub

Frage: Gibt es viele Dateien mit jeweils 1 Seite oder weniiger Dateien mit mehreren Seiten? Liegen die in einem Ordner?

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • falkowi
Antworten Top
#4
(27.03.2018, 09:38)Fennek schrieb: Frage: Gibt es viele Dateien mit jeweils 1 Seite oder weniiger Dateien mit mehreren Seiten? Liegen die in einem Ordner?

mfg

Hallo Fennek,

vielen Dank für die Antwort! Es sind aktuell 45 Word Dateien mit jeweils einer Seite welche in einem Ordner liegen. Diese könnte man ja aber sicherlich einfach zusammenfügen.

Das mit dem Code habe ich ehrlich gesagt noch nicht ganz verstanden  Huh  Würde mich über eine kurze Erklärung sehr freuen.
Antworten Top
#5
Hallo,

gut, ist ist kein Problem nacheinander die *.doc Dateien eines Ordners auszulesen.

Dann bleibt die zentrale Frage: In Excel müssen die Adressen einzelnen Zellen zuwiesen werden: Ist die Struktur des gezeigten Beispiels für ALLE Adressen identisch?

mfg

(ich hoffe, dass du Grundkenntnisse in VBA hast)
Antworten Top
#6
(27.03.2018, 09:55)Fennek schrieb: Dann bleibt die zentrale Frage: In Excel müssen die Adressen einzelnen Zellen zuwiesen werden: Ist die Struktur des gezeigten Beispiels für ALLE Adressen identisch?

(ich hoffe, dass du Grundkenntnisse in VBA hast)

Die Struktur ist immer gleich. Lediglich fehlen (leider) bei einigen Adressen die Vornamen. Oftmals steht also nur der Nachname in der Word Datei. Aber dieses könnte ich auch später händisch abändern.

Ich bin leider kein Programmierer. Grundkenntnisse in Excel sind vorhanden und ich bin lernbereit Wink Ich hoffe es ist keine zu komplizierte Sache...
Antworten Top
#7
Hallo,

der Code liest alle Etiketten einer Datei in ein Array (das später nach xl übertragenwird)

Teste den Code bitte im Einzelschrittmodus F8.


Code:
Type Adresse
   Gender  As String
   VorNm   As String
   NachNm  As String
   Str     As String
   Nr      As Integer
   PLZ     As String
   Stadt   As String
End Type


Sub T_1()
Dim Adr(1000) As Adresse

With ThisDocument.Tables(1)
  For i = 1 To .Rows.Count
       For j = 1 To .Columns.Count Step 2
           Tx = Split(.Cell(i, j).Range.Text, Chr(13))
           Adr(a).Gender = Trim(Tx(0))
           Adr(a).NachNm = Trim(Tx(1))
           Adr(a).Str = Trim(Tx(2))
           Adr(a).PLZ = Split(Trim(Tx(3)))(0)
           Adr(a).Stadt = Split(Trim(Tx(3)))(1)
       Next j
       a = a + 1
   Next i
End With
End Sub


Wenn du die Maus über z.B. Adr(a).Gender fährst, wird der aktuelle Wert gezeigt.

Wenn alles passt folgt die Übertragung nach xl, im 1. Test für eine Doc-Datei, danach dann für alle.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • falkowi
Antworten Top
#8
Makro in Excel:


Code:
Sub M_snb()
   With GetObject("G:\OF\adressetiketten_001.docx")
      sn = Split(.Content, Chr(7) & vbCr)
      .Close 0
   End With
   
   For j = 0 To UBound(sn)
     st = Split(sn(j), vbCr)
     sheets(1).Cells(Rows.Count, 1).End(xlup).Offset(1).Resize(, UBound(st) + 1) = st
   Next
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • falkowi
Antworten Top
#9
(27.03.2018, 10:12)Fennek schrieb: der Code liest alle Etiketten einer Datei in ein Array (das später nach xl übertragenwird)

Teste den Code bitte im Einzelschrittmodus F8.

Wenn du die Maus über z.B. Adr(a).Gender fährst, wird der aktuelle Wert gezeigt.

Wenn alles passt folgt die Übertragung nach xl, im 1. Test für eine Doc-Datei, danach dann für alle.

Erst einmal besten Dank!

Ist es möglich mir die Schritte als absoluten Anfänger noch zu erklären? Oder finde ich hier im Forum eine Anleitung?

Habe gerade etwas rumprobiert. Bin in der Word Datei auf Extras -> Macro -> Visual Basic Editor 
Soweit richtig?

Danach öffnet sich dann ein Fenster mit "Projekt" anbei ein Screenshot. 

Und dann wirds kompliziert, wo muss der Code eingefügt werden?
Ich habe es bei This Document probiert. Bekomme dann aber die Fehlermeldung "Fehler beim Kompilieren" Der benutzerdefinierte Typ "Puclic" kann in einem Objektmodul nicht definiert werden.
   
Antworten Top
#10
Hallo,

so effizient wie snb bekomme ich das nicht hin:


Code:
Type Adresse
   Anrede  As String
   VorNm   As String
   NachNm  As String
   Str     As String
   Nr      As Integer
   PLZ     As String
   Stadt   As String
End Type

Sub T_1()
Dim Adr(1000) As Adresse
Dim Xl As Object: Set Xl = CreateObject("Excel.Application")
Dim WB As Object
With ThisDocument.Tables(1)
  For i = 1 To .Rows.Count
       For j = 1 To .Columns.Count Step 2
           Tx = Split(.Cell(i, j).Range.Text, Chr(13))
           Adr(a).Anrede = Trim(Tx(0))
           If InStr(1, Trim(Tx(1)), " ") > 0 Then
               Adr(a).VorNm = Split(Trim(Tx(1)))(0)
               Adr(a).NachNm = Split(Trim(Tx(1)))(1)
           Else
               Adr(a).NachNm = Trim(Tx(1))
           End If
           Adr(a).Str = Split(Trim(Tx(2)))(0)
           Adr(a).Nr = Split(Trim(Tx(2)))(1)
           Adr(a).PLZ = Split(Trim(Tx(3)))(0)
           Adr(a).Stadt = Split(Trim(Tx(3)))(1)
       Next j
       a = a + 1
   Next i
End With
Set WB = Xl.Workbooks.Add
Xl.Visible = True
With WB.sheets(1)
For i = 0 To a
   .Cells(i + 2, 3) = Adr(i).Anrede
   .Cells(i + 2, 5) = Adr(i).VorNm
   .Cells(i + 2, 6) = Adr(i).NachNm
   .Cells(i + 2, 7) = Adr(i).Str
   .Cells(i + 2, 8) = Adr(i).Nr
   .Cells(i + 2, 10) = Adr(i).PLZ
   .Cells(i + 2, 11) = Adr(i).Stadt
Next i
End With
Set Xl = Nothing
End Sub


Für die nächsten Stunden bin ich nicht am PC.

mfg

(dies ist ein Word-Makro)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste