Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Tabellenwerte in vorformatierte Tabelle in Word

Betrifft: Tabellenwerte in vorformatierte Tabelle in Word von: Marcel Petzold
Geschrieben am: 29.04.2015 08:32:33

Guten Morgen!

Ich nutze Excel 2010 unter Windows 7.

Gegeben ist eine Exceltabelle mit fester Spaltenanzahl, aber variabler Zeilenanzahl. Also etwa A1:G6 oder A1:G10.

Angestrebt ist ein Export der Daten in ein Worddokument.

Das Dokument ist selbst als große Tabelle aufgebaut, was hauptsächlich der Formatierung dient. Einige der Rahmenlinien sind im endgültigen Dokument ausgeblendet.



Dort sollen die Daten in eine vorformatierte Tabelle übertragen werden, wobei die Zeilenanzahl zwischen 5 und 10 schwankt. Abhängig von der Zeilenanzahl sollen leere Zeilen in der Zieltabelle gelöscht werden.

Bisher hatte ich zum Übertragen der Werte in Word Textmarken genutzt, komme in diesem Fall jedoch an meine Grenzen. Denn

a) ich muss vorher den Bereich festlegen können, der kopiert werden soll. Ich wollte dies über eine Checkbox neben den Zeilen lösen. Je nachdem, welche Checkbox markiert wird, wird bis zu dieser Zeile kopiert.

b) da es sich um einen Kalibrierschein handelt, muss eine gewisse Formatierung in Word eingehalten werden. Wäre die Zeilenanzahl immer gleich, würde ich es "umständlich" über Textmarken lösen können. Geht aber leider nicht

Hier ist mein bisheriger Code zum Export der Daten und es müsste hier irgendwo eingefügt werden. Ich bin für jede Hilfe sehr dankbar!

LG
Marcel

Sub wordExcel()

Dim wrdApp, wrdDoc, Start, Maschinenwerte, B7500, B7500MB2, B7500MB3, Messmittel

On Error GoTo ErrorExit

Set Start = ThisWorkbook.Worksheets("START")
Set Maschinenwerte = ThisWorkbook.Worksheets("Maschinenwerte")
Set B7500 = ThisWorkbook.Worksheets("7500-1")
Set B7500MB2 = ThisWorkbook.Worksheets("7500-1 MB 2")
Set B7500MB3 = ThisWorkbook.Worksheets("7500-1 MB 3")
Set Messmittel = ThisWorkbook.Worksheets("MM")
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open("C:\Users\Marcel.Petzold\Desktop\Test Kalibrierdatei\B-013    _
 _
_
_
Musterkalibrierschein.dotm")

'DKD

wrdDoc.FormFields("DKD1").Result = Start.Range("D104").Value
wrdDoc.FormFields("DKD2").Result = Start.Range("D105").Value
wrdDoc.FormFields("DKD3").Result = Start.Range("D106").Value

'Kalibrierverfahren

wrdDoc.FormFields("KALV1").Result = Start.Range("B100").Value
wrdDoc.FormFields("KALV2").Result = Start.Range("B101").Value
wrdDoc.FormFields("KALV3").Result = Start.Range("B102").Value

'Hauptdaten

wrdDoc.FormFields("BEARB").Result = Start.Range("I3").Value
wrdDoc.FormFields("GS").Result = Start.Range("C6").Value
wrdDoc.FormFields("DATK").Result = Start.Range("L3").Value
wrdDoc.FormFields("HST").Result = Start.Range("C3").Value
wrdDoc.FormFields("TYP").Result = Start.Range("C4").Value
wrdDoc.FormFields("SN").Result = Start.Range("C5").Value
wrdDoc.FormFields("AG").Result = Start.Range("I12").Value
wrdDoc.FormFields("ANR").Result = Start.Range("I13").Value

'Kalibriergegenstand


wrdDoc.FormFields("KMPMAX").Result = Start.Range("C16").Value
wrdDoc.FormFields("KMMEAS").Result = Start.Range("D16").Value
wrdDoc.FormFields("KMTYP").Result = Start.Range("C14").Value
wrdDoc.FormFields("KMHERST").Result = Start.Range("C13").Value
wrdDoc.FormFields("KMSN").Result = Start.Range("C15").Value
wrdDoc.FormFields("KMANZ").Result = Start.Range("C9").Value
wrdDoc.FormFields("KMANZ2").Result = Start.Range("D9").Value
wrdDoc.FormFields("KMANZ3").Result = Start.Range("F9").Value

'Messwerte Druckplatten

wrdDoc.FormFields("DPODIM").Result = Maschinenwerte.Range("D15").Value
wrdDoc.FormFields("DPOH").Result = Maschinenwerte.Range("E15").Value
wrdDoc.FormFields("DPOR").Result = Maschinenwerte.Range("G15").Value
wrdDoc.FormFields("DPOE").Result = Maschinenwerte.Range("F15").Value
wrdDoc.FormFields("DPUDIM").Result = Maschinenwerte.Range("D16").Value
wrdDoc.FormFields("DPUH").Result = Maschinenwerte.Range("E16").Value
wrdDoc.FormFields("DPUR").Result = Maschinenwerte.Range("G16").Value
wrdDoc.FormFields("DPUE").Result = Maschinenwerte.Range("F16").Value

'Adresse und Temperatur

wrdDoc.FormFields("KUNDSTR").Result = Start.Range("I15").Value
wrdDoc.FormFields("KUNDPLZ").Result = Start.Range("I16").Value
wrdDoc.FormFields("KUNDSTD").Result = Start.Range("K16").Value
wrdDoc.FormFields("KUNDLAND").Result = Start.Range("I14").Value
wrdDoc.FormFields("TEMP").Result = Start.Range("I5").Value

'Bereich und Klasse

wrdDoc.FormFields("RANGE").Result = Start.Range("E7").Value
wrdDoc.FormFields("RANGEFR").Result = Start.Range("C7").Value
wrdDoc.FormFields("RANGETO").Result = Start.Range("E7").Value
wrdDoc.FormFields("CLASS").Result = Start.Range("E8").Value

'Bezugsnormale

wrdDoc.FormFields("BNDEV1").Result = B7500.Range("A100").Value
wrdDoc.FormFields("BNDEV2").Result = B7500MB2.Range("A100").Value
wrdDoc.FormFields("BNDEV3").Result = B7500MB3.Range("A100").Value

wrdDoc.FormFields("BNTYP1").Result = B7500.Range("A101").Value
wrdDoc.FormFields("BNTYP2").Result = B7500MB2.Range("A101").Value
wrdDoc.FormFields("BNTYP3").Result = B7500MB3.Range("A101").Value

wrdDoc.FormFields("BNNR1").Result = B7500.Range("A102").Value
wrdDoc.FormFields("BNNR2").Result = B7500MB2.Range("A102").Value
wrdDoc.FormFields("BNNR3").Result = B7500MB3.Range("A102").Value

wrdDoc.FormFields("BNKALNR1").Result = B7500.Range("A103").Value
wrdDoc.FormFields("BNKALNR2").Result = B7500MB2.Range("A103").Value
wrdDoc.FormFields("BNKALNR3").Result = B7500MB3.Range("A103").Value

wrdDoc.FormFields("BNVAL1").Result = B7500.Range("A104").Value
wrdDoc.FormFields("BNVAL2").Result = B7500MB2.Range("A104").Value
wrdDoc.FormFields("BNVAL3").Result = B7500MB3.Range("A104").Value

'Hilfsmessgeräte

wrdDoc.FormFields("HMG1").Result = B7500.Range("A106").Value
wrdDoc.FormFields("HMGHST1").Result = B7500.Range("A107").Value
wrdDoc.FormFields("HMGTYP1").Result = B7500.Range("A108").Value
wrdDoc.FormFields("HMGNR1").Result = B7500.Range("A109").Value

wrdDoc.FormFields("HMG2").Result = B7500.Range("B106").Value
wrdDoc.FormFields("HMGHST2").Result = B7500.Range("B107").Value
wrdDoc.FormFields("HMGTYP2").Result = B7500.Range("B108").Value
wrdDoc.FormFields("HMGNR2").Result = B7500.Range("B109").Value

wrdDoc.FormFields("HMG3").Result = B7500.Range("C106").Value
wrdDoc.FormFields("HMGHST3").Result = B7500.Range("C107").Value
wrdDoc.FormFields("HMGTYP3").Result = B7500.Range("C108").Value
wrdDoc.FormFields("HMGNR3").Result = B7500.Range("C109").Value

wrdDoc.FormFields("HMG4").Result = B7500.Range("D106").Value
wrdDoc.FormFields("HMGHST4").Result = B7500.Range("D107").Value
wrdDoc.FormFields("HMGTYP4").Result = B7500.Range("D108").Value
wrdDoc.FormFields("HMGNR4").Result = B7500.Range("D109").Value

wrdDoc.FormFields("HMG5").Result = Start.Range("B104").Value
wrdDoc.FormFields("HMGHST5").Result = Start.Range("B105").Value
wrdDoc.FormFields("HMGTYP5").Result = Start.Range("B106").Value
wrdDoc.FormFields("HMGNR5").Result = Start.Range("B107").Value

'Messdaten übertragen

wrdDoc.FormFields("DATEN1").Result = Start.Range("H98").Value
wrdDoc.FormFields("DATEN2").Result = Start.Range("H98:N107").Value

MsgBox "Alle Felder erfolgreich eingefügt"

wrdDoc.Save
'wrdDoc.Close

ErrorExit:
'wrdApp.Quit

Set Tabelle = Nothing
Set wrdDoc = Nothing
Set wrdApp = Nothing

End Sub

  

Betrifft: AW: Tabellenwerte in vorformatierte Tabelle in Word von: Marcel Petzold
Geschrieben am: 29.04.2015 11:10:29

Falls Unklarheiten bestehen, würde ich es auch noch klarer formulieren können. Bei Bedarf. Ich hoffe, mir kann jemand helfen. Bin mit meinem bescheidenen Wissen am Ende...


  

Betrifft: AW: Tabellenwerte in vorformatierte Tabelle in Word von: fcs
Geschrieben am: 29.04.2015 12:56:38

Hallo Marcel,

grundsätzlich kann man die Zellen einer Wordtabelle über Zeile und Spalte ähnlich ansprechen wie in einer Exceltabelle.
Es ist aber sehr viel mühsehliger bei einer langen Tabelle mit vielen Zeilen die korrekte Zeile der Wordtabelle zu ermitteln in der man beginnen möchte Werte einzutragen.
Auch unterschiedlicher Spaltenaufbau durch Teilen/Verbinden von Zellen kann die Ermittlung der korrekten Spaltennumer erschweren.

In der ZIP-Datei findest du dein modifiziertes Makro in einer Exceldatei mit Beispieldaten und eine kleine Wordvorlage, die ich zum Testen verwendet hab. Das Verzeichnis der Wordvorlage im Makro musst du anpassen!.
https://www.herber.de/bbs/user/97361.zip


Gruß
Franz


  

Betrifft: AW: Tabellenwerte in vorformatierte Tabelle in Word von: Marcel Petzold
Geschrieben am: 29.04.2015 13:59:10

Vielen Dank, fcs!

Ich schaue es mir gleich an... LG aus Berlin


  

Betrifft: AW: Tabellenwerte in vorformatierte Tabelle in Word von: Marcel Petzold
Geschrieben am: 30.04.2015 08:17:56

Vielen Dank, fcs!

Ich schaue es mir gleich an... LG aus Berlin


 

Beiträge aus den Excel-Beispielen zum Thema "Tabellenwerte in vorformatierte Tabelle in Word"