Ich habe ein kleines Problem mit meinem Code, es funktioniert, wie ich will, als ich es gerade prüfte, aber als ich es in die wirkliche Arbeit stellte, stellte ich ein Problem, dass ich konnte t lösen hier ist das ProblemCode VBA stoppt Zelle im ersten Raum
der Code 2 Spalten zu anderen 2 Spalten vergleichen und das Ergebnis in anderen 3 Spalten das Problem ist, dass, wenn er die Daten aus der Zelle kopiert er stoppt, wenn es ein Leerzeichen zwischen den Zeichen so ist Kopiere nur die ersten Wörter zum Beispiel wenn ich '' Air Approval immer benötigt '' er kopiert nur '' Air '' aber nicht die Lochkette können Sie mir bitte helfen, dieses Problem zu lösen und danke im Voraus
Sub comparer()
Dim Derlig As Long, Lig As Long, Ref As String
Dim T_ab, D_ab As Object, T_cd, D_cd As Object
Dim T_fgh, Cptr As Long, Separ
Dim start As Single
start = Timer
Application.ScreenUpdating = False
Range("E2:G30000").Clear
Set D_ab = CreateObject("scripting.dictionary")
Derlig = Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
T_ab = Range("A2:B" & Derlig)
For Lig = 1 To UBound(T_ab)
Ref = T_ab(Lig, 1) & " " & T_ab(Lig, 2)
If Not D_ab.exists(Ref) Then D_ab.Add Ref, ""
Next
T_ab = D_ab.keys
Set D_cd = CreateObject("scripting.dictionary")
Derlig = Columns("C").Find(what:="*", searchdirection:=xlPrevious).Row
T_cd = Range("C2:D" & Derlig)
For Lig = 1 To UBound(T_cd)
Ref = T_cd(Lig, 1) & " " & T_cd(Lig, 2)
If Not D_cd.exists(Ref) Then D_cd.Add Ref, ""
Next
T_cd = D_cd.keys
ReDim T_fgh(3, 0)
For Lig = 0 To UBound(T_ab)
If Not D_cd.exists(T_ab(Lig)) Then
Separ = Split(T_ab(Lig))
ReDim Preserve T_fgh(3, Cptr)
T_fgh(0, Cptr) = Separ(0)
T_fgh(1, Cptr) = Separ(1)
Cptr = Cptr + 1
End If
Next
For Lig = 0 To UBound(T_cd)
If Not D_ab.exists(T_cd(Lig)) Then
Separ = Split(T_cd(Lig))
ReDim Preserve T_fgh(3, Cptr)
T_fgh(0, Cptr) = Separ(0)
T_fgh(2, Cptr) = Separ(1)
Cptr = Cptr + 1
End If
Next
Range("F2").Resize(Cptr, 3) = Application.Transpose(T_fgh)
Derlig = Range("E2:H100000").Find(what:="*", searchdirection:=xlPrevious).Row
Range("F2:H" & Derlig).Borders.Weight = xlThin
Application.ScreenUpdating = True
MsgBox "comparaison efffectuée en " & Timer - start & " secondes"
End Sub
ich würde beginnen durch ** dim ** ensioning Ihre Variablen richtig und geben ihnen verständliche Namen. Im Moment arbeiten Sie mit Varianten und es ist extrem umständlich zu lesen. –
Hallo Danke für die Antwort, aber ich verstehe nicht, was meinst du? – mateos
'Dim T_ab, D_ab Als Objekt'