TritoX Geschrieben 9. November 2006 Geschrieben 9. November 2006 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 Zitieren
Empfohlene Beiträge
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.