Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1516to1520
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellverbund aufheben, Wert in alle Zellen einfügen

Zellverbund aufheben, Wert in alle Zellen einfügen
05.10.2016 13:57:21
Hasi
Hallo Miteinander
Ich muss jeden Monat ein Reporting erstellen, wo die "Rohdaten" im Excel verbunden sind. In den Spalten A und B befinden sich mehrere, untereinander zusammengefügte Zeilen mit Namen. (z.B. Daten 1 verbunden A1-A15; Daten 2 verbunden A16;A19; usw.)
Ich habe im Archiv eine Lösung gefunden, um einen Zellverbund mit dem Namen so aufzuheben, dass danach in jeder einzelnen Zelle der gleiche Name steht, wie zuvor im Zellverbund.
https://www.herber.de/forum/archiv/944to948/945851_Zellverbund_aufheben_Wert_in_alle_Zellen_einfuegen.html#946019
Die Antwort von Erich aus Kamp-Lintfort hat super funktioniert für Spalte A. Wenn ich jetzt die gleiche Logik für Spalte B anwenden möchte, funktioniert es leider nicht (auch wenn ich A durch B in der Formel ersetze):
--------------------------------
Option Explicit

Sub Verbundene_trennenA()   ' (Vertikal verbundene Zellen in Spalte A)
Dim rngM As Range, rngC As Range, zz As Long
For zz = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(zz, 1).MergeCells Then
Set rngM = Cells(zz, 1).MergeArea
rngM.MergeCells = False
For Each rngC In rngM
If rngC.Address  rngM.Cells(1).Address Then rngC = rngM.Cells(1)
Next rngC
zz = rngM.Row
End If
Next zz
End Sub

Sub InAllenBlaettern()
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
Select Case wks.Name
Case "xyz", "Summe" ' Blätter, die NICHT bearbeitet werden sollen
Case Else
wks.Select
Verbundene_trennenA
End Select
Next wks
End Sub

-----------------------------------------------
Habt ihr vielleicht eine Lösung?
Herzlichen Dank im Voraus!
Hasi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellverbund aufheben, Wert in alle Zellen einfügen
05.10.2016 14:09:22
UweD
Hallo
Hier wird im Code Cells(Zeile,Spalte) verwendet
Das steht auf 1 ===&gt also 1 = A
Sub Verbundene_trennenA()   ' (Vertikal verbundene Zellen in Spalte A)
Dim rngM As Range, rngC As Range, zz As Long
For zz = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(zz, 1).MergeCells Then
Set rngM = Cells(zz, 1).MergeArea
rngM.MergeCells = False
For Each rngC In rngM
If rngC.Address  rngM.Cells(1).Address Then rngC = rngM.Cells(1)
Next rngC
zz = rngM.Row
End If
Next zz
End Sub

Anzeige
AW: Zellverbund aufheben, Wert in alle Zell
05.10.2016 14:27:33
Hasi
Hallo Uwe
Danke dir für die rasche Antwort. Leider funktioniert es immer noch nicht, auch wenn ich 2 = B einsetzte. Siehst du vielleicht einen anderen Fehler?
Ich habe alle Befehle in ein Modul geschrieben. Es funktioniert leider auch nicht, wenn ich es in 2 Module kopiere :)
Danke vielmals fürs überprüfen!
Sub Verbundene_trennenA()   ' (Vertikal verbundene Zellen in Spalte A)
Dim rngM As Range, rngC As Range, zz As Long
For zz = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(zz, 1).MergeCells Then
Set rngM = Cells(zz, 1).MergeArea
rngM.MergeCells = False
For Each rngC In rngM
If rngC.Address  rngM.Cells(1).Address Then rngC = rngM.Cells(1)
Next rngC
zz = rngM.Row
End If
Next zz
End Sub

Sub Verbundene_trennenB()   ' (Vertikal verbundene Zellen in Spalte B)
Dim rngM As Range, rngC As Range, zz As Long
For zz = Cells(Rows.Count, 2).End(xlUp).Row To 2 Step -1
If Cells(zz, 2).MergeCells Then
Set rngM = Cells(zz, 2).MergeArea
rngM.MergeCells = False
For Each rngC In rngM
If rngC.Address  rngM.Cells(1).Address Then rngC = rngM.Cells(1)
Next rngC
zz = rngM.Row
End If
Next zz
End Sub

Sub InAllenBlaettern()
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
Select Case wks.Name
Case "xyz", "Summe" ' Blätter, die NICHT bearbeitet werden sollen
Case Else
wks.Select

Anzeige
AW: Zellverbund aufheben, Wert in alle Zell
05.10.2016 15:00:12
UweD
Sorry, kann keinen Fehler finden.
Hast du den Aufrufnamen auch geändert?
Alternativ kannst du das auch mit variabler Spalte machen.
Der Aufruf erfolgt dann mit Parameter der Spalte Verbundene_trennen (2)
Sub Verbundene_trennen(Sp As Integer)
   Dim rngM As Range, rngC As Range, zz As Long
   
   For zz = Cells(Rows.Count, Sp).End(xlUp).Row To 2 Step -1
      If Cells(zz, Sp).MergeCells Then
         Set rngM = Cells(zz, Sp).MergeArea
         rngM.MergeCells = False
         For Each rngC In rngM
            If rngC.Address <> rngM.Cells(1).Address Then rngC = rngM.Cells(1)
         Next rngC
         'zz = rngM.Row' nicht notwendig 
      End If
   Next zz
End Sub
Sub InAllenBlaettern()

     Dim wks As Worksheet
     For Each wks In ActiveWorkbook.Worksheets
        Select Case wks.Name
           Case "xyz", "Summe" ' Blätter, die NICHT bearbeitet werden sollen 

           Case Else
              wks.Select
              Verbundene_trennen (2)
        End Select
     Next wks
  End Sub

LG UweD
Anzeige
AW: Zellverbund aufheben, Wert in alle Zell
05.10.2016 16:54:16
Hasi
Hallo Uwe
Ich habe das Problem entdeckt!
Nebst dem 2=B muss man auch noch den Zellenbezug anpassen (Row To 3 Step -2).
Jetzt geht es :)
Danke dir für deine Unterstützung!
Liebe Grüsse
Sub Verbundene_trennenB()   ' (Vertikal verbundene Zellen in Spalte B)
Dim rngM As Range, rngC As Range, zz As Long
For zz = Cells(Rows.Count, 2).End(xlUp).Row To 3 Step -2
If Cells(zz, 2).MergeCells Then
Set rngM = Cells(zz, 2).MergeArea
rngM.MergeCells = False
For Each rngC In rngM
If rngC.Address  rngM.Cells(1).Address Then rngC = rngM.Cells(1)
Next rngC
zz = rngM.Row
End If
Next zz
End Sub

Anzeige
Prima das jetzt alles klappt owT
06.10.2016 08:30:55
UweD

382 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige