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
), 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 
Sortiere mal die Mistdinger…
Bastle mal eine kleine Beispielmappe, dann FAQ:2606
Gruß
Reinhard
Hallöchen zurück,
geschieht dir Recht
)
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
)
Gemeinheit! Was kann ich für die Arbeit Anderer?
Piano, ich hab doch nur auf verbundene Zellen reagiert nicht auf dich persönlich 
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 
Okay und ich habe den Smilie vergessen 
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 
Gruss,
Michael