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