Clever-Excel-Forum

Normale Version: Dringend Hilfe bei einem VBA-Code
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

hänge hier bei einem Code fest, der für einige sicherlich sehr einfach ist.

Dieser Code steckt in der Mappe, die ich hier beigefügt habe.
[attachment=1976]


Ich habe hier im Forum diesen für eine andere Maske bekommen und dachte mir, ich kann ihn etwas umbauen, für meine neue Maske.
Aber ich begreife dieses VBA immer noch nicht.

In meiner Mappe sind 2 Blätter aus meiner Ursprungmaske.

Im ersten rufe ich die Maske "Menge auf Palette" auf.
Mit dieser Maske möchte ich in der Combobox einen Artikel auswählen und nach dem auswählen sollen mir die TextBoxen gefüllt werden.
Wenn alles gefüllt und sichtbar ist, möchte ich auch die Möglichkeit haben, Eintragungen in den TextBoxen zu machen und diese dann im Blatt "Artikelmenge_Palette" auch abspeichern können.
Ich habe im Blatt  "Artikelmenge_Palette"  ein paar Einträge zur Ansicht gemacht. Ein paar Zellen sind nur leer.

Im Code für die Maske habe ich es bis jetzt noch nicht geschafft, mir überhaut schon einmal in der Combobox die Artikel anzeigen zu lassen. :(

Vielleicht kann mir jemand Schritt für Schritt erklären, wie ich das machen muss?

Grüße Mike
Hallo,

ich habe noch ein wenig ausprobiert.
Bekomme jetzt endlich die Combobox in der Maske gefüllt, bin mir aber nicht sicher, ob das alles so richtig ist, was ich dort zusammengestrickt habe. ;)

Vielleicht schaut sich jemand das an und kann mir sagen, ob ich den Code so lassen kann?

Das gute ist, das ich in der Combobox sogar die erste Zahl oder Buchstaben eingeben kann und er springt schon ziemlich nah dabei zum gewünschten Artikel.

Anbei noch einmal meine Mappe mit meinem Code-Versuch.
[attachment=1981]
Grüße an alle Interessierte.

Mike
Hallo Mike,

das sieht erst mal ok aus.
(24.04.2015, 17:54)schauan schrieb: [ -> ]Hallo Mike,

das sieht erst mal ok aus.

Hallo Schauan,

danke....da bin ich beruhigt.
Habe schon einiges ausprobiert und eben endlich mal etwas hinbekommen. :)

Jetzt muss ich nur noch die Listboxen gefüllt kriegen. ;)

Aber erst muss ich was einkaufen gehen.

Gruß Mike
Hallo Mike,

Code noch ziemlich fehlerbehafter aber teste mal

Code:
Private Sub ComboBox1_Change()
   Dim lngC As Long
  
   If ComboBox1.ListIndex = 0 Then Exit Sub
   lngC = ComboBox1.ListIndex + 1
   With Worksheets("Artikelmenge_Palette")
      TextBox1.Value = .Cells(lngC, 2).Value
      TextBox2.Value = .Cells(lngC, 3).Value
      TextBox3.Value = .Cells(lngC, 4).Value
      TextBox4.Value = .Cells(lngC, 5).Value
      TextBox5.Value = .Cells(lngC, 6).Value
   End With
End Sub

Private Sub CommandButton1_Click()
   Dim lngC As Long
  
   lngC = ComboBox1.ListIndex + 1
   With Worksheets("Artikelmenge_Palette")
      .Cells(lngC, 2).Value = TextBox1.Value
      If IsNumeric(TextBox2.Value) Then .Cells(lngC, 3).Value = CDbl(TextBox2.Value)
      If IsNumeric(TextBox3.Value) Then .Cells(lngC, 4).Value = CInt(TextBox3.Value)
      If IsNumeric(TextBox4.Value) Then .Cells(lngC, 5).Value = CDbl(TextBox4.Value)
      If IsNumeric(TextBox5.Value) Then .Cells(lngC, 6).Value = CDbl(TextBox5.Value)
   End With
End Sub
Artikelmenge_Palette
Hallo Steffl,

habe deinen Code eingefügt.
TextBoxen werden gefüllt doch abspeichern, da fehlt im Blatt "Artikelmenge_Palette" immer die Spalte E, das Palettenmaß.

Der erste Zeile von A2 bis F2 hat er vollständig gefüllt beim drücken in der Maske auf speichern,
alle neuen Zeilen, lässt er die Spalte E leer.

Habe mir deinen Code angesehen.
Diese Zeile fehlte bei dir, diese habe ich eingefügt, doch damit ging es auch nicht.

If IsNumeric(TextBox1.Value) Then .Cells(lngC, 2).Value = CDbl(TextBox1.Value)

Grüße Mike

Code:
Private Sub ComboBox1_Change()
  Dim lngC As Long
 
  If ComboBox1.ListIndex = 0 Then Exit Sub
  lngC = ComboBox1.ListIndex + 1
  With Worksheets("Artikelmenge_Palette")
     TextBox1.Value = .Cells(lngC, 2).Value
     TextBox2.Value = .Cells(lngC, 3).Value
     TextBox3.Value = .Cells(lngC, 4).Value
     TextBox4.Value = .Cells(lngC, 5).Value
     TextBox5.Value = .Cells(lngC, 6).Value
  End With
End Sub

Private Sub CommandButton1_Click()
  Dim lngC As Long
 
  lngC = ComboBox1.ListIndex + 1
  With Worksheets("Artikelmenge_Palette")
     .Cells(lngC, 2).Value = TextBox1.Value
     If IsNumeric(TextBox1.Value) Then .Cells(lngC, 2).Value = CDbl(TextBox1.Value)
     If IsNumeric(TextBox2.Value) Then .Cells(lngC, 3).Value = CDbl(TextBox2.Value)
     If IsNumeric(TextBox3.Value) Then .Cells(lngC, 4).Value = CInt(TextBox3.Value)
     If IsNumeric(TextBox4.Value) Then .Cells(lngC, 5).Value = CDbl(TextBox4.Value)
     If IsNumeric(TextBox5.Value) Then .Cells(lngC, 6).Value = CDbl(TextBox5.Value)
  End With
End Sub
Hallo Mike,

ich habe jetzt keine Zeit mehr, ich konnte aber nicht feststellen das die Spalte E nicht gefüllt wird. Deine Ergänzung kann nicht gehen, weil nach einem numerischen Wert geprüft wird und Text ist das eindeutig nicht.
Ok.

dann kann die Zeile ja wieder raus.

Aber ich habe es jetzt  20mal ausprobiert.....in Spalte E wird nichts übernmmen?

[attachment=1984]

Gruß Mike
Hallo Mike,

Arbeitsblatt mit dem Namen 'Artikelmenge_Palette'
 ABCDEF
1Artikel-Nr.Abmessungen Karton Länge - Breite - HöheGewicht KartonMenge auf PalettePalettenmaßGesamtgewicht in Kg
22804.103252 x 17 x 13cm1,21121,21 x 1,01 x 0,15cm34,50
32804.1032-140 x 40 x 60cm3,5045 200,00
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

da habe ich mich durch deine Beispieldatei vom Freitag verwirren lassen und gedacht in Spalte E kommen nur Zahlen vor. Falls beides gehen soll, kannst Du es mal so versuchen.

Code:
If IsNumeric(TextBox4.Value) Then .Cells(lngC, 5).Value = CDbl(TextBox4.Value) Else .Cells(lngC, 5).Value = TextBox4.Value
Hallo Stefan,


OK.....ich kann mich ja auch besser ausdrücken....das muss ich noch lernen. ;)
Ich probiere die Zeile aus, sobald ich zu Hause bin.

Wenn es gehen sollte, brauch e ich nur noch den Code, für den Neu-Button, da ich die Liste ja mit Artikeln auch mal erweitern möchte.

Grüße Mike
Seiten: 1 2