Hallo, ich habe eine Tabelle, in der ich 2 übereinander stehende Zeilen in einer neuen Zelle verbinden will, so in etwa:
Erste Angabe A b c
Zweite Angabe 1 2 3
Gesamte Angabe A_in_1 B_in_2 C_in_3
Ich führe noch weitere Aktionen in diesem Makro aus, der Code der aktuell nicht funktioniert ist:
Set Wertebereich2 = ActiveSheet.Range("C8:V9")
For Each Zelle2 In Wertebereich2 Zelle3.Value = Wertebereich2.Cells(8, 3).Value & "_in_" & Wertebereich2.Cells(9, 3).Value
Range("C33:V33").Value = Zelle3
Zur Erklärung die Zeilen 8 und 9 enthalten die Infos, die ich spaltenweise in eine neue Zelle und zwar fortlaufend ab C33 bis V33 schreiben möchte. Wie man sieht, soll der Name der Zelle oben mit dem Namen der Zelle unten verknüpft werden. Das Makro habe ich bereits geschrieben, für jeden einzelnen Wert, was auch super funktioniert hat, aber doch aufwendig und unelegant ist.
Das gesamte Makro sieht so aus:
Sub Ersetzenanderex()
Dim Bereich As Object, Wertebereich As Object, Wertebereich2 As Object
Dim Zelle As Range
Dim Zelle2 As Range
Dim Zelle3 As Range
Set Bereich = ActiveSheet.Range("B8:V8")
For Each Zelle In Bereich
Zelle.Value = Replace(Zelle.Value, " ", "_")
Zelle.Value = Replace(Zelle.Value, "-", "_")
Next Zelle
Set Wertebereich2 = ActiveSheet.Range("C8:V9")
For Each Zelle2 In Wertebereich2
Zelle3.Value = Wertebereich2.Cells(8, 3).Value & "_in_" & Wertebereich2.Cells(9, 3).Value
Range("C33:V33").Value = Zelle3
Next
Set Wertebereich = ActiveSheet.Range("C10:V29")
For Each Zelle In Wertebereich
If Zelle.Value = "" Then Zelle.Value = 0
End If
Next Zelle
End Sub
Im ersten Teil werden die Leerzeichen der Namen durch Unterstriche ersetzt, dann soll der Name zusammengefasst werden und dann in einem anderen Bereich alle leeren Felder mit Nullen aufgefüllt werden. Als Fehlermeldung wird mir immer wieder die Zeile unter "For Each Zelle2..." markiert, und zwar "91 Oject variable not set", leider werde ich daraus nicht ganz schlau. Weiterhin frage ich mich, wie man beim For Each Befehl die Zelle benennt, aber der die Aktion in der Weise ausgeführt werden soll, also ob es etwas wie Platzhalter gibt und ob ich die Angabe der Zelle global oder lokal in den Grenzen des Wertebereichs machen kann.
Vielen Dank für eure Hilfe. |