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

erste Funktionen

erste Funktionen
Jonathan
Hey,
ich übe mich gerade in Funktionen mit VBA. Ein paar einfache habe ich schon hinbekommen. Nun möchte ich eine Funktion schreiben, welche mir die Inhalte eines Namensbereiches sortiert. Habs so probiert:
Sub test()
SortName ("NameXY")
End Sub
Public Function SortName(ByRef Name As String)
Range(Name).Sort _
Key1:=Range(Name).Cells(1, 1), _
Order1:=xlAscending, Header:=xlNo, _
Orientation:=xlTopToBottom
End Function
Aber das funktioniert nicht. Was ist hier falschß
Danke für Eure Tipps!
LG

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

Betreff
Benutzer
Anzeige
AW: erste Funktionen
08.07.2011 10:20:43
Rudi
Hallo,
1. solltest du dir abgewöhnen Schlüsselwörter (Objekte, Eigenschaften, Methoden, ...) als Variablennamen zu benutzen. Name kann ein Objekt, eine Eigenschaft oder eine Funktion sein.
2. werden Funktionen eigentlich nur benutzt, um Werte zurückzugeben und nicht, um Aktionen auszuführen.
3. was funktioniert nicht?
Gruß
Rudi
AW: erste Funktionen
08.07.2011 10:26:03
Jonathan
Danke für die Tipps! Der Bereich wird nicht sortiert, eine Fehlermeldung wird allerdings nicht ausgegeben.
Warum sollte mit einer Funktion keine Aktion ausgeführt werden? So kann ich doch recht einfach auf die Variable zugreifen - löse ich das über eine Sub, muss ich die Variable ja etwas "umständlicher" übergeben?!
Anzeige
AW: erste Funktionen
08.07.2011 10:41:47
Rudi
Hallo,
also bei mir wird sortiert.
Warum wird überhaupt immer der Abstand eingefügt - zwischen SortName und (?
Das musst du Bill fragen. Ich denke zur besseren Lesbarkeit.
löse ich das über eine Sub, muss ich die Variable ja etwas "umständlicher" übergeben?!
Nö. Ist das gleiche in grün.
Sub xxx(strText As String)
MsgBox strText
End Sub
Sub yyy()
xxx "Test"
End Sub

oder
Sub aaa()
Dim x
x = 2
bbb x
MsgBox x
End Sub
Sub bbb(x)
x = x * 5
End Sub

Gruß
Rudi
deswegen...
08.07.2011 10:46:58
Jonathan
Danke für die Beispiele! Stimmt, hätte ich auch so lösen können.
Jetzt weiß ich, warum nicht sortiert wird:
Bisher war der Bereich immer auf Zeilen innerhalb einer Spalte verteilt, nun ist dieser auf Spalten innerhalb einer Zeile verteilt. Da wird die Sortierung wohl nicht funktionieren?! wie müsste ich diese denn anpassen?
Anzeige
Zeilen sortieren
08.07.2011 10:50:56
Rudi
Hallo,
Orientation:=xlLeftToRight
Gruß
Rudi
AW: Zeilen sortieren
08.07.2011 13:24:18
Jonathan
Super, vielen Dank!!!!
AW: erste Funktionen
08.07.2011 10:27:28
Jonathan
Warum wird überhaupt immer der Abstand eingefügt - zwischen SortName und (?
SortName ("NameXY")
AW: erste Funktionen
08.07.2011 10:28:38
ransi
HAllo
Du solltest keine Variable "Name" nennen.
"Name" ist ein Begriff den Excel und VBA auch verwenden.
Das knallt dann schon mal...
Aber wichtiger ist das du sauber referenzierst.
So gehts:

Sub test()
    SortName ("Name_XY")
End Sub




Public Function SortName(ByRef str_Name As String)
    With Sheets("TAbelle1")
        .Range(str_Name).Sort _
            Key1:=.Range(str_Name).Cells(1, 1), _
            Order1:=xlAscending, Header:=xlNo, _
            Orientation:=xlTopToBottom
    End With
End Function


ransi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige