mario1966
Goto Top

Ausgabe in Textboxen

Mario Böttner Stralsund
Hallo, ich versuche mit der Eingabe "Benutzer-Datum-Artikel-Lieferant eine EAN-Nummer zu erzeugen( 2 010621 11 18 ), welche in einem Strichcode-Programm gewandelt werden kann und ausgedruckt wird. Die Eingaben funktionieren, nur die Ausgaben der Textboxen 2,6,8 nicht. Hier wird angezeigt: die VLookup-Eigenschaft des WorksheetFunktions-Objektes kann nicht zugeordnet werden. Des Weiteren finde ich keine Funktion für eine Verkettung der Textboxen 2,4,6,8, welche in der Textbx 10 geschrieben werden soll, um sie dann in Tabelle 1 zu übertragen.


'Füge die Benutzer in die Combobox 1 (aus Tabelle Benutzer Spalte B)  
'Füge die Artikel in die Combobox 2  (aus Tabelle Artikel Spalte B)  
'Füge die Lieferanten in die Combobox 3 (aus Tabelle Lieferant Spalte B)  

Dim xRg As Range

Private Sub UserForm_Initialize()
    Set xRg = Worksheets("Benutzer").Range("B1:C3")  
    Me.Box1.List = xRg.Columns(1).Value
    
Set xRg = Worksheets("Artikel").Range("B1:C72")  
    Me.Box2.List = xRg.Columns(1).Value

Set xRg = Worksheets("Lieferant").Range("B1:C9")  
    Me.Box3.List = xRg.Columns(1).Value

'Füge in die Textbox 3 das Datum ein und entferne in der Textbox 4 die Datumspunkte  

UserFormDruck.TextBox3.Value = Date
UserFormDruck.TextBox4.Value = Date
TextBox4 = Format(TextBox4, "DDMMYY")  

End Sub


'Jeder Benutzer hat eine Benutzernummer,diese wird in Textbox 2 ausgegeben (aus Tabelle Benutzer Spalte C)  
'Jeder Artikel hat eine Artikelnummer,diese wird in Textbox 6 ausgegeben (aus Tabelle Artikel Spalte C)  
'Jeder Lieferant hat eine Lieferantennummernummer,diese wird in Textbox 8 ausgegeben (aus Tabelle Lieferant Spalte C)  
     
     Private Sub Box1_Change()
     Me.TextBox2.Text = Application.WorksheetFunction.VLookup(Me.Box1.Value, xRg, 2, False)
     End Sub
     
     Private Sub Box2_Change()
     Me.TextBox6.Text = Application.WorksheetFunction.VLookup(Me.Box2.Value, xRg, 2, False)
     End Sub
    
     Private Sub Box3_Change()
     Me.TextBox8.Text = Application.WorksheetFunction.VLookup(Me.Box3.Value, xRg, 2, False)
     End Sub

 'Ausdrucken mit der Anzahl aus Textbox 9  

Private Sub CommandButton1_Click()
 
 Dim Anzahl As Integer
Anzahl = CInt(TextBox9.Value)
 Sheets("Tabelle2").Select  
 Sheets("Tabelle2").PrintOut Copies:=Anzahl  
End Sub

'Vor dem Druck anschauen  

Private Sub CommandButton2_Click()
Me.Hide
Sheets("Tabelle2").Select  
Sheets("Tabelle2").PrintPreview  
End Sub
javascript:void(0);
2021-06-01

Content-Key: 667228

Url: https://administrator.de/contentid/667228

Printed on: April 25, 2024 at 16:04 o'clock

Mitglied: 148121
148121 Jun 01, 2021 updated at 13:22:28 (UTC)
Goto Top
Moinsens Mario.
So liest sich das definitiv besser face-smile.
die VLookup-Eigenschaft des WorksheetFunktions-Objektes kann nicht zugeordnet werden.
Das ist der Fall wenn die Funktion keine entspprechende Zeile zu dem Suchbegriff gefunden hat, das kannst du umgehen indem du ein On Error Resume Next in den Subs hinzufügst
Bsp.
Private Sub Box1_Change()
     On Error Resume Next
     dim result as Variant
     result = Application.WorksheetFunction.VLookup(Me.Box1.Value, xRg, 2, False)
     Me.TextBox2.Text = result
End Sub
Des Weiteren finde ich keine Funktion für eine Verkettung der Textboxen 2,4,6,8, welche in der Textbx 10 geschrieben werden soll, um sie dann in Tabelle 1 zu übertragen.
Dafür brauchst du keine "Funktion", das ist eine ganz einfache String-Verkettung face-smile
dim strNew as String
strNew = Textbox1.Text & Textbox2.Text & Textbox2.Text
https://stackoverflow.com/questions/1727699/how-can-i-concatenate-string ...

Gruß w.
Member: Mario1966
Mario1966 Jun 01, 2021 at 19:33:19 (UTC)
Goto Top
Klappt leider nur für die 3. Combobox also die 8. Textbox,
noch nicht für die Combobox1-(Textbox2) und
noch nicht für die Combobox2-(Textbox6)
Solltest du den Fehler sehen bitte wieder erklären. Will ja nicht nur blind abtippen, sondern auch verstehen.


'Füge die Benutzer in die Combobox 1 (aus Tabelle Benutzer Spalte B)  
'Füge die Artikel in die Combobox 2  (aus Tabelle Artikel Spalte B)  
'Füge die Lieferanten in die Combobox 3 (aus Tabelle Lieferant Spalte B)  

Dim xRg As Range









Private Sub UserForm_Initialize()
    Set xRg = Worksheets("Benutzer").Range("B1:C3")  
    Me.Box1.List = xRg.Columns(1).Value
    
Set xRg = Worksheets("Artikel").Range("B1:C72")  
    Me.Box2.List = xRg.Columns(1).Value

Set xRg = Worksheets("Lieferant").Range("B1:C9")  
    Me.Box3.List = xRg.Columns(1).Value

'Füge in die Textbox 3 das Datum ein und entferne in der Textbox 4 die Datumspunkte  

UserFormDruck.TextBox3.Value = Date
UserFormDruck.TextBox4.Value = Date
TextBox4 = Format(TextBox4, "DDMMYY")  

End Sub


'Jeder Benutzer hat eine Benutzernummer,diese wird in Textbox 2 ausgegeben (aus Tabelle Benutzer Spalte C)  
'Jeder Artikel hat eine Artikelnummer,diese wird in Textbox 6 ausgegeben (aus Tabelle Artikel Spalte C)  
'Jeder Lieferant hat eine Lieferantennummernummer,diese wird in Textbox 8 ausgegeben (aus Tabelle Lieferant Spalte C)  
     
    Private Sub Box1_Change()
     On Error Resume Next
     Dim result As Variant
     result = Application.WorksheetFunction.VLookup(Me.Box1.Value, xRg, 2, False)
     Me.TextBox2.Text = result
End Sub
    Private Sub Box2_Change()
     On Error Resume Next
     Dim result As Variant
     result = Application.WorksheetFunction.VLookup(Me.Box2.Value, xRg, 2, False)
     Me.TextBox6.Text = result
End Sub
    Private Sub Box3_Change()
     On Error Resume Next
     Dim result As Variant
     result = Application.WorksheetFunction.VLookup(Me.Box3.Value, xRg, 2, False)
     Me.TextBox8.Text = result
End Sub

 'Ausdrucken mit der Anzahl aus Textbox 9  

Private Sub CommandButton1_Click()
 
 Dim Anzahl As Integer
Anzahl = CInt(TextBox9.Value)
 Sheets("Tabelle2").Select  
 Sheets("Tabelle2").PrintOut Copies:=Anzahl  
End Sub

'Vor dem Druck anschauen  

Private Sub CommandButton2_Click()
Me.Hide
Sheets("Tabelle2").Select  
Sheets("Tabelle2").PrintPreview  
End Sub
2021-06-01 (1)
Mitglied: 148121
Solution 148121 Jun 01, 2021 updated at 20:18:49 (UTC)
Goto Top
Ist ja auch logisch warum. Guck dir einfach mal diesen Abschnitt an
Set xRg = Worksheets("Benutzer").Range("B1:C3")  
    Me.Box1.List = xRg.Columns(1).Value
    
Set xRg = Worksheets("Artikel").Range("B1:C72")  
    Me.Box2.List = xRg.Columns(1).Value

Set xRg = Worksheets("Lieferant").Range("B1:C9")  
    Me.Box3.List = xRg.Columns(1).Value
Du definierst drei mal ein und die selbe Variable xRG, und als letztes definierst du den Range für die dritte Combobox, also findet er auch nur dort etwas ... weil du eben bei den anderen Boxen etwas in diesem Range suchst was es dort nicht gibt 😜.
Ergo definiere jeden Range für sich in einer separaten Variablen und gib diese im jeweiligen vLookup Aufruf richtig an.
Da war wohl jemand Betriebsblind ... Kaffee rüber schieb ...
Member: Mario1966
Mario1966 Jun 03, 2021 at 18:16:05 (UTC)
Goto Top
Vielen Dank für deine Hilfe. Es hat geklappt. Deine Erklärung war super.