Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Error 1004 - merged cells
#1
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
Antworten Top
#2
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
Antworten Top
#3
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
Antworten Top
#4
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
Antworten Top
#5
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
Antworten Top
#6
Und jetzt ist Sense: trotz Neustarts des PCs will Excel nicht mehr funktionieren.
Antworten Top
#7
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
Antworten Top
#8
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#9
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste