Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1376to1380
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

Laufzeitfehler 1004

Laufzeitfehler 1004
18.08.2014 11:00:26
joschy
Hallo Leute, nachdem ich schon einen alten Thread zu diesem Thema aus dem Jahre 2005 studiert habe, muss ich jetzt hier doch mal posten, da ich nicht mehr weiter komme.
Also ich sitze an nem Plan für ein Fußballturnier und da sollen die Abschlusstabellen eben sortiert werden nach Punkten und Tordifferenz und so eben... ;)
Und dafür hab ich so ne grobe Vorlage und meine komplett eigene Version. Und bei meinem Makro kommt dieser Laufzeitfehler: "Für diese Aktion müssen alle verbundenen Zellen dieselbe Größe haben."
Jetzt hab ich in meinem Plan aber bereits die Zellenhöhe und auch -breite schon auf für alle Zellen gleich gesetzt.
Ich hab auch gelesen, dass man verbundene Zellen garnich verschieben könnte (und beim sortieren wird ja verschoben oder?! :D) Aber wieso geht das dann in meiner Vorlage?
Langsam bin ich echt ratlos und um jede Hilfe dankbar! :)
Hier der Link zu meinem Dokument: https://www.herber.de/bbs/user/92169.xlsm
Und hier zu der funktionierenden Vorlage: https://www.herber.de/bbs/user/92170.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004
18.08.2014 13:54:53
fcs
Hallo Joschy,
das Problem ist, dass dein Makro "VorSort" immer im aktiven Sortiert.
Ist das Blatt "Spielplan aktiv, dann befinden sich im zu sortierendne Bereich verbundene Zellen (z.B. M5:N5). Du musst im Makro entweder das Blatt "Berechnung" zu Beginn aktivieren oder wie nachfolgend den Bezug für alle Range/Cells zum korrekten Tabellenblatt herstellen.
Gruß
Franz
Sub VorSort()
With Sheets("Berechnung")
.Range(.Cells(4, 13), .Cells(7, 22)).Sort _
key1:=.Range(.Cells(4, 18), .Cells(7, 18)), order1:=xlDescending, _
key2:=.Range(.Cells(4, 22), .Cells(7, 22)), order2:=xlDescending, _
key3:=.Range(.Cells(4, 19), .Cells(7, 19)), order3:=xlDescending
If .Cells(4, 17).Value = 0 Then
.Range(.Cells(4, 13), .Cells(7, 22)).Sort _
key1:=.Range(.Cells(4, 13), .Cells(7, 13)), order1:=xlAscending
End If
End With
End Sub

Anzeige
AW: Laufzeitfehler 1004
19.08.2014 07:51:40
joschy
Hi Franz,
vielen Dank für die Antwort! :) Könntest du evtl noch posten, wie ich das Blatt "Berechnung" aktiviere und mir noch kurz erklären, ob das bedeutet, dass dann das Makro NUR auf dem aktivierten Blatt ausgeführt wird. Und mir bitte noch kurz dazu erklären, wie ich dann dieses nur für "Berechnung" geltende Makro in dem Makro "VorrundeSortiern" (das nur in "Spielplan" vorkommen soll) aufrufe..?

AW: Laufzeitfehler 1004
19.08.2014 09:37:02
fcs
Hallo Joschy,
die Anweisungen Activate und Select sind bei der VBA-Programmierung eigentlich nur in wenigen Ausnahmefällen erforderlich. Meistens um dem Anwender eine Mappe/Blatt in einem vordefinierten Zustand anzuzeigen.
Die häufige Verwendung von .Activate, .Select und Selection. (insbesondere bei Anfängern) hat ihre Ursache darin, dass der Makrorecorder so arbeitet.
Man kann diese fast immer vermeiden durch direkte Benennung der Objekte und Verwendung von Variablen, denen man die Objekte zuweist.
Ich hatte dir ja in meiner Antwort aufgezeigt, wie du dein Makro "VorSort" anpassen kannst. Dann kommst du ohne Activate aus und dein Schaltflächenmakro funktioniert.
Wenn du unbedingt mit Activate arbeiten möchtest, dann musst du das Makro "VorrundeSortiern" zu deiner Schaltfläche im Blatt "Spielplan" wie folgt anpassen.
Sub VorrundeSortiern()
Sheets("Berechnung").Activate
Call VorSort
Sheets("Spielplan").Activate
End Sub
Dies ist aber nicht die von mir persönlich bevorzugte Variante.
Gruß
Franz

Anzeige
AW: Laufzeitfehler 1004
19.08.2014 09:58:36
joschy
Ok, wenn du mir das so erklärst stimm ich mit dir überein! :) Hab deine Variante inzwischen auch schon eingearbeitet, danke nochmals! :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige