Excel: Inhalte verbundener Zellen finden?

Hallo,

folgende Situation:

Ich suche über eine Funktion diejenige Spaltennummer, welche durch einen bestimmten Begriff gekennzeichnet ist.

Der Befehl, den ich nutze sieht hierbei so aus:

On Error Resume Next
Spaltennr = 0
Spaltennr = Application.Workbooks(Book).Sheets(Sheet).Rows(1).Find \_
 (What:=Spaltenname, LookAt:=xlWhole).Column

Leider kriege ich immer 0, wenn ich mit verbundenen Zellen hantieren muss, d.h. Zeilen 1 und 2 der Spalte verbunden sind.

Wie kann ich das Problem lösen? (Zellen trennen oder fordern, dass sie es vorher schon sind, ist keine Option!)

Danke und Gruss,
Michael

Hallo Michael,

Leider kriege ich immer 0, wenn ich mit verbundenen Zellen
hantieren muss, d.h. Zeilen 1 und 2 der Spalte verbunden sind.

geschieht dir Recht :smile:), nur in größter Not würde ich Zellen verbinden. Okay, du bist nicht ich und vielleicht wurde dir die mappe so aufgezwungen, oder, oder,…
Sicher, sieht chic und praktisch aus, macht aber nur Ärcher :frowning:
Sortiere mal die Mistdinger…

Bastle mal eine kleine Beispielmappe, dann FAQ:2606

Gruß
Reinhard

Hallöchen zurück,

geschieht dir Recht :smile:)

Gemeinheit! Was kann ich für die Arbeit Anderer?

Okay, du bist nicht ich und vielleicht wurde dir die mappe so aufgezwungen, oder, oder,…

Sozusagen, es geht um gelieferte Spec-Dokumentationen, die von Nicht-IT’lern gebastelt werden. Die Arbeit mit Makros ist aber zumindest schon mal einfacher, als alles händisch in brauchbare formate zu konvertieren…
Sortiere mal die Mistdinger…

Sortiere mal die Mistdinger…

Wie sortieren? Kann ich nicht, darf ich nicht. Original soll unverändert bleiben.

Bastle mal eine kleine Beispielmappe, dann FAQ:2606

Hier wäre ein Beispiel rein in VBA zum Selbstimport:

Sub BeispielBasteln()
 Range("A1").Value = "Test"
 Range("A1:A2").Merge
End Sub

Ausführen und Du hast einen Datensatz, der genau meinem Problem entspricht.

Dann noch dieses Makro:

Sub FindeTest()
 Dim X As Variant
 On Error Resume Next
 With ActiveSheet.UsedRange
 Set X = .Find("Test", LookAt:=xlWhole, LookIn:=xlValues)
 End With
 MsgBox X.Address
End Sub

… man sollte erwarten, dass da was zurückkommt, tut aber nicht.

Hallo Michael,

geschieht dir Recht :smile:)
Gemeinheit! Was kann ich für die Arbeit Anderer?

Piano, ich hab doch nur auf verbundene Zellen reagiert nicht auf dich persönlich :smile:

Probiers mal so:

Sub FindeTest()
Dim Zelle As Range
For Each Zelle In ActiveSheet.UsedRange
 If InStr(Zelle, "Test") \> 0 Then MsgBox Zelle.Address
Next Zelle
End Sub

Gruß
Reinhard

Hallöchen,

Piano, ich hab doch nur auf verbundene Zellen reagiert nicht auf dich persönlich :smile:

Okay und ich habe den Smilie vergessen :wink:

Probiers mal so:

Sub FindeTest()
Dim Zelle As Range
For Each Zelle In ActiveSheet.UsedRange
If InStr(Zelle, „Test“) > 0 Then MsgBox Zelle.Address
Next Zelle
End Sub

Mal schaun wie sich das auf die Performanz auswirkt, aber danke das scheint es irgendwie zu erschlagen :wink:

Gruss,
Michael