Clever-Excel-Forum

Normale Version: Error 1004 - merged cells
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

in einem Blatt habe ich zwei zu zwei vertikal verbundene Zellen in A5:Y66.
Mit einer Makro hebe ich die Verbindung auf, aber wenn ich die Range sortieren will bekomme ich die Fehlermeldung 1004: "to do this all the merged cells must be of the same size", wobei ich kontrolliert habe: es gibt keine verbundenen mehr.
Wie kann ich dieses Problem lösen?

Der Code:

1. der Originalcode: er funktioniert, ist aber sehr langsam


Code:
Sub DatenAufbereiten(WS As Worksheet)
Dim Zelle As Range

WS.Unprotect

For Each Zelle In WS.Range("A5:AC66")
   If Zelle.MergeCells = True Then
       With Zelle.MergeArea
           .MergeCells = False
       End With
   End If
Next

WS.Range("A5:A66").Copy
WS.Range("A5:A66").PasteSpecial xlPasteValues

WS.Range("A5:Y66").Sort Key1:=WS.Range("A5"), Order1:=xlAscending
End Sub


Diesen habe ich aufgezeichnet, weil der erste sehr langsam ist, der aufgezeichnete hingegen viel schneller.

Code:
    Range("B1:E66").Select
       Selection.Delete Shift:=xlToLeft
       Range("A5:Y66").Select
       With Selection
       .HorizontalAlignment = xlCenter
       .VerticalAlignment = xlCenter
       .WrapText = False
       .Orientation = 0
       .AddIndent = False
       .IndentLevel = 0
       .ShrinkToFit = False
       .ReadingOrder = xlContext
       .MergeCells = False
       
      End With

Und dann habe ich das Stück Code des Originalcode's, das die Sortierung durchführt, hintendran gehängt:

WS.Range("A5:A66").Copy
WS.Range("A5:A66").PasteSpecial xlPasteValues

WS.Range("A5:Y66").Sort Key1:=WS.Range("A5"), Order1:=xlAscending
End Sub

Es gibt die Variable "Ws" im Originalcode. Muß die auch vor "Range" stehen? Ich habe es versucht mit Ws.Range(...), aber das scheint nicht richtig zu sein?

Ich habe eine Beispieldatei erstellt, aber da funktioniert die aufgezeichnete Makro. Das Problem wird wohl bei der Variable liegen?

Ich bräuchte eine kleine Hilfe dafür.
Im voraus dankend,
Alooha
Hallo,

lass die verbundenen Zellen komplett weg, die machen, wie du jetzt siehst, nur Probleme.
Die gleiche Optik erreichst du so:

-Schreib irgendetwas in Zelle A1
-markiere A1 und B1
-Rechtsklick - Zellen formatieren
-Ausrichtung
-bei Horizontal über Auswahl zentrieren auswählen

Aus dem ganzen Blatt bekommst du die verbundenen Zellen folgendermaßen raus:


-alle Zellen auf dem gesamten Blatt markieren
-dazu den Pfeil oben links zwischen Zeilenbeschriftung und Spaltenbeschriftung klicken
-Rechtsklick - Zellen formatieren
-Ausrichtung und Haken bei Zellen verbinden raus machen

Gruß Werner
Hallo Werner,

ich muß von einer vorgegebenen Situation ausgehen und da sind die Zellen nun mal verbunden.
Und es muß per VBA geschehen.

Gruß
Alooha
Hallo Alooha,

teste es mal damit:
Sub DatenAufbereiten(WS As Worksheet)
 WS.Range("B1:E66").Delete Shift:=xlToLeft
 WS.Range("A5:Y66").MergeCells = False
     
 WS.Range("A5:A66").Copy
 WS.Range("A5:A66").PasteSpecial xlPasteValues
 
 WS.Range("A5:Y66").Sort Key1:=WS.Range("A5"), Order1:=xlAscending
End Sub
Gruß Uwe
Hallo,

die Sache funktioniert jetzt, wenn auch sehr langsam, aber jetzt habe ich ein Problem mit der Funktion EOMONTH.
Code:
=MIN('C:\Program Files (x86)\Microsoft Office\root\Office16\LIBRARY\Analyse\ATPVBAEN.XLA'!eomonth($B370;0);MAX($B370;D$328))
In Wirklichkeit heisst der Ordner nicht Analyse sondern Analysis, aber wenn ich ihn korrigiere, bekomme ich die Fehlermeldung: there is a problem with this formula
Und jetzt ist Sense: trotz Neustarts des PCs will Excel nicht mehr funktionieren.
Funktioniert Excel nicht mehr oder nur diese eine Datei nicht?

Schon mal versucht, Excel mit Paramtern zu starten?

Startparameter

(wer nicht hören kann muss fühlen: Du bekamst den Tipp, damit nicht zu Arbeiten)
Duckunwech
Moin!
Das Analyse-Addin wird seit Äonen nicht mehr benötigt.
(wahrscheinlich hast Du es auch (sinnvollerweise) gar nicht erst aktiviert, deshalb der Excel-Rülpser)
Es reicht also:
=MIN(EOMONTH($B370;0);MAX($B370;D$328))

Gruß Ralf
Hallo,
ich konnte das Problem lösen, indem ich Excel im abgesicherten Modus gestartet habe. Seitdem ist er nicht mehr abgestürzt.
Danke für eure Tipps!
Salve
Alooha