Zum Inhalt springen

Daten aus Excel ins Word schreibn. VBS


Empfohlene Beiträge

[sarkasmus]

Hallo,

ist es mit VBS möglich, z.B.

Excel: Zeile 122 bis 125 und in Spalte O und P.

soll nach Word geschickt und ganz unten nach dem ganzem

Text die Daten reinschreiben.

mit VBA

keine Ursache.

[/sarkasmus]

Gib mal mehr Input:

Ist das Worddokument ein festes Dokument mit fester Position und festem Namen? Ist das Dokument bereits geöffnet? Soll es hinterher geöffnet bleiben?

Ist das Excel-Dokument ein festes Dokument mit fester Position und festem Namen? Ist das Dokument bereits geöffnet? Soll es hinterher geöffnet bleiben?

Du wirst eines der beiden Programme durch das andere Steuern müssen.

Eigentlich nicht schwer.

nein

Link zu diesem Kommentar
Auf anderen Seiten teilen

Im Moment steuere ich das ganze über diesen Script:

Dim zaehler, Quelltabelle, QuellDokument, objXL, ObjWrd, ObjWrdDok

Set wshshell = CreateObject("WScript.Shell")

Set FSO = CreateObject("Scripting.FileSystemObject")

' ----------------------------------------------

' Das Hauptmenü:

' ----------------------------------------------

Do

Titel = "Auswahlmenü (by) Kotik"

Anzeige = "**************************************************************" & vbCRLF

Anzeige = Anzeige & "* Achtung: Beim Menüauswahl [2] *" & vbCRLF

Anzeige = Anzeige & "*"& vbTAB & vbTAB & vbTAB & vbTAB & vbTAB & vbTAB &" *" & vbCRLF

Anzeige = Anzeige & "* Zuerst die:"& vbTAB & vbTAB & vbTAB & vbTAB & vbTAB &" *" & vbCRLF

Anzeige = Anzeige & "*"& vbTAB & vbTAB &" Excel - Tabelle"& vbTAB & vbTAB & vbTAB &" *" & vbCRLF

Anzeige = Anzeige & "* Danach die:"& vbTAB & vbTAB & vbTAB & vbTAB & vbTAB &" *" & vbCRLF

Anzeige = Anzeige & "*"& vbTAB & vbTAB &" Word - Datei"& vbTAB & vbTAB & vbTAB &" *" & vbCRLF

Anzeige = Anzeige & "*"& vbTAB & vbTAB & vbTAB & vbTAB & vbTAB & vbTAB &" *" & vbCRLF

Anzeige = Anzeige & "* suchen und auswählen...!" & vbTAB & vbTAB & vbTAB &" *" & vbCRLF

Anzeige = Anzeige & "**************************************************************" & vbCRLF

Anzeige = Anzeige & " " & vbTAB & " " & vbCRLF

Anzeige = Anzeige & " [1] Schon im Script von mir festgelegter Pfad ...." & vbCRLF

Anzeige = Anzeige & " [2] Den Pfad zur Dateien selber festlegen ...." & vbCRLF

Anzeige = Anzeige & " " & vbTAB & " " & vbCRLF

Anzeige = Anzeige & " . . . was soll's denn sein?"

Eingabe = InputBox(Anzeige,Titel,1,,4000)

If Eingabe = "" Then ' Abbruch vom Benutzer

aktAusw = MsgBox(". . . wirklich beenden?", vbYesNo + vbDefaultButton1 + vbQuestion, Titel)

'aktAusw = MsgBox(". . . wirklich beenden?", vbYesNo + vbDefaultButton2 + vbQuestion, Titel)

If aktAusw <> vbNo Then

WScript.Quit

End If

End If

'If Eingabe <> "1" AND Eingabe <> "2" Then WScript.Quit

'If UCase(Eingabe) = "1" Then sFest

If Eingabe = "1" Then sFest

If Eingabe = "2" Then sSelber

Loop

' ----------------------------------------------

' Pfad festlegen:

' ----------------------------------------------

Sub sFest 'Schon festgelegt

Quelltabelle = "D:\Downloads\Sergej\Kopie von TelefonNummer.xls"

QuellDokument = "D:\Downloads\Sergej\EVN.doc"

sSuchen 'Bearbeitung

End Sub 'sFest

' ----------------------------------------------

' Pfad auswahl:

' ----------------------------------------------

Sub sSelber 'Selber den Pfad festlegen

'********************************************************************************************

Set Dialog = CreateObject("UserAccounts.CommonDialog")

' Dialog.Filter = "Text Files|*.txt|All Files|*.*" ' zeigt nur *.txt

' Dialog.Filter = "Excel-Arbeitsmappen|*.xls|Alle Dateien|*.*" ' zeigt nur *.xls

Dialog.Filter = "Alle Dateien|*.*" ' zeigt nur *.* - also ALLES

' Dialog.Filter = "Textdateien|*.txt|Excel-Arbeitsmappen|*.xls|Alle Dateien|*.*"

Dialog.FilterIndex = 3 ' von den drei auswählbaren Filtern wird der 3. eingesetzt

Dialog.ShowOpen 'Zuerst die Excel-Tabelle auswählen

Quelltabelle = Dialog.FileName

Dialog.ShowOpen 'Danach die Word-Datei wählen

QuellDokument = Dialog.FileName

sSuchen 'Bearbeitung

'********************************************************************************************

End Sub 'sSelber

' ----------------------------------------------

' Dateien öffnen:

' ----------------------------------------------

Sub sSuchen 'Sucht nach Nummern

If fso.FileExists(Quelltabelle) Then

If fso.FileExists(QuellDokument) Then

'--Öffnen der Excel-Quelltabelle

Set objXL = CreateObject("Excel.Application")

objXL.Visible = True

objXL.Workbooks.open(Quelltabelle)

'--Öffnen des Word-Dokuments

Set ObjWrd = CreateObject("Word.Application")

ObjWrd.Visible = True

ObjWrd.documents.open(QuellDokument)

Set ObjWrdDok = ObjWrd.activeDocument

'MsgBox "Jetzt geht`s los!"

'--Hier werden die Sachen eingetragen, die die in Excel

'--durchgesucht werden müssen!

'--Spalte,VonZeile,BisZeile

Schleifensuche 3,23,46

Schleifensuche 3,51,53

Schleifensuche 3,57,57

Schleifensuche 3,61,65

Schleifensuche 3,106,116

Schleifensuche 4,23,46

Schleifensuche 4,51,53

Schleifensuche 4,57,57

Schleifensuche 4,61,65

Schleifensuche 4,106,116

Schleifensuche 11,2,120

'WScript.Sleep 1000

'test = zaehler

'MsgBox "Es wurden " & test & " Nummern gefunden!"

Else

msgbox "QuellDokument " & QuellDokument & " existiert nicht"

End If

Else

msgbox "Quelltabelle " & Quelltabelle & " existiert nicht"

End If

WScript.Quit

End Sub

' ----------------------------------------------

' Nummer suchen und markieren:

' ----------------------------------------------

Sub Schleifensuche (Spalte,VonZeile,BisZeile)

Set ObjWrdDok = ObjWrd.activeDocument

'--Schleife durch die Exceltabelle

i = VonZeile

Do

objXL.Statusbar = "Suche in Spalte: " & Spalte & " und in Zeile: " & i & " nach " & objXL.Cells(i,Spalte).value

With ObjWrdDok.Content.Find

.ClearFormatting

.Text = objXL.Cells(i,Spalte).value

.Replacement.Highlight = true

.Forward = True

.Replacement.Text = objXL.Cells(i,Spalte).value

zaehler = zaehler + 1

'if .Execute (,,,,,,,,,,2) = true then Msgbox objXL.Cells(i,Spalte).value & " Wurde gefunden!!"

.execute ,,,,,,,,,,2 'das macht einen "Replace All" mit demselben Inhalt aber anderer formatierung

End With

If i = BisZeile Then Exit Do

i = i + 1

loop While Len (objXL.Cells(i,Spalte).Value) < 30

End Sub

Ich wollte es etwas erweitern, um diese

Gesamt Netto: 6,94 €

Grundgebühr: 8,60 €

MwSt: 2,95 €

Gesamt Brutto: 18,50 €

Daten ins Word ganz unten rein schreiben (nach einander, wie die Abbildung).

Beide Dateien sind schon geöffnet.

Ich dachte mir es wäre wenig Arbeit um das zu erledigen, aber wenn es mit VBS schwer geht, dann lass ich es.

Danke im Voraus!

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...