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

Recordermakro ändern in variablen Bereich

Recordermakro ändern in variablen Bereich
24.07.2017 20:03:44
Gisela
Hallo zusammen,
ich habe mit dem Recorder - leider habe nur diese Kenntnisse - ein Makro zum sortieren aufgezeichnet. Nun wechselt aber der Bereich immer wieder, da sich die Anzahl der Zeilen durch neue Datensätze erweitert. Kann mir bitte jemand helfen, den Makro so zu ändern, dass immer bis zur letzten Zeile markiert und sortiert wird.Sortieren erfolgt nach Spalte B.
Hier mein Recoderergebnis:
Sub sortieren()
Range("B7:AP92").Select 'dieser Bereich sollte variabel sein
ActiveWorkbook.Worksheets("anwesen").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("anwesen").Sort.SortFields.Add Key:=Range( _
"B7:B92"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("anwesen").Sort
.SetRange Range("B7:AP92")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("AG7").Select
End Sub
Vielen Dank für jede Hilfe
Liebe Grüße
Gisela

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Recordermakro ändern in variablen Bereich
24.07.2017 20:16:10
Daniel
Hi
Sub sortieren()
With ActiveWorkbook.Worksheets("anwesen")
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("B7"), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:= xlSortNormal
.Sort.SetRange .Range(.Range("B7"), .Cells.SpecialCells(xlcelltypelastcell))
.Sort.Header = xlGuess
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
End With
End Sub
ich habe jetzt noch ein paar andere Umstellungen gemacht, die den Code etwas übersichlicher machen (zumindest für mich)
Gruß Daniel
Anzeige
AW: Recordermakro ändern in variablen Bereich
24.07.2017 20:52:00
Gisela
Hallo Daniel,
vielen Dank, funktioniert,
Eine Frage; aber vielleicht fehlen mir einfach die notwendigen Kenntnisse, sorry.
Was muss ich ändern, wenn sich die Spaltenanzahl mal ändert. Es wird immer die ganze Zeile sortiert. Ich frage deshalb, da ich in einigen anderen Spalten noch Informationen stehen habe, die nicht mitsortiert werden sollen.
Liebe Grüße
Gisela
AW: Recordermakro ändern in variablen Bereich
24.07.2017 20:55:08
Daniel
Hi
.Range(.Range("B7"), .Cells(.Cells.SpecialCells(xlcelltypelastcell).Row, xxx))
für xxx setzt du die Nummer oder den Buchstaben der Spalte ein, bis zu der sortiert werden soll.
Gruß Daniel
AW: Recordermakro ändern in variablen Bereich
24.07.2017 21:37:41
Gisela
Hallo Daniel,
habe es so geändert:
.Sort.Range(.Range("B7"),.Cells(.Cells.SpecialCells(xlcelltypelastcell).Row, AQ))
und erhalte eine Fehlermeldung:
Fehler beim Kompilieren
Eingabe:=
Was habe ich falsch gemacht?
Liebe Grüße
Gisela
Anzeige
"AQ"
24.07.2017 21:44:13
KlausF
Moin Gisela,
.Sort.Range(.Range("B7"),.Cells(.Cells.SpecialCells(xlcelltypelastcell).Row, "AQ"))
Gruß
Klaus
AW: "AQ" Fehlermeldung
24.07.2017 21:53:16
Gisela
Hallo KlausF
danke für deine Hilfe,
.Sort.Range(.Range("B7"),.Cells(.Cells.SpecialCells(xlcelltypelastcell).Row,"AQ"))
erhalte die gleiche Fehlermeldung.
Noch eine Idee?
Vielen Dank und Grüße
Gisela
AW: "AQ" Fehlermeldung
24.07.2017 22:22:17
Zwenn
Hallo Gisela,
es sind nur 2 Flüchtigkeitsfehler in der Zeile. Sie muss so aussehen:

.Range(.Range("B7"), .Cells(.Cells.SpecialCells(xlCellTypeLastCell).Column, "AQ"))
Also vorne noch das .sort wegnehmen und hinten vor "AQ" das Wort Row durch Column ersetzen. Du willst ja bis Spalte AQ Sortieren, nicht bis Zeile ;-)
Um Missverständnissen vorzubeugen, der Teil vor der Änderung bleibt gleich. Die gesamtzeile sieht also so aus:

.Sort.SetRange .Range(.Range("B7"), .Cells(.Cells.SpecialCells(xlCellTypeLastCell).Column, "AQ") _
)

Viele Grüße,
Zwenn
Anzeige
AW: "AQ" Fehlermeldung
24.07.2017 22:31:23
Daniel
HI Zwenn
das .Row ist schon richtig.
das .Cells(.Cells.SpecialCells(xlCellTypeLastCell).Column, "AQ") muss die rechte untere Zelle des zu sortierenden Bereichs sein.
die Spalte wird über das "AQ" festgeleg und die Zeile über die Zeilennummer der letzten verwendeten Zelle auf dem Blatt.
das aber leere Zellen sowieso immer an den letzten Platz sortiert werden könnte man auch einfach so schreiben:
.Sort.SetRange .Range(.Range("B7"), .Cells(.Rows.Count, "AQ"))
Gruß Daniel
AW: "AQ" Fehlermeldung
24.07.2017 22:38:42
Zwenn
Hi Daniel,
stimmt. Ich hatte es ausprobiert, aber nur den Bereich bis Zeile 12 und Spalte AR gefüllt. Haptsache es klappt jetzt für Gisela :-)=)
Viele Grüße,
Zwenn
Anzeige
Funktioniert nach Änderung
24.07.2017 22:48:52
Gisela
Hallo Daniel,
habe deinen Änderungsvorschlag eingebaut. Funktioniert genau wie ich es brauche.
Herzlichen Dank
Gisela
AW: "AQ" Fehlermeldung
24.07.2017 22:46:10
Gisela
vielen dank für deine Hilfe, o.T.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige