Userform aus Word
Betrifft: Userform aus Word
von: Thomas Haake
Geschrieben am: 26.08.2004 09:43:18
Guten Morgen,
es passt vielleicht gar nicht so recht hierher, aber irgendwie auch schon...
Ich möchte Daten einer Userform aus Word heraus an Excel übergeben, ich habe aber keinen Plan, wie das geht. Kann mir jemand einen Tip oder evtl. auch einen Link geben, wo ich weiter schauen kann?
Danke,
Thomas
Betrifft: AW: Userform aus Word
von: Dan
Geschrieben am: 26.08.2004 12:20:08
Hallo Thomas,
folgenden Code in den Class Modul des UserForms im Word kopieren. Form hat ein Frame, wo sich die TExBoxen befinden, deren Werte nach Excel uebenehmen werden sollen. Hier das Beispiel :, Gruss Dan, CZ
https://www.herber.de/bbs/user/10143.doc
Option Explicit
Private Sub cmdCancel_Click()
VBA.Unload Me
End Sub
Private Sub cmdToExcel_Click()
' man muss die Referenze auf Excel tlb setzen (Beisp. Bild im Document)
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
On Error GoTo Err_In_cmdToExcel_Click
' Excel Object bilden und einblenden, neue Datei bilden
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
' Werte aus Words-UserForm uebergeben, alle controls im Frame frmToExcel durchgehen,
' falls TextBox, dan Wert nach Excel uebergeben
Dim ctl As Control
Dim intZeile As Integer
For Each ctl In Me.frmToExcel.Controls
If (VBA.TypeName(ctl) = "TextBox") Then
intZeile = intZeile + 1
xlSheet.Cells(intZeile, 1).Value = ctl.Text
ctl.Text = "" ' TextBoxen wieder ausleren
End If
Next ctl
' Datei speichern
Dim vntDatei As Variant
Dim strFileFilter As String
Dim strTitle As String
strFileFilter = "Microsoft Excel Dateien (*.xls),*.xls"
strTitle = "Microsoft Excel Datei Speichern"
' expression.GetSaveAsFilename(InitialFilename, FileFilter, FilterIndex, Title, ButtonText)
vntDatei = xlApp.GetSaveAsFilename("Datei1.xls", strFileFilter, , strTitle)
If (vntDatei <> False) Then
xlBook.SaveAs vntDatei
End If
' Excel wieder schliessen
xlApp.DisplayAlerts = False
xlApp.Quit
Exit Sub
Err_In_cmdToExcel_Click:
MsgBox "Error in CommandButton1_Click (Error Nummer " & Err.Number & ")", vbCritical, "Error"
End Sub
Code eingefügt mit
Syntaxhighlighter 2.5
Betrifft: AW: Userform aus Word
von: thaake
Geschrieben am: 26.08.2004 12:31:49
Hallo Dan,
das ist super, danke Dir. Kann ich das noch anpassen, so dass die Werte a) in bestimmte Zellen geschrieben werden und b) immer in eine bestimmte Datei/worksheet geschrieben werden?
Gruß nach CZ,
Thomas
Betrifft: AW: Userform aus Word
von: Dan
Geschrieben am: 26.08.2004 16:45:22
Hallo ich bin wieder zurueck :-)
Ja man kann es so anpassen, dass es in eine bestimmte Datei bzw. bestimmte Zellen die Werteschreibt. Z. B. ungefahr so :
Private Sub cmdToExcel_Click()
' man muss die Referenze auf Excel tlb setzen (Beisp. Bild im Document)
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Dim wrbName as string
On Error GoTo Err_In_cmdToExcel_Click
' Excel Object bilden und einblenden, neue Datei bilden
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
wrbName = "C:\Temp\datei1.xls"
Set xlBook = xlApp.Workbooks.open wrbName
Set xlSheet = xlBook.Worksheets("BestimteTabelle")
....
folgenden Code :
Dim ctl As Control
Dim intZeile As Integer
For Each ctl In Me.frmToExcel.Controls
If (VBA.TypeName(ctl) = "TextBox") Then
intZeile = intZeile + 1
xlSheet.Cells(intZeile, 1).Value = ctl.Text
ctl.Text = "" ' TextBoxen wieder ausleren
End If
Next ctl
z.B. so erseatzen :
xlSheet.Range("a1").value = me.txtBox1.value
xlSheet.Range("c5").value = me.txtBox2.value
xlSheet.Range("d1:e5").value = me.txtBox3.value
....
usw.
Ich gehe jetzt nach Hause, aber Morgen bin ich wieder bereit Dir zu helfen, falls Du es also brauchen solltest, schreib mir an DDMAIL@seznam.cz
Gruss Dan
Beiträge aus den Excel-Beispielen zum Thema "Userform aus Word"