Vba spalten mit variable abgleichen

hallo,

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

gerd

Hallo Gerd,

eine komplette Lösung kann ich dir spontan leider nicht bieten (so tief ist mein Wissen nicht verankert :smile: ).
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.

Hoffe ich konnte dir wenigstens etwas helfen.

Grüße,
Karsten

Hallo Gerd,

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“.?

Viele Grüße

Anka

Hi,

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

Hoffe damit geholfen zu haben.

Grüße
Micha

Für Sort kann natürlich auch eine Variable genutzt werden.

Für Sort kann natürlich auch eine Variable genutzt werden.

danke für die schnelle hilfe, werds nachher mal ausprobieren.

Hallo Gerd,

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

Gruß
Philipp