Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
348to352
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
348to352
348to352
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortierungen - VBA

Sortierungen - VBA
06.12.2003 17:24:25
Dieter

Hallo!
Ich wollte mit folgendem Makro erreichen, dass in den Tabellenblättern "Kreditoren" und "Abbuchungen" eine Sortierung vorgenommen wird. Das Makro wird aber nur im Tabellenblatt "Abbuchungen" ausgeführt. Im Tabellenblatt "Kreditoren" kommt eine Fehlermeldung. Er greift m. E. nur auf das letzte Tabellenblatt zu. Wo muß ich was ändern, dass auch auf dem ersten Tabellenblatt das Makro ausgeführt wird. In der Datei sind noch weitere 10 Tabellenblätter enthalten, von denen aber nur bestimmte mit dem gleichen Sortierungsschlüssel bearbeitet werden sollen. Danke schonmal an die Antworten von vorhin.
Sub Sort2()
' Sort2 Makro
' Sortierung erfolgt mit der Tastenkombination "Steuerung M"
ActiveSheet.Unprotect password:=""
Sheets("kreditoren").Select
Sheets("abbuchungen").Select
Range("B5:i278").Select
Selection.Sort2 Key1:=Range("B5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveSheet.Protect password:=""
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Sortierungen - VBA
06.12.2003 17:44:32
Josef Ehrensberger
Hallo Dieter,
probier mal dieses Makro.


Sub Sort2()
Application.ScreenUpdating = False
ActiveSheet.Unprotect password:=""
With Sheets("TB2")
.Activate
.Range("B5:I278").Sort Key1:=.Range("B5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
With Sheets("TB3")
.Activate
.Range("B5:I278").Sort Key1:=.Range("B5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
ActiveSheet.Protect password:=""
Application.ScreenUpdating = True
End Sub


Gruß Sepp
Anzeige
korrektur!
06.12.2003 17:47:30
Josef Ehrensberger
beim ersten war ein kleiner Fehler drin!


Sub Sort2()
Application.ScreenUpdating = False
With Sheets("TB2")
.Activate
.Unprotect password:=""
.Range("B5:I278").Sort Key1:=.Range("B5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
.Protect password:=""
End With
With Sheets("TB3")
.Activate
.Unprotect password:=""
.Range("B5:I278").Sort Key1:=.Range("B5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
.Protect password:=""
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: korrektur!
06.12.2003 18:04:41
Dieter
Supi Sepp!

Was bedeutet das screenupdating? Und gibt es denn auch die Möglichkeit, dass nicht alle Tabellen auf einmal sortiert werden, sondern nur die,die gerade auf dem Bildschirm zu sehen ist, wenn man das Makro ausführt.

Danke im voraus.

Dieter
AW: korrektur!
06.12.2003 18:45:02
Josef Ehrensberger
Hi Dieter,

also ich habe geglaut, das Du beide Tabellen sortieren möchtest.

Wenn Du nur das aktive Tabellenblatt sortieren willst, dann so.

Sub Sort2()
Application.ScreenUpdating = False
With ActiveSheet
.Unprotect password:=""
.Range("B5:I278").Sort Key1:=.Range("B5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
.Protect password:=""
End With
Application.ScreenUpdating = True
End Sub


Das ScreenUpdating=False bewirkt, das der Bildschirm
beim laufen des Makros nicht Flimmert!

Gruß Sepp
Anzeige
AW: korrektur!
06.12.2003 20:32:32
Dieter
Deine erste Lösung war schon sehr gut. Wenn ich Deine zweite Lösung übernehme, besteht für einen Anwender doch die Möglichkeit, alle Tabellenblätter zu sortieren, auch die er nicht sortieren darf (weil mit dem Makro ja auch der Blattschutz aufgehoben wird)? Wie verhindere ich denn dann, dass z. B. Tabelle 1 und 3 sortiert werden können, aber die Tabellen 2, 4 und 5 sortiert werden dürfen, und zwar einzeln. Ich hoffe, Du verstehst, was ich meine.

Danke im voraus.

Dieter
AW: korrektur!
06.12.2003 22:12:17
Josef Ehrensberger
Hallo Dieter,

eine möglichkeit wäre z.B.:


Sub Sort2()
If ActiveSheet.Name = "Tabelle1" Or ActiveSheet.Name = "Tabelle3" Then
MsgBox "Sortieren dieses Blattes ist nicht erlaubt", vbExclamation, "Hinweis"
Exit Sub
End If
Application.ScreenUpdating = False
With ActiveSheet
.Unprotect password:=""
.Range("B5:I278").Sort Key1:=.Range("B5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
.Protect password:=""
End With
Application.ScreenUpdating = True
End Sub


Gruß Sepp
Anzeige
AW: korrektur!
06.12.2003 22:35:55
Dieter
Ich werd mir fest vornehmen, mich ein bißchen mehr mit VBA zu beschäftigen. Du hast mir sehr geholfen. Ich bin sehr begeistert, was man damit alles machen kann, wobei das ja für Dich wahrscheinlich nur ein Klacks war.

Danke

Dieter
Danke für die Rückmeldung (o.T.)
06.12.2003 22:59:29
Josef Ehrensberger
/

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige