Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro Abfrage einbauen ?

Forumthread: Makro Abfrage einbauen ?

Makro Abfrage einbauen ?
20.06.2008 12:24:46
Kurt
Guten Tag,
ich habe dieses Makro, funktioniert.
Nun möchte ich dies gern so anwenden, das ich bei Aufruf die
zu sortierende Spalte auswählen kan und zwar von
Spalte A bis Spalte M bzw.1 bis 13 .

Sub Sortieren()
Dim z As Long
Range("A5").Select
z = Range("A5").End(xlDown).Row
ActiveSheet.Range(Cells(6, 1), Cells(z, 13)).Select
Selection.Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub


herzl. kurt p

Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Abfrage einbauen ?
20.06.2008 12:50:00
Yusuf

Function Sortieren(spalte as integer)
Dim z As Long
cells(5, Spalte).Select
z = Range(cells(5, Spalte), cells(5, Spalte)).End(xlDown).Row
ActiveSheet.Range(Cells(6, 1), Cells(z, 13)).Select
Selection.Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Function


dein beispiel was oben sortiert wird wuerdest du mit:


Sub test
sortieren 1 (die 1 steht fuer die erste spalte A)
End Sub


aufrufen.
ich hab an dem Sortierbereich und den Bedingungen nichts geaendert.
mfg
Yusuf

Anzeige
AW: Makro Abfrage einbauen ?
20.06.2008 12:58:00
Kurt
Hallo Yusuf,
wo muß ich den die Zahl der Spalte eingeben ?
herz. kurt p

AW: Makro Abfrage einbauen ?
20.06.2008 13:46:00
Reinhard
Hi Kurt,
in der Sub test
Gruß
Reinhard

Habe getestet aber
20.06.2008 14:08:00
Kurt
Hallo Reinhard,
habe dies probiert, leider ohne Erfolg.
Dim sortieren As String
sortieren = InputBox("test", "test", 1, 0, 0)
herzl. kurt p

Anzeige
AW: Habe getestet aber
20.06.2008 14:30:00
Reinhard
Hi Kurt,
ist doch mühsam bei "breiten" tabellen zu wissen welche Nummer Spalte Q hat, probiers mal so:

Option Explicit
Sub hh()
Dim sortieren As String, dummy
sortieren = InputBox("Geben Sie für die gewünschte Spalte A,B,C,... ein", "Spaltensortierung", " _
A", 0, 0)
If sortieren = "" Then Exit Sub
On Error GoTo Fehler
Set dummy = Range(sortieren & "1")
Call test(dummy.Column)
Exit Sub
Fehler:
MsgBox "falsche Eingabe"
End Sub
Sub test(spalte As Integer)
'Code
End Sub


Gruß
Reinhard

Anzeige
Warum so ? Fehler
20.06.2008 15:01:15
Kurt
Hey Reinhard, habe eingesetzt:

Sub A_Sortieren()
Dim sortieren As String, dummy
sortieren = InputBox("Geben Sie für die gewünschte Spalte A,B,C,... ein", _
"Spaltensortierung", " A ", 0, 0)
If sortieren = "" Then Exit Sub
On Error GoTo Fehler
Set dummy = Range(sortieren & "1")
Call test(dummy.Column)
Exit Sub
Fehler:
MsgBox "falsche Eingabe"
End Sub


'


Sub test(spalte As Integer)
Dim z As Long
Cells(5, spalte).Select
z = Range(Cells(5, spalte), Cells(5, spalte)).End(xlDown).Row
ActiveSheet.Range(Cells(6, 1), Cells(z, 13)).Select
Selection.Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub


irgendetwas stimmt doch nicht, warum setze ich nochdies ein?
Selection.Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
gr kurt p

Anzeige
arum nicht so?
20.06.2008 15:26:00
Reinhard
Hi Kurt,
verstehe ich nicht, du willst doch einen Bereich nach diese Spalte sortieren? Und der Sort-Befehl ist der Sortierbefehl!?
Stell mal den Curser auf Sort und drücke F1, dort werden die Parameter von Sort erläutert.

Sub test(spalte As Integer)
Dim z As Long
z = Range(Cells(5, spalte), Cells(5, spalte)).End(xlDown).Row
ActiveSheet.Range(Cells(6, 1), Cells(z, 13)).Sort Key1:=Range("A6"), Order1:=xlAscending,  _
Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub


Oder willst du aus den beiden Subs eine


Sub machen?
Gruß
Reinhard

Anzeige
Ich wollte das mit einer Inputbox
20.06.2008 16:16:00
Kurt
Hey Reinhard,
ich wollte dies mit einer Inputbox durchführen,
also entweder den Buchstaben oder die SpaltenNr. in die Inputbox eintragen
dann sollt die entsprechende Spalte sortiert werden.
gr kurt p

AW: Ich wollte das mit einer Inputbox
20.06.2008 18:18:32
Reinhard
Hi Kurt,
ich habe es jetzt umgebastelt, sodaß man jetzt Spaltenname oder Spaltennummer eingeben darf:

Option Explicit
Sub A_Sortieren()
Dim sortieren As String, dummy, z As Long, Mldg As String
Mldg = "Geben Sie für die gewünschte Spalte A,B,C,... oder die Spaltennummer ein"
sortieren = InputBox(Mldg, "Spaltensortierung", "A", 0, 0)
If sortieren = "" Then Exit Sub
On Error GoTo Fehler
If IsNumeric(sortieren) Then
Set dummy = Cells(1, sortieren)
Else
Set dummy = Range(sortieren & "1")
End If
z = Cells(5, dummy.Column).End(xlDown).Row
ActiveSheet.Range(Cells(6, 1), Cells(z, 13)).Sort Key1:=Cells(6, dummy.Column), Order1:= _
xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Exit Sub
Fehler:
MsgBox "falsche Eingabe"
End Sub


Gruß
Reinhard

Anzeige
Klappt aber ...
20.06.2008 20:18:00
Kurt
Hallo Reinhard,
klappt soweit, habe aber dies ändern müssen:
z = Cells(5, 1).End(xlDown).Row
vorher wurde nicht sortiert.
Wenn ich eine Spalten Nummer eingebe z.b. 3 kommt Fehlermeldung"false Eingabe,
ansonsten kann ich auch mit den Buchstaben leben!
gr kurt p

Anzeige
AW: Klappt aber ...
21.06.2008 17:43:32
Reinhard
Hi Kurt,
neuer Versuch :-):

Option Explicit
Sub A_Sortieren()
Dim sortieren As String, dummy, z As Long, Mldg As String, spa
Mldg = "Geben Sie für die gewünschte Spalte A,B,C,... oder die Spaltennummer ein"
sortieren = InputBox(Mldg, "Spaltensortierung", "A", 0, 0)
If sortieren = "" Then Exit Sub
spa = Korrekt(sortieren)
If spa = 0 Then GoTo Fehler
z = Cells(Rows.Count, 1).End(xlUp).Row
ActiveSheet.Range(Cells(6, 1), Cells(z, Columns.Count)).Sort Key1:=Cells(6, spa), Order1:= _
xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Exit Sub
Fehler:
MsgBox "falsche Eingabe"
End Sub
Function Korrekt(Eingabe As String) As Integer
On Error Resume Next
Select Case Asc(Left(Eingabe, 1))
Case 48 To 57
Korrekt = Cells(1, CInt(Eingabe)).Column
Case 65 To 90, 97 To 122
Korrekt = Cells(1, Eingabe).Column
End Select
End Function


Gruß
Reinhard

Anzeige
AW: Klappt aber ...
21.06.2008 21:20:00
Gerd
Hallo Kurt!

Sub A_Sortieren()
Dim sortieren As String, lngSpalte As Long, z As Long, Mldg As Variant
Mldg = "Geben Sie für die gewünschte Spalte A,B,C,... oder die Spaltennummer ein"
sortieren = InputBox(Mldg, "Spaltensortierung", "A", 0, 0)
On Error GoTo Fehler
If Not IsNumeric(sortieren) Then
lngSpalte = CLng(Columns(sortieren).Column)
Else
lngSpalte = CLng(sortieren)
End If
If 0  0 Then Err.Clear
MsgBox "falsche Eingabe"
End If
End Sub


Gruß Gerd

Anzeige
Danke, Gerd u. Reinhard -)
22.06.2008 10:17:06
Kurt
Guten Morgen ihr Zwei,
herzlichen Dank, funktioniert beides !
Besonders Reinhard, der sehr viel Geduld mit mir hatte !!!
Schönen Sonntag noch,
gr kurt p

AW: Makro Abfrage einbauen ?
23.06.2008 08:09:37
Yusuf
hi,
bitte um Entschuldigung. konnte nicht antworten.
kann nur von der arbeit aus schreiben, da mein pc zuhause zur zeit defekt ist.
gruß
Yusuf

Anzeige
AW: Makro Abfrage einbauen ? -)
23.06.2008 20:40:00
Walter
Hallo Yusuf,
auch Dir herzlichen für deine Untestützung,
mfg Walter mb

Danke wb f.Unterstützung! -)
23.06.2008 20:42:00
Kurt
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige