Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
984to988
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
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortieren-Fehler

Sortieren-Fehler
22.06.2008 17:08:00
Alex
Hallo zusammen,
dieser Code:

Sub sortierendrsa()
Sheets("Tabelle2").Unprotect "Kennwort"
With Sheets("Tabelle1")
.Unprotect "Kennwort"
.Range("A1:A5").Copy
Sheets("Tabelle2").Range("A1").PasteSpecial Paste:=xlPasteValues
.Range("A1:C5").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess
Sheets("Tabelle2").Range("A1:C5").Sort Key1:=Range("A1"), Order1:=xlAscending, Header: _
=xlGuess
.Protect "Kennwort"
Sheets("Tabelle2").Protect "Kennwort"
End With
End Sub


soll folgendes leisten:
-beide Tabellenblätter: Blattschutz aufheben (mit Kennwort)
-Tabelle1: Bereich A1:A5 kopieren
-Tabelle2: die kopierten Daten, im Bereich A1:A5, -Werte einfügen-
-Tabelle1: Bereich A1:C5 Daten sortieren (alphabetisch nach Spalte A, mit den jeweils dazugehörigen Daten in den Spalten B und C)
BIS HIER FÜHRT ER ES AUS!
-Tabelle2: den selben Bereich wie in Tabelle1 sortieren (A1:C5)
MACHT ER NICHT; MELDET FEHLER!
-dann beide Tabellenblätter wieder sperren
fertig.
wieso sortiert der die Tabelle2 nicht!!!
Kann mir jem. weiterhelfen?
Die Reihenfolge der Abläufe muss dabei aber unbedingt eingehalten werden.
grüsse
Alex

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortieren-Fehler
22.06.2008 17:15:00
Hajo_Zi
Hallo Alex
.Range("A1:C5").Sort bezieht sich auf With Sheets("Tabelle1")
vor Range("A1) fehlt ein Punkt

AW: Sortieren-Fehler
22.06.2008 17:19:00
Andreas
Hallo Alex,
wenn Du vor die Zeile in der Tabelle2 sortiert werden soll folgendes schreibst, funktioniert's.
Sheets("Tabelle2").Select
Gruß,
Andreas B.

AW: Sortieren-Fehler
22.06.2008 17:22:41
Hajo_Zi
Hallo Andreas,
nicht ganz, durch .Range bezieht es sich imer noch auf With Sheets("Tabelle1"), der Punkt müßte gelöscht werden.
Excel ist ein vielseitiges Programm und man kann viele Probleme damit lösen. Jede positive Seite hat aber auch negative Aspekte - einer davon ist im Makrorecorder enthalten.
Die Bücher, die es zu Excel VBA gibt, erklären viele Funktionen, aber ich habe bisher nur in einem gelesen, dass der vom Makrorecorder aufgezeichnete Code bereinigt werden sollte.
Der Makrorecorder zeichnet alle Aktionen auf, u. a. auch das Auswählen einer Zelle oder eines eingebetteten Objektes (Bild, Diagramm, Zeichnungsobjekt usw.) – dabei wird generell Select und Activate aufgezeichnet. Diese Befehle sind in VBA zu 99,9% nicht notwendig. Sie lassen den Bildschirm flackern und senken die Geschwindigkeit bei der Ausführung des Codes. Man sollte also schon von Beginn an bei der Programmierung darauf achten, solche Befehle zu vermeiden. Meine Erfahrung mit dem Vorsatz: „Das mache ich später“ ist, man schreibt das Programm später meist komplett neu. Also kostest es nicht nur Rechnerzeit sondern auch Deine Zeit und ist Dir Deine Zeit so wenig Wert?
Zum Vergleich mit und ohne Select schau Dir auch mal diese Beispielarbeitsmappe an: [url=http://hajo-excel.de/chCounter3/getfile.php?id=61]mit und ohne select[/url] Auf meiner Homepage sind alle meine Beispiele ohne Select. Da kann man sich also einige Lösungsansätze zu diesem Thema ansehen.
Gruß Hajo

Anzeige
AW: Sortieren-Fehler
22.06.2008 17:33:47
Alex
Hallo,
danke für eure Antworten.
Passt das so mit dem Punkt von Hajo?

Sub sortierendrsa()
Sheets("Tabelle2").Unprotect "red13"
With Sheets("Tabelle1")
.Unprotect "red13"
.Range("A1:A5").Copy
Sheets("Tabelle2").Range("A1").PasteSpecial Paste:=xlPasteValues
.Range("A1:C5").Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlGuess
Sheets("Tabelle2").Select
Sheets("Tabelle2").Range("A1:C5").Sort Key1:=.Range("A1"), Order1:=xlAscending,  _
Header:=xlGuess
.Protect "red13"
Sheets("Tabelle2").Protect "red13"
End With
End Sub


Andreas,
bei mir klappts trotzdem (Sheets("Tabelle2").Select) nicht.
Er meldet Fehler : 400
gruss
Alex

Anzeige
AW: Sortieren-Fehler
22.06.2008 17:38:00
Hajo_Zi
Hallo Alex,
nei falls Tabelle2 sortiert werden soll.

Option Explicit
Sub sortierendrsa()
With Sheets("Tabelle1")
.Unprotect "red13"
.Range("A1:A5").Copy
.Protect "red13"
End With
With Sheets("Tabelle2")
.Unprotect "red13"
.Range("A1").PasteSpecial Paste:=xlPasteValues
.Range("A1:C5").Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlGuess
.Protect "red13"
End With
Application.CutCopyMode = False
End Sub


Gruß Hajo

AW: Sortieren-Fehler
22.06.2008 17:52:00
Alex
Hallo Hajo,
sorry, aber Fehler: 400
Desweiteren muss noch Tabelle1 sortiert werden.
Sag mal, ich hab den Code doch an den richtigen Ort geschrieben (in VBA, Tabelle1), oder?
gruss
Alex

Anzeige
AW: Sortieren-Fehler
22.06.2008 18:01:00
Hajo_Zi
Hallo Alex,
ich baue Dateien nicht nach, die Zeit hat jemand schon investiert.
Warum ist der Code unter der Tabelle, das ist doch ein Makro was im ein Modul gehört. Das beide Tabelle sortiert werden sollen habe ich wohl überlesen.

Option Explicit
Sub sortierendrsa()
Dim WsT1 As Worksheet
Dim WsT2 As Worksheet
Set WsT1 = Worksheets("Tabelle1")
Set WsT2 = Worksheets("Tabelle2")
WsT1.Unprotect "red13"
WsT2.Unprotect "red13"
WsT1.Range("A1:A5").Copy
WsT2.Range("A1").PasteSpecial Paste:=xlPasteValues
WsT1.Range("A1:C5").Sort Key1:=WsT1.Range("A1"), Order1:=xlAscending, Header:=xlGuess
WsT2.Range("A1:C5").Sort Key1:=WsT2.Range("A1"), Order1:=xlAscending, Header:=xlGuess
WsT1.Protect "red13"
WsT2.Protect "red13"
Application.CutCopyMode = False
Set WsT1 = Nothing
Set WsT2 = Nothing
End Sub


Gruß Hajo

Anzeige
Erledigt, danke
22.06.2008 18:10:23
Alex
Hallo Hajo,
natürlich heisst das Modul, meinte ich auch.
Dein Code machts jetzt, Danke für deine Hilfe.
Weiss auch nicht warum meiner nicht ging.
gruss
Alex

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige