Du hast da nicht einen Fehler drin, sondern viele:
-
ALLE Variablen sind mit falschem Datentyp deklariert. Variant braucht man nie bis extrem selten und Integer gibts in VBA eigentlich gar nicht. Das wird intern als Long verwaltet. Bei Dir reicht aber Byte für die Schleifen
-
Die Einrückungen im Code, die Du sicher schon woanders gesehen hast, hat einen Sinn. Man kann nämlich direkt sehen welcher Codeblock in welchen geschachtelt ist. Nutze das unbedingt
-
Option Explicit hat Marco schon genannt. Das sollte unbedingt IMMER die erste Zeile in jedem Deiner Code Module sein
Den folgenden Code habe ich nur etwas sortiert und richtig eingerückt. Nutze bitte die Möglichkeit Code in so einem Forum richtig über die entsprechende Funktionalität darzustellen. In diesem klickst Du dafür oben im Eingabetext für den Beitrag die beiden roten Klammern {} mit dem Wörtchen Code darunter.:
Option Explicit
Sub selbstcopy3()
Dim u As Integer
Dim i As Integer
Dim numr As Variant
Dim artikelnr As Variant
Dim hoehe As Variant
Dim Besch As Variant
Dim besch2 As Variant
Dim zartikelnr As Variant
Dim zhoehe As Variant
Dim anzahl As Variant
Dim breite As Long
Dim laenge As Long
Besch = Workbooks("woodworks.xlsm").Worksheets("Datenbank").Range("A1").Value
besch2 = Workbooks("woodworks.xlsm").Worksheets("Datenbank").Range("A2").Value
breite = Workbooks("woodworks.xlsm").Worksheets("Datenbank").Range("A3").Value
zhoehe = Workbooks("woodworks.xlsm").Worksheets("Datenbank").Range("A4").Value
laenge = Workbooks("woodworks.xlsm").Worksheets("Datenbank").Range("A5").Value
zartikelnr = Workbooks("woodworks.xlsm").Worksheets("Datenbank").Range("A6").Value
anzahl = Workbooks("woodworks.xlsm").Worksheets("Datenbank").Range("A8").Value
artikelnr = Workbooks("woodworks.xlsm").Worksheets("Einstellungen").Range("B15").Value
hoehe = Workbooks("woodworks.xlsm").Worksheets("Einstellungen").Range("B16").Value
For i = 3 To 15
For u = 2 To 14
If Worksheets("Eingabe NAV").Cells(i, zartikelnr) = "0201-SK" Then
If Cells(i, zhoehe) = hoehe Then
'länge
Worksheets("Eingabe NAV").Cells(i, laenge).Copy Destination:=Worksheets("Teile").Cells(u, 1)
'breite
Worksheets("Eingabe NAV").Cells(i, breite).Copy Destination:=Worksheets("Teile").Cells(u, 2)
'ActiveSheet.Paste
Worksheets("Eingabe NAV").Cells(i, anzahl).Copy Destination:=Worksheets("Teile").Cells(u, 3)
'ActiveSheet.Paste
'beschreibung
Worksheets("Eingabe NAV").Cells(i, Besch).Copy Destination:=Worksheets("Teile").Cells(u, 9)
Sheets("Teile").Select
End If
End If
Next u
Next i
End Sub
|