ich kenne mich mit vba nicht wirklich aus und habe folgendes problem:
Ich möchte eine sortierung starten, wenn eine bestimmte zeichenfolge in der Spalte D vorkommt.
ich dachte da an if…then…else. bekomme das nur mit der abfrage nicht hin. wie genau vergleiche ich eine ganze spalte mit einer variable?
mfg
eine komplette Lösung kann ich dir spontan leider nicht bieten (so tief ist mein Wissen nicht verankert ).
Allerdings würde ich versuchen die Spalte über den Loop-Befehl durchlaufen zu lassen. Jede Zelle sollte dann nicht der Variablen abgeglichen werden
-stimmen die Inhalte nicht überein: darunterliegende Zelle auswählen und wieder abgleichen
-stimmt der Zellinhalt mit der Variable überein: Schleife abbrechen und Sortierung ausführen.
ich habe Dein Problem nicht bis zum Ende verstanden: Du willst den Inhalt der Spalte D sortieren, aber was hat das mit der „bestimmten Zeichenfolge“ zu tun? In welchem Feld steht die „Zeichenfolge“? Oder meinst Du mit „Sortierung“ nur das Suchen nach bestimmten Feldern mit der „bestimmten Zeichenfolge“.?
Mit der folgenden Routine geht ein Fenster auf, wenn der Suchbegriff „Sort“ in der Spalte D auftaucht.
Jedesmal, wenn auf dem Worksheet das Feld gewechselt wird, wird die Spalte D durchsucht.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Worksheets(1).Range(„d:d“)
Set c = .Find(„Sort“, LookIn:=xlValues)
If Not c Is Nothing Then
MsgBox („Sortierung aufrufen“)
End If
End With
End Sub
habe dir mal was zusammengestellt. Hoffe, das hilft dir weiter. Du kannst nicht eine ganze Spalte vergleichen, sondern halt Zelle für Zelle. Wie lange du vergleichst, kannst du einstellen.
'Variablen-Deklaration
Dim anzahl As Integer
anzahl = 10
'Startpunkt wählen
Range(„D1“).Select
'Zellen der Reihe nach durchgehen
For i = 0 To anzahl Step 1
If (ActiveCell.Offset(i, 0).Range(„A1“).FormulaR1C1 = Range(„A1“).FormulaR1C1) Then
'Sortierung starten
xxx
'Suche abbrechen
Exit For
Else
'tu irgendwas anderes
End If
Next i