Daten aus Excel automatisiert in Word einfügen
#11
Hallo Uwe,

das ist wirklich der Hammer.
Das mit der Summe funktioniert, ergal wie viele Zeilen ich einfüge die Summe wird richtig übertragen.
Danke für dein Hilfe.
Mir ist es schon unangenem zu Fragen aber ist es auch möglich die übertragung der Positionen OP unabhängig zu machen von den Text OP in der Spalte B in der Excel?
Wenn ich den Text OP ändere in OP A dann funktioniert leider die Übertragung der Zahlen nicht mehr richtig.
Kann man das so Programmieren, wenn in Spalte P keine Zahl steht, dann wird die Zahl in Spalte E genommen wenn dort eine Zahl drin steht?

Ich muss leider noch etwas Fragen:
Mir ist aufgefallen, das sich ja die Positionenbennenung (Spalte B) mit der in der Excel und der in Word immer gleich sind.
Ist es auch noch möglich das man die Items von oben nach unten übertragen kann von der Spalte B in der Excel zu den Marken in Word?
Ich habe in der Word-Datei die Positionsnummer auch Marken vergeben.
In Word steht ja der Text der Position immer zuerst und dann kommt die Zahl und dann wieder der Text und die Zahl.
Somit wäre die Regel, dass die Marken von oben nach unten ausgefült werden sollen noch richtig.
Das Programm müsste nur immer von Spalte B dann auf Spalte P und dann wieder Spalte B und dann wieder Spalte P springen bzw. wenn nicht in Spalte P steht dann zu Spalte E.
Es ist auch noch wichtig, dass die Makro erst von Zeile 11 an den Text in Spalte B bzw. in Spalte P anfängt die Daten zu übertragen, alles was darüber steht soll nicht übertragen werden.
Kann man da was machen?

Ich hoffe ich nerve dich nicht.

Das sind dann auch wirklich meinen letzten Fragen.

Danke für deine Hilfe.


Angehängte Dateien
.docx   Word-Muster-Variante 2.docx (Größe: 19,46 KB / Downloads: 1)
.xlsm   Excel zu Word.xlsm (Größe: 47,29 KB / Downloads: 1)
Antworten Top
#12
Du nervst nur Anderen die du ignorierst
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#13
Hallo Robert,

das ist nur ohne weiteres machbar, wenn in Spalte B ab Zeile 12 nur die restlichen Zellen leer bleiben.
Dann kann man die Abfrage so machen:
Code:
For i = 12 To lz + 20
    If Mid(.Cells(i, 2), 1, 4) <> "" Then
        j = j + 1
        ReDim Preserve arrItem(1 To j)
        arrItem(j) = i
    End If
Next i
Aber ich fürchte, dass es nicht zwingend bei Leerzellen bleibt.
Dann wäre zu klären welche Begriffe statt OP es noch geben wird.

Gruß Uwe
Antworten Top
#14
Hallo Uwe,

ja da hast du recht das geht leider nicht.
Ich hätte aber eine andre Idee.
Zu den Punkt OP:
Ich würde in Spalte A ein x Eintragen wenn ich die Position OP habe.
Die Makro müsste dann in Spalte A das x abfragen und dann den Wert in Spalte E nehmen, wenn nichts in Spalte P steht.
Ich denke das ist so besser weil in der Spalte A sonst nichts eingetragen wird.
In der Makro habe ich das so angepasst(Änderung in Rot):

If Mid(.Cells(i, 2), 1, 4) = "Item" Or .Cells(i, 1) = "x" Then

Ist das richtig?

Ich habe gestern Abend auch nochmal ausprobiert, ob die Makro in meiner Grund Excel-Datei auch funktioniert (siehe Anhang).

Es ist so das bei Aktivierung, sich das Suchfenster öffnet und ich dann die Word-Datei auswählen kann.
Das funktioniert super.
Doch leider überträgt er die Daten in die Word-Datei (siehe Anhang) nicht richtig.
Ich denke das liegt daran, dass man der Makro noch sagen muss das er die Daten erst ab Zeile 45 übernehmen soll in seinen Speicher.
Ich habe deine Zeilen so eingefügt in der Makro (Änderungen in Rot und Blau):
Sub ÜbertragungvonDateninWord()
    Dim Pfad$, lz&, i&, j&, arrWerte(), arrTM(), arrItem(), Sum As Variant
    Dim WdApp As Object, wdDok As Object, objBkm As Object, rngBkm As Object
    With Tabelle1
    For i = 45 To lz + 20
    If Mid(.Cells(i, 2), 1, 4) <> "" Then
        j = j + 1
        ReDim Preserve arrItem(1 To j)
        arrItem(j) = i
    End If
Next i
        lz = .Cells(Rows.Count, 2).End(xlUp).Row
        For i = 1 To lz + 20
            If Mid(.Cells(i, 2), 1, 4) = "Item" Or .Cells(i, 1) = "x" Then
                j = j + 1
                ReDim Preserve arrItem(1 To j)
                arrItem(j) = i
            End If
        Next i
usw. 

Leider übernimmt er die Daten in die Word-Datei immer noch nicht richtig.
Weist du was ich falsch gemacht habe oder falsch verstanden habe?

Zudem wollte ich noch Fragen ob es noch möglich ist die die Positionen mit zu übernehmen in die Word-Datei (in Marker Text)?
Diese befinden sich in der Spalte B in der Excel-Datei und diese sind immer in der gleichen Zeile wie die Zahlen in Spalte P die übertragen werden sollen bzw. in Spalte E, wenn ein x sich in Spalte A befindet.

Kann man da noch was machen?

Danke für deine Hilfe.

Gruß

Robert


Angehängte Dateien
.xlsm   240117_Excel zu Word Version 2.xlsm (Größe: 74,44 KB / Downloads: 0)
.docx   Word-Muster-Version 2.docx (Größe: 19,43 KB / Downloads: 0)
Antworten Top
#15
Hallo ,

das muss so sein:
Code:
For i = 12 To lz + 20 ' du hattest 45 to drin stehen?
    If Mid(.Cells(i, 2), 1, 4) = "Item" Or .Cells(i, 1) = "x" Then
        j = j + 1
        ReDim Preserve arrItem(1 To j)
        arrItem(j) = i
    End If
Next i
Dann klappt es so wie gehabt.

Gruß Uwe
Antworten Top
#16
Hallo Uwe,

das mit OP funktioniert jetzt.
Er sucht nach den x in Spalte A.

Doch leider übernimmt er nicht in der richtigen reinfolge die Zahlen von Excel in Word.(siehe Anhang)
Wenn ich die Daten übertragen lasse, zeigt mir die Excel an -> Index außerhalb des gültigen Bereichs
Und in Word steht an den ersten Marker 4000 und nicht 2000.
An der zweiten Position steht 2000 drin, soll aber 3000 sein.
Position OP steht 14000 drin soll aber 4000 sein.
Die Summe überträgt er leider auch nicht.

Kannst du mir sagen woran das liegt.

Gruß

Robert


Angehängte Dateien
.xlsm   240117_Excel zu Word Version 2.xlsm (Größe: 72,86 KB / Downloads: 3)
.docx   Word-Muster-Version 3.docx (Größe: 19,38 KB / Downloads: 3)
Antworten Top
#17
Warum, Robert, heisst du Dietmar im Alias?

Ich würde vorschlagen Excel zu benützen.


Angehängte Dateien
.xlsb   __und_nun_in Excel.xlsb (Größe: 45,06 KB / Downloads: 1)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#18
Hallo Robert,

ja logisch, dass es nicht korrekt ist.
Du hast statt Item1 Item2 ... nun 1 2 oder gar nichts in Spalte B drinstehen.

Die Zeile:
Code:
If Mid(.Cells(i, 2), 1, 4) = "Item" Or .Cells(i, 1) = "x" Then
sucht in Spalte B ob die ersten 4 Zeichen in der jeweiligen Zelle "Item" lauten.

Ich habe dir eigentlich gezeigt wie man so was nach deinen Vorgaben flexibel gelöst bekommt. 
Entweder markierst du in Spalte A alle Änfänge mit X also auch die Anfänge wo vorher Item1 in Spalte B drin standen oder du schreibst wieder die Item in Spalte B rein. Dann wird es normal sein Werk verrichten.

Gruß Uwe
Antworten Top
#19
Hallo Uwe,

ja natürlich
Sorry das ich es jetzt erst verstanden habe.
Jetzt funktioniert es wieder perfekt.

Kannst du mir noch zeigen welche Zeile ich bei der Makro noch einfügen muss, 
damit auch die Items in der Spalte B in die Word-Datei zu den Markern von oben nach unten implementiert werden?

Danke für deine Hilfe.

mfg

Robert


Angehängte Dateien
.xlsm   240117_Excel zu Word Version 2.xlsm (Größe: 73,02 KB / Downloads: 3)
.docx   Word-Muster-Version 2.docx (Größe: 19,43 KB / Downloads: 3)
Antworten Top
#20
Hallo Robert, 
 
was meinst du mit implementiert?
 
Du hast im Word Dokument bereits Marker für die Item drin. 
Sollen diese mit dem Werten in Spalte B überschrieben werden?
 
Oder sollen neue Marker an bestimmten Stellen gesetzt werden. Das ist in Word nicht wirklich zu empfehlen, da dies sehr störanfällig ist und bleibt.
Ich gehe mal davon aus, dass die Maker Text1 bis ... mit den Items und OP's in Spalte B überschrieben werden sollen.

.xlsm   240117_Excel zu Word Version 2(1).xlsm (Größe: 70 KB / Downloads: 3)
 
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Dietmar Henning
Antworten Top


Gehe zu:


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