Wie mach ich es, das VBA in einer Word-Tabelle erkennt ob eine Zelle befüllt ist oder nicht?
Es geht um ein Bestellformular, in dem die die Ware durch einen Dropdown button bestimmt werden kann und die Menge in einem Textferld angegeben werden kann.
Nun soll nach der Eingabe der Preis, die Menge und der Warenname in einer vorher bestimmten Tabelle verzeichnet werden.
Die nächste Ware soll im nächsten Feld (drunter) angegeben sein!
Wie mach ichs das er mir nicht immer die 1.Zeile beschreibt und dann einfach überschreibt? Hoffe man versteht was ich eigentlich will
Hier mein Code:
Dim dateiauswahl
Dim xl As Object
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim wdRng As Word.Range
Dim ol As Object
Dim namen() As String
Dim Bereich As Object
Dim Einzel As Integer
Dim Menge As Integer
Dim i As Integer
Dim a As Integer
Private Sub CommandButton1_Click()
End Sub
Private Sub UserForm_Activate()
'Datei-Öffnen Dialog zur Auswahl der Excel Datei
'Set Dialog = CreateObject("MSComDlg.CommonDialog")
'On Error Resume Next
'With Dialog
' .Filter = "Excel (*.xls)|*.xls"
' .DialogTitel = "Datei öffnen"
' .MaxFileSize = 260
' .InitDir = "C:\"
' .ShowOpen
' If Err = 0 Then
' MsgBox "Ausgewälte Datei: " & .FileName
' End If
dateiauswahl = "C:\Berufschule\fuchs\\Berufschule\LehrerOrdner\Fuchs\2006-10-02\waren.xls"
' End With
' Combobox mit Inhalten aus Excel füllen
Set xl = CreateObject("excel.Application")
xl.workbooks.Open ("D:\Berufschule\Fuchs\VBA\2006-10-02\waren.xls")
ComboBox1.Clear
Set Bereich = xl.worksheets(1).[A1].CurrentRegion
For i = 2 To Bereich.Rows.Count
ComboBox1.AddItem xl.worksheets(1).Cells(i, 1).Value
Next
ComboBox1.Value = ComboBox1.List(0)
Set wdApp = CreateObject("word.Application")
End Sub
Private Sub ComboBox1_Change()
'Lagerbestand in Textfeld eintragen
a = ComboBox1.ListIndex + 2
TextBox1.Text = xl.worksheets(1).Cells(a, 2).Value
End Sub
Private Sub WareBuchen_Click()
' Benötigte Ware aus Lagerbestand ausbuchen und in Worddokument eintragen (Bezeichnung, Menge, Einzelpreis und Gesamtpreis)
a = ComboBox1.ListIndex + 2
TextBox1.Text = TextBox1.Text - TextBox2.Text
xl.worksheets(1).Cells(a, 2).Value = TextBox1.Text
If IsNull(ActiveDocument.Tables(1).Cell(2, 1).Range) Then
Set wdRng = ActiveDocument.Tables(1).Cell(2, 1).Range
'Menge schreiben
wdRng.Text = TextBox2.Text
'Bezeichnung schreiben
Set wdRng = ActiveDocument.Tables(1).Cell(2, 2).Range
wdRng.Text = ComboBox1.Text
'Einzelpreis schreiben
Set wdRng = ActiveDocument.Tables(1).Cell(2, 3).Range
wdRng.Text = xl.worksheets(1).Cells(a, 3).Value
'Einzelpreis schreiben
Set wdRng = ActiveDocument.Tables(1).Cell(2, 4).Range
Einzel = xl.worksheets(1).Cells(a, 3).Value
Menge = TextBox2.Text
wdRng.Text = Einzel * Menge
Else
If IsNull(ActiveDocument.Tables(1).Cell(3, 1).Range) Then
Set wdRng = ActiveDocument.Tables(1).Cell(3, 1).Range
'Menge schreiben
wdRng.Text = TextBox2.Text
'Bezeichnung schreiben
Set wdRng = ActiveDocument.Tables(1).Cell(3, 2).Range
wdRng.Text = ComboBox1.Text
'Einzelpreis schreiben
Set wdRng = ActiveDocument.Tables(1).Cell(3, 3).Range
wdRng.Text = xl.worksheets(1).Cells(a, 3).Value
'Einzelpreis schreiben
Set wdRng = ActiveDocument.Tables(1).Cell(3, 4).Range
Einzel = xl.worksheets(1).Cells(a, 3).Value
Menge = TextBox2.Text
wdRng.Text = Einzel * Menge
End If
End If
'Bezeichnung schreiben
'wdrng.
End Sub
Private Sub Rechnungssumme_Click()
'Rechnungsbetrag berechnen
End Sub
Private Sub Ende_Click()
xl.workbooks(1).Save
xl.Quit
Set xl = Nothing
End
End Sub
Private Sub UserForm_Terminate()
xl.workbooks(1).Save
xl.Quit
Set xl = Nothing
End Sub