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

sortiermakro

sortiermakro
30.10.2006 13:06:21
CB
hallo
ich wollte mir ein einfaches makro zum sortieren von nem datenblatt machen
der markierte bereich soll einfach nach einer bereits festgelegten spalte alphabetisch sortiert werden. das sortiermakro an sich läuft, funzt aber nur wenn etwas markiert ist - sonst rennt er in einen fehler (is klar). nun wollte ich das ganze einfach mit ner if-abfrage abfangen, aber die tuts nicht...
wie muss ich die formulieren das er das macht was er soll?
ich hab bisher:

Sub Mark_Sort_Date()
If Selection Then
Selection.Sort ...
Else
MsgBox "Nichts markiert!"
End If
End Sub

wenn nichts markiert ist gehts, aber bei ner markierung kommt "fehler:13 typen unverträglich"
danke
mfg

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: sortiermakro
30.10.2006 13:11:10
Christian
Hallo CB,
ich glaub das geht so ähnlich:

Sub Mark_Sort_Date()
on error goto EH:
Selection.Sort ...
Exit sub
EH:
MsgBox "Nichts markiert!"
End Sub

Gruß
Christian S.
AW: sortiermakro
30.10.2006 13:13:12
Ramses
Hallo
Nachdem immer was markiert (Fokus aktive Zelle) ist, kann das irgendwo im Tabellenereich sein, wo mehrere Daten zusammen stehen.
Wenn dann die Sortierung ausgelöst wird, .... na dann gute Nacht ;-)
Gruss Rainer
AW: sortiermakro
30.10.2006 13:11:17
Ramses
Hallo
Da muss doch nichts markiert zum sortieren, der Focus muss lediglich im Datenbankbereich liegen

Sub Mark_Sort_Date()
If ActiveCell.Address(0,0) = "B1" Then
Selection.Sort ...
Else
MsgBox "Nichts markiert!"
End If
End Sub

Damit prüfst du ob die richtige Zelle für deine Sortierung markiert ist.
Gruss Rainer
Anzeige
AW: sortiermakro
30.10.2006 13:15:51
Daniel
Hallo
in Excel ist eingentlich immer was selektiert.
Sinn macht das sortieren aber nur, wenn mehr als 2 Zellen selektiert sind, also solltest du prüfen:
if selection.cells.count>1 then
Zusätzlich solltest du noch prüfen, ob deine Sortierspalte innerhalb der Selektion liegt, sonst bricht dein Makro auch mit Fehler ab. Gruß, Daniel
AW: sortiermakro
30.10.2006 13:34:21
CB
hallo
danke für die antworten...
ja daran hab ich gar nicht gedacht, danke - das is so wohl die eleganteste lösung...
markiert werden muss auf jeden fall etwas da es im prinzip eine art kalenderübersicht (in einem datenblatt) ist und die aufgaben nach verschiedenen kategorien sortiert werden sollen
wie kann ich prüfen ob die spalte im markierungsbereich is?
ausserdem: es gibt doch im vb-editor diese funktion das er mir die objekt-möglichkeiten ausgibt wenn ich zb. selection. eingebe... wie schalte ich das in 2003 ein? ich finds hier nicht...
gruß
Anzeige
AW: sortiermakro
30.10.2006 14:02:32
Daniel
Hallo
ich glaube im Editor unter EXTRAS-OPTIONEN-EDITOR sollte sich die entsprechende Option finden lassen. Bei mir zumindest ist da alles angecheckt.
Das Prüfen, ob das Sortierkriterium innerhalb der Selektion liegt, geht am besten glaube ich mit:
if isempty(intersect(selection, Range()) then
Gruß, Daniel
Selection-Typ mit TypeName
30.10.2006 14:27:23
Dan
Hi,
Option Explicit

Sub Mark_Sort_Date()
Dim spalte, zeilen
Dim ausgeweahltes As Object
spalte = 5
zeilen = 10
' Die Selection-Property ist von Typ 'Object', dass heisst sie kann alle moeglichen Verweisse beinhalten
' mit der TypeName funktion testet man, was fuer einen Typ gibt die Eigenschfft 'Selection' zurueck
' um es klarer zu machen, nehmen wir eine Variable 'ausgeweahltes' und lassen sie auf das selbe object
' wie die Selection Property zeigen:
Set ausgeweahltes = Selection
If (VBA.TypeName(ausgeweahltes) = "Range") Then
' wenn Zellen ausgewaehlt sind, kann man mit der Variablen 'ausgeweahltes' als mit einem
' range umgehen, also z.B testen, in welcher Spalte es ist, oder ehnliches:
If (ausgeweahltes.Column = spalte And ausgeweahltes.Rows.Count = zeilen) Then
' relevante Zellen sind ausgeweahlt, sortieren:
ausgeweahltes.Sort
End If
Else
' MsgBox "Nichts markiert!"
MsgBox "Es sind keine Zellen ausgeweahlt. Kann nicht sortieren..."
End If
' andere Beispiele von dem, was ausgeweahlt sein kann:
If (VBA.TypeName(ausgeweahltes) = "Rectangle") Then
MsgBox "Ausgewaehlt ist " & VBA.TypeName(ausgeweahltes)
ElseIf (VBA.TypeName(ausgeweahltes) = "Oval") Then
MsgBox "Ausgewaehlt ist " & VBA.TypeName(ausgeweahltes)
ElseIf (VBA.TypeName(ausgeweahltes) = "ChartArea") Then
MsgBox "Ausgewaehlt ist " & VBA.TypeName(ausgeweahltes)
Else
MsgBox "Ausgewaehlt ist " & VBA.TypeName(ausgeweahltes)
End If
End Sub

Gruss Dan, cz.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige