Probleme bei Datum

Also ich habe makros geschrieben die die Zeilen löschen die nicht den Inhalt meiner Combobox entsprechen. das funktioniert gut aber wenn ich das bei datum versuch klappt das nicht. mir is klar das das daran liegt das das Programm das Datum in der Combobox als Zahl erkennt und einfach alles löscht was anders ist als die Zahl. Deswegen wird immer meine komplette Liste gelöscht.

Schicke mir doch mal die Datei, dann kann ich mal nachgucken, worans liegt: [email protected]

Gruß Jürgen

Das kann ich so nicht beantworten:
Wo nimmt Deine Combobox die Auswahlmöglichkeiten her?
Ist Deine Spalte (besser deren Zellen) als Datum formatiert?
Hast Du bedacht, dass Datumswerte im Englischen (VBA!) anders geschrieben werden?
Wie wird der Vergleich zwischen Zelle und Combbox ausgeführt?

Versuch es doch mal vorher als Ausgabe in einer MsgBox, wo der aktuelle Zellwert und der Suchwert ausgegeben werden. Da sieht man oft schon den Fehler.

also hier mal der code
Private Sub CommandButton2_Click()
Worksheets(„Sheet3“).Select
Dim leere_Spalte As Integer
Application.ScreenUpdating = False
For leere_Spalte = 256 To 1 Step -1
If Application.CountA(Columns(leere_Spalte)) = 0 Then
Columns(leere_Spalte).Delete
End If
Next

Dim i As Integer
Dim Wiederholungen As Integer
If ComboBox1 = „Produkt“ Then GoTo weiter
For Wiederholungen = 2 To Sheets(„Sheet3“).Range(„A65536“).End(xlUp).Row
'LetzteZeile = Sheets(„Sheet3“).Cells(Cells.Rows.Count, 2).End(xlUp).Row
For i = 2 To Wiederholungen
With Sheets(„Sheet3“)
If .Cells(i, 1).Value ComboBox1 Then .Rows(i & „:“ & i).Delete Shift:=xlUp
End With
Next
Next

weiter:

If ComboBox2 = „Produktbezeichnung“ Then GoTo Weiter2
For Wiederholungen = 2 To Sheets(„Sheet3“).Range(„A65536“).End(xlUp).Row
'LetzteZeile = Sheets(„Sheet3“).Cells(Cells.Rows.Count, 2).End(xlUp).Row
For i = 2 To Wiederholungen
With Sheets(„Sheet3“)
If .Cells(i, 2).Value ComboBox2 Then .Rows(i & „:“ & i).Delete Shift:=xlUp
End With

Next
Next
Weiter2:

If ComboBox3 = „Datum“ Then GoTo Ende
For Wiederholungen = 2 To Sheets(„Sheet3“).Range(„A65536“).End(xlUp).Row
'LetzteZeile = Sheets(„Sheet3“).Cells(Cells.Rows.Count, 2).End(xlUp).Row
For i = 2 To Wiederholungen
With Sheets(„Sheet3“)
If .Cells(i, 3).Value ComboBox3 Then .Rows(i & „:“ & i).Delete Shift:=xlUp
End With

Next
Next

Ende:
If ComboBox4 = „Durchmesser“ Then GoTo Ende2
For Wiederholungen = 2 To Sheets(„Sheet3“).Range(„A65536“).End(xlUp).Row
'LetzteZeile = Sheets(„Sheet3“).Cells(Cells.Rows.Count, 2).End(xlUp).Row
For i = 2 To Wiederholungen
With Sheets(„Sheet3“)
If .Cells(i, 4).Value ComboBox4 Then .Rows(i & „:“ & i).Delete Shift:=xlUp
End With

Next
Next

Ende2:
'UserForm schließen
Unload Me
End Sub

des funktioniert bei den ersten drei und bei den letzten,ich weiß ist nicht grad elegant aber es funktioniert

und so hab ich das eingelesen in die combobox
Private Sub UserForm_Initialize()
'Variable deklarieren
Dim Wiederholungen As Integer
'Schleife zum Füllen der ComboBox mit den Daten aus Blatt „Sheet2“
'Spalte A ab Zeile 2 bis zur letzten gefüllten Zeile
For Wiederholungen = 1 To Sheets(„Sheet2“).Range(„A65536“).End(xlUp).Row
ComboBox1.AddItem Sheets(„Sheet2“).Cells(Wiederholungen, 1)
Next

Call Fuellen
'Laden des Startwertes
ComboBox2.AddItem „Produktbezeichnung“
ComboBox2.ListIndex = ComboBox2.ListCount - 1

For Wiederholungen = 1 To Sheets(„Sheet1“).Range(„A65536“).End(xlUp).Row
ComboBox3.AddItem Sheets(„Sheet1“).Cells(Wiederholungen, 3)
ComboBox3.ListIndex = 0

Next
For Wiederholungen = 1 To Sheets(„Sheet1“).Range(„A65536“).End(xlUp).Row
ComboBox4.AddItem Sheets(„Sheet1“).Cells(Wiederholungen, 4)
ComboBox4.ListIndex = 0

Next

End Sub
Sub Fuellen()
Dim dic As Object
Dim xKey As Variant
Dim iRow As Long, ALetzte As Long
ComboBox2.Clear
ALetzte = IIf(IsEmpty(Range(„A65536“)), Range(„A65536“).End(xlUp).Row, 65536)
Set dic = CreateObject(„scripting.dictionary“)
For iRow = 2 To ALetzte
If Not IsEmpty(Cells(iRow, 2)) Then
xKey = Cells(iRow, 2).Value
dic(xKey) = 0
End If
Next
For Each xKey In dic
ComboBox2.AddItem xKey
Next
dic.RemoveAll
Set dic = Nothing
Call Sortieren1
ComboBox1.ListIndex = 0
End Sub

Sub Sortieren1()
Dim Letzter As Integer, Naechster As Integer
Dim i As String
With ComboBox2
For Letzter = 0 To .ListCount - 1
For Naechster = Letzter + 1 To .ListCount - 1
If .List(Letzter) > .List(Naechster) Then
i = .List(Letzter)
.List(Letzter) = .List(Naechster)
.List(Naechster) = i
End If
Next Naechster
Next Letzter
End With
End Sub
das läuft prima

ich mein es funktioniert bei den ersten zwei und bei der vierten nicht bei den ersten drei, sorry, und vielen vielen dank für die mühe
Gruß Jonas

Also: solch sch…önen Spagetti-Code habe ich lange nicht mehr sehen, den kann man kaum verstehen.
Man arbeitet nicht mit GoTo (vielleichtls absolute Ausnahme noch On Error GoTo).
Wenn man mehrere Argumente schachteln will, benutzt man Select Case - Case - Case- -…- Case Else - End Select
Dim gehören immer alle nach dem Sub und dem Kommentar an den Anfang
If ohne End If ist unzulässig

Zum Teil liest Du aus der Tabelle ein, zum Anderen mit Direktzuweisung („Produktbezeichnung“)

Dann noch Bubble-Sort statt die Werte in eine eigene Tabelle zu schreiben und dort über Daten Sortieren (kann man mit dem Makrorkorder aufzeichnen!) zu sortieren.

Und dann das ganze nicht als Code sondern als Text hier eingestellt, nicht gegliedert (hinter For wird bis Next eingerückt, gilt auch für If, With, Loop…eben alle Schleifen) und schon passe ich.
Hier kann und will ich nicht helfen. Ich empfehle einen Pogrammierkurs!

Hallo,
Du solltest versuchen beide seiten in einem format zu bringen und dann erst den vergleich starten. In der combobox wird wohl ehr alles als text gesehen und solltest du dort ein Datum haben, so musst du den string zerlegen und in ein Datumsformat bringen. Danach kannst du das Datum mit deiner Zelle vergleichen.
Sollte der Tipp nicht reichen, dann sende mal ein Beispiel mit den gewünschtem Ziel und i schaue mal drüber.
[email protected]

Also ich bin ja mal nicht so, hie ein paar Code-Schnipsel zum Probieren:
zu erst für die Userform und die Combobox

Private Sub UserForm\_Activate()
Dim MyRange As String
 MyRange = "Tabelle10!A1:" & Sheets("Tabelle10").UsedRange. \_
 SpecialCells(xlLastCell).Address
 ComboBox1.RowSource = MyRange
End Sub

Private Sub ComboBox1\_Change()
Dim Zahl\_Wahl As Double
Dim Date\_Wahl As Date
 Zahl\_Wahl = ComboBox1.Value
 MsgBox Zahl\_Wahl
 'umwandeln in Datum
 Date\_Wahl = CDate(Zahl\_Wahl)
 MsgBox Date\_Wahl
End Sub

und nu noch das Sortieren:

Sub Sortieren()
Dim MyRange As String
 MyRange = "Tabelle10!A1:" & Sheets("Tabelle10").UsedRange. \_
 SpecialCells(xlLastCell).Address
 Range(MyRange).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, \_
 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Viel Vergnügen.

Sorry für meine späte Antwort.

Leider habe ich derzeit keinen Zugriff auf eine Microsoft Office Version mehr. Daher kann ich keine Unterstützung mehr bieten.