Clever-Excel-Forum

Normale Version: Probleme mit bestehendem Code
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9
Hallo Liebe Excelfreunde,


ich habe in meiner Arbeitsmappe mit einem VBA-Code Probleme.
Eigentlich weiss ich gar nicht, in welchem Code ich schauen muss.

Bin kein Experte.....diesen Code habe ich auch nicht selbst geschrieben.

[attachment=2316]


Es geht in dieser Mappe um Bestllungen für Etiketten.
Diese kaufe ich ein, in Rollenlänge 500 und 1000

Die Artikelnummer des Lieferanten, wäre z.B.:
256110-124 hier ist die Rollenlänge 1000

Wir führen diesen Artikel mit der Erweiterung 256110-124-13/1000
hier ist die 1000 für uns die Angabe der Rollenlänge.

Wenn ich in meiner Mappe bestelle, muss ich natürlich die Artikelnummer des Lieferanten in meinem Bestellformular einmtragen lassen und dann die passende Rollenlänge dazu.

Die Bestellmaske ist so aufgebaut, das ich in den Combobox1 unsere Artikelnummer anwähle und in der Combobox2 die Artikelnummer vom Lieferanten angezeigt wird.
Der Artikel wird dann in der Maske in der Listbox1 übertragen, mit der passenden Rollenlänge.

Aber:

Bevor ich die Bestellung über den Button "Als PDF speichern", schaue ich mir erst mein Verkaufsformular an, sehe dort, das die Rollenlänge richtig eingetragen ist.
Schliesse dann die Bestellung ab und gehe dann zu meinem Bestllformular im Blatt "Einkauf_Etiketten"
Dort kann ich nach meine Bestellung über dem Button "Bestellung suchen und zurückschreiben", die Bestellung in das Formular zurück schreiben, oder auch alle andern Bestllungen, die ich getätigt habe.

Hier habe ich jetzt das Problem, das er die falsche Rollenlänge in das Formular unter Spalte E einträgt.

Bestellnummer: 1505166-RO-6

Ich habe schon selbst im code gesucht, woran es liegt, aber ich finde einfach nicht, wo die Rollenlänge gesucht und übertragen wird.

Ich hoffe hier von euch Hilfe zu bekommen.

Im Anhang meine Mappe.

Vielen Dank im Vorraus.

Grüße Mike
Hallo,

Match findet den 'ersten' Treffer deiner Artikelnummern, und da sich die nicht unterscheiden, kann es der falsche Satz sein.

Nachtrag: Und so

Code:
              x = Application.Match(.Cells(i, 6).Value, Sheets("A&K").Columns("B"), 0)

könnte es eventuell passen.
(22.06.2015, 12:03)Steffl schrieb: [ -> ]Hallo Steffl,

in welchem Code soll diese Zeile stehen?

Wieso unterscheiden sich nicht die Artikelnummern?

unser Lieferant hat diese Artikelnummer:   297110-82

Wir führen den Artikel so:   297110-82-13/1000

Beim bestellen wird im Blatt "Umsätze Lieferanten" in Spalte C die Artikelnummer des Lieferanten abgespeichert.
In Spalte D unsere....dieses macht er leider nicht.

im Blatt  "Einkauf", wird die Bestellung über dem Button "Bestellung suchen und zurückschreiben"  in das Bestellformular zurück geholt,
Doch dort hat er in Spalte E ab Zeile 7 die falsche Rollenlänge.

Grüße Mike








Hallo,

Match findet den 'ersten' Treffer deiner Artikelnummern, und da sich die nicht unterscheiden, kann es der falsche Satz sein.

Nachtrag: Und so


Code:
              x = Application.Match(.Cells(i, 6).Value, Sheets("A&K").Columns("B"), 0)

könnte es eventuell passen.
Hallo Mike,

ist relativ leicht zu finden.

(22.06.2015, 09:48)Mike4711 schrieb: [ -> ]Dort kann ich nach meine Bestellung über dem Button "Bestellung suchen und zurückschreiben", die Bestellung in das Formular zurück schreiben, oder auch alle andern Bestllungen, die ich getätigt habe.
hier geht eine Userform auf und im Click-Ereignis gehört meine gepostete Codezeile anstelle der bisherigen rein.
(22.06.2015, 13:47)Mike4711 schrieb: [ -> ]
(22.06.2015, 12:03)Hi,habe diese Zeile eingetragen, doch da meldet sich der Editor und markiert diese Zeile:.Cells(lngZ, 4) = wksL.Cells(x, 1).Value  \Art.-Nr-MicGeht also so nicht.  :(Grüße Mike Steffl schrieb: [ -> ]Hallo Steffl,

in welchem Code soll diese Zeile stehen?

Wieso unterscheiden sich nicht die Artikelnummern?

unser Lieferant hat diese Artikelnummer:   297110-82

Wir führen den Artikel so:   297110-82-13/1000

Beim bestellen wird im Blatt "Umsätze Lieferanten" in Spalte C die Artikelnummer des Lieferanten abgespeichert.
In Spalte D unsere....dieses macht er leider nicht.

im Blatt  "Einkauf", wird die Bestellung über dem Button "Bestellung suchen und zurückschreiben"  in das Bestellformular zurück geholt,
Doch dort hat er in Spalte E ab Zeile 7 die falsche Rollenlänge.

Grüße Mike








Hallo,

Match findet den 'ersten' Treffer deiner Artikelnummern, und da sich die nicht unterscheiden, kann es der falsche Satz sein.

Nachtrag: Und so



Code:
              x = Application.Match(.Cells(i, 6).Value, Sheets("A&K").Columns("B"), 0)

könnte es eventuell passen.
Habe diese Zeile eingefügt,

doch  VBA meldet einen Fehler und geht zur Zeile:

.Cells(lngZ, 4) = wksL.Cells(x, 1).Value  'Art.-Nr-Mic


Gruß Mike
Hallo Mike,

wo hast Du die Zeile eingefügt (Modul u. Prozedur)? Und wie lautet der Fehler?

Nachtrag: Und so

Code:
x = Application.Match(.Cells(i, 3).Value, Sheets("A&K").Columns("R"), 0)
 hat die Zeile gelautet, bevor ich sie geändert habe. Findest Du es jetzt?
Hallo Steffl,

in diesem Code:



Code:
Private Sub CommandButton2_Click()
  Dim lngZ As Long, lngL As Long, i As Long, x
  Dim wks As Worksheet, wksL As Worksheet
  Set wks = Sheets("Einkauf_Etiketten")
  If Me.ListBox1.ListCount > 0 Then
     Set wksL = Sheets("A&K")
     i = Me.ListBox1.ListCount - 1
     With wks
        lngL = .Cells(31, 1).End(xlUp).Row
        .Cells(1, 7) = Date
     End With
     With Sheets("Bestellübersicht")
        lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        .Range(.Cells(lngZ, 1), .Cells(lngZ + i, 1)) = wks.Cells(1, 3) 'Bestellnummer
        .Range(.Cells(lngZ, 2), .Cells(lngZ + i, 4)) = wks.Range(wks.Cells(10, 2), wks.Cells(lngL + i, 4)).Value  'Art.-Nr.; Bezeichnung; Menge
        .Range(.Cells(lngZ, 5), .Cells(lngZ + i, 5)) = wks.Cells(4, 3) 'Lieferant
        .Range(.Cells(lngZ, 6), .Cells(lngZ + i, 6)) = wks.Cells(1, 7) 'Datum
        .Range(.Cells(lngZ, 7), .Cells(lngZ + i, 7)) = wks.Cells(3, 3) 'Ref.-Name
        .Range(.Cells(lngZ, 10), .Cells(lngZ + i, 10)).Value = wks.Range(wks.Cells(10, 4), wks.Cells(lngL + i, 4)).Value
        .Range(.Cells(lngZ, 16), .Cells(lngZ + i, 16)).Value = wks.Range(wks.Cells(10, 4), wks.Cells(lngL + i, 4)).Value
        .Range(.Cells(lngZ, 13), .Cells(lngZ + i, 13)).FormulaLocal = "=A" & lngZ & "&" & """#""" & "&B" & lngZ & "&" & """#""" & "&Text(F" & lngZ & ";" & """" & "TT-MM-JJJJ" & """" & ")"   'ID"
        .Range(.Cells(lngZ, 13), .Cells(lngZ + i, 13)).Value = .Range(.Cells(lngZ, 13), .Cells(lngZ + i, 13)).Value
     End With
     Bestellübersicht_Sortieren
     
     With Sheets("Umsätze Lieferanten")
        lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        For i = 10 To lngL
           x = Application.Match(wks.Cells(i, 2).Value, wksL.Columns("R:R"), 0)
           .Cells(lngZ, 1) = wks.Cells(1, 3) 'Bestellnummer
           .Cells(lngZ, 2) = wks.Cells(1, 7) 'Datum
           .Cells(lngZ, 3) = wks.Cells(i, 2).Value    'Art.-Nr. Liefrant
           .Cells(lngZ, 4) = wksL.Cells(x, 1).Value  'Art.-Nr-Mic
           .Cells(lngZ, 5) = wks.Cells(4, 3) 'Lieferant
           .Cells(lngZ, 6) = wks.Cells(i, 3) 'Bezeichnung
           .Cells(lngZ, 7) = wksL.Cells(x, 14).Value   'Rollengröße
           .Cells(lngZ, 8) = wksL.Cells(x, 3).Value  'Währung
           .Cells(lngZ, 9) = wksL.Cells(x, 4).Value  'EK-Stück
           .Cells(lngZ, 10) = wksL.Cells(x, 6).Value  'Inhalt große Box
           .Cells(lngZ, 11) = wksL.Cells(x, 8).Value  'Box Preis groß
           .Cells(lngZ, 12) = wks.Cells(i, 4).Value  'Bestellmenge
           .Cells(lngZ, 13) = wks.Cells(i, 7).Value  'Bestellsumme
           .Cells(lngZ, 17) = wks.Cells(3, 3) 'Ref.-Name
           lngZ = lngZ + 1
        Next i
     End With
     UmsatzTabelle_Sortieren
     SpeichernAlsPDF2
     wks.Range("A10:G31").ClearContents
     boVar = True
     Me.TextBox1.Enabled = True
     Me.TextBox1 = ""
     Me.TextBox2 = ""
     Me.TextBox3 = ""
     Me.TextBox1.SetFocus
     For i = 1 To 3
        Me.Controls("ComboBox" & i).ListIndex = 0
     Next i
     Me.CommandButton2.Visible = False
     Me.CommandButton4.Visible = False
     boVar = False
     Me.Tag = 0
     ThisWorkbook.Save
  End If
End Sub

Als erstes meldet Excel "Typen unverträglichkeit"

Danach geht es zum VBA-Editor und er markiert in dem Code diese Zeile:

.Cells(lngZ, 4) = wksL.Cells(x, 1).Value  'Art.-Nr-Mic

Gruß Mike
Hallo,

wenn ich das richtig sehe, dann ist x im Makro als Variant deklariert.
Im Code wird das x aber dann als Integer-Wert oder Long-Wert gebraucht bzw. eingesetzt..
(22.06.2015, 14:49)Käpt schrieb: [ -> ]Hallo,

wenn ich das richtig sehe, dann ist x im Makro als Variant deklariert.
Im Code wird das x aber dann als Integer-Wert oder Long-Wert gebraucht bzw. eingesetzt..

Hallo,

was es mit dem X  auf sicht hat, kann ich dir leider nicht sagen.

Ich habe diesen Code nicht erstellt.  (Ist von Atilla)

Leider habe ich auch nicht genug oder sehr wenig Kenntnisse mit VBA.

Gruß Mike
Seiten: 1 2 3 4 5 6 7 8 9