Warum meckert VBA hier?
07.11.2018 11:16:01
Robert
Ich habe, mit Hilfe diesen Forums, einen Code zum Ausfüllen eines Protokolles erstellt. Nun bin ich momentan dabei den Code anzupassen und Excel meckert immer in einer Zeile "Fehler beim Kompilieren: Variable nicht definiert". Nach langer Suche komme ich aber bisher immer noch nicht auf den Fehler, deshalb wende ich mich nochmal an euch. Allgemeines Ziel des Codes ist, dass nach einem Klick auf einen CommandButoon entsprechende Werte aus einem Daten-Sheet rausgesucht werden und in die enstprechenden Zeilen des des Protokoll-Sheets geschrieben werden. Ich habe dabei label.Caption als Variabele verwendet, da dies ein Wert ist, der über eine Drop-Down-Auswahlliste ausgewählt wird und anschließend ein Suchkriterium darstellt.
Code:
Private Sub CommandButton2_Click()
Dim i As Byte, rngD As Range, intZeile As Integer, intTakt As Integer
With Sheets("Auswahl")
.Label1.Caption = Sheets("Auswahl").Range("C2").Value
.Label2.Caption = Sheets("Auswahl").Range("F2").Value
.Label3.Caption = Sheets("Auswahl").Range("E2").Value
.Label4.Caption = Sheets("Auswahl").Range("G2").Value
.Label5.Caption = Sheets("Auswahl").Range("H2").Value
End With
With Sheets("Daten").Range("C2:C" & Sheets("Daten").Cells(Rows.Count, 3).End(xlUp).Row)
Set rngD = .Find(what:=CDbl(Label1.Caption), Lookat:=xlWhole, LookIn:=xlValues)
If Not rngD Is Nothing Then
intZeile = rngD.Row
Else
MsgBox "Durchmesser " & Label1.Caption & " konnte bei Daten nicht gefunden werden!", vbInformation, "Meldung"
Exit Sub
End If
End With
For i = 2 To 8
intTakt = intZeile + i + 1
With Sheets("Protokoll")
.Range("A8").Value = Sheets("Daten").Cells(intTakt, 14).Value & "; Takt " & i - 2 & "; Bohrerdurchmesser " & Label1.Caption & "/" & Label3.Caption & " mit " & Label2.Caption
If Label2.Caption = "TE70 (3)" Then
.Range("C19").Value = Sheets("Daten").Cells(intTakt, 7).Value
.Range("D15").Value = Sheets("Daten").Cells(intTakt, 15).Value
.Range("C65").Value = Sheets("Daten").Cells(intTakt, 18).Value
Else
.Range("C19").Value = Sheets("Daten").Cells(intTakt, 8).Value
.Range("D15").Value = Sheets("Daten").Cells(intTakt, 15).Value
.Range("C65").Value = Sheets("Daten").Cells(intTakt, 18).Value
End If
.Range("A27").Value = Label5.Caption
.Range("H19").Value = Label1.Caption & "/" & Label3.Caption
.Range("H18").Value = Label2.Caption & " " & Label4.Caption
.Range("H11").Value = Label2.Caption & " " & Label4.Caption
.Range("D21").Value = Sheets("Daten").Cells(intTakt, 20).Value
.Range("C11").Value = Sheets("Daten").Cells(intTakt, 14).Value
.Range("C13").Value = Sheets("Daten").Cells(intTakt, 3).Value
.Range("B15").Value = Sheets("Daten").Cells(intTakt, 4).Value
.Range("H16").Value = Sheets("Daten").Cells(intTakt, 17).Value
End With
Exit For
End If
Next i
MsgBox "Protokoll wurde ausgefüllt!", vbInformation, "Meldung"
Unload Me
An der fetten Stelle ist das Problem...
Danke schonmal im vorraus,
Robert