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

(Anfänger)Fehler im Code

(Anfänger)Fehler im Code
Jenny
Hi Ihr,
ich bin mit VBA leider noch ganz am Anfang und habe heute mal etwas probiert, was leider noch nicht ganz so klappt wie gewünscht: ;-)
Eigentlich soll der Code nur folgendes machen:
1) Sortiere Einträge auf Blatt1 (Zeilen 2 bis 1000) aufsteigend nach Spalte A und anschließend nach Spalte B.
2) Formatiere Spalten A bis H mit Ausrichtung Zeilenumbruch.
3) Springe automatisch in die nächste freie Zelle in Spalte A (es gibt dort nur leere Zellen am Ende, d.h. die erste leere ist automatisch immer die richtige).
Kann mir jemand von Euch sagen, was ich hier falsch gemacht habe und wie man das evtl. professioneller schreiben bzw. korrigieren kann ? :-)
Sub Data_Cleanup()
' Data_Cleanup Macro
' Keyboard Shortcut: Ctrl+d
Dim rg1 As Range, rg2 As Range
Rows("2:1000").Select
Range("A1000").Activate
ActiveWorkbook.Worksheets("Database").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Database").Sort.SortFields.Add Key:=Range( _
"A2:A1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Database").Sort.SortFields.Add Key:=Range( _
"B2:B1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Database").Sort
.SetRange Range("A2:I1000")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Columns("A:H").Select
Range("H1").Activate
With Selection
.WrapText = True
End With
On Error GoTo E_n_d_e
Set rg1 = ActiveSheet.Range("A:A").SpecialCells(xlCellTypeBlanks)
If Not rg1 Is Nothing Then
For Each rg2 In rg1
rg2.Offset(0, -2).Select
Exit For
Next rg2
End If
E_n_d_e:
Set rg1 = Nothing
Set rg2 = Nothing
End Sub
LG und vielen Dank im Voraus,
Jenny

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: (Anfänger)Fehler im Code
19.03.2012 11:34:33
Tino
Hallo,
versuch es mal so.
Sub Data_Cleanup()
' Data_Cleanup Macro
' Keyboard Shortcut: Ctrl+d
With ActiveWorkbook.Worksheets("Database")
.Rows("2:1000").Sort _
Key1:=.Range("A2"), Key2:=.Range("B2"), _
Order1:=xlAscending, Order2:=xlAscending, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, Header:=xlNo
.Columns("A:H").WrapText = True
Application.Goto .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
End With
End Sub
Gruß Tino
Header = xlGuess würde ich evtl. so lassen oT
19.03.2012 11:56:10
Matthias
warum?
19.03.2012 12:41:19
Tino
Hallo,
wenn ich doch weiß das Rows("2:1000") nicht die Überschrift enthält
muss ich dies nicht von Excel entscheiden lassen.
Könnte dies auch so machen.
     .Rows("1:1000").Sort _
Key1:=.Range("A2"), Key2:=.Range("B2"), _
Order1:=xlAscending, Order2:=xlAscending, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, Header:=xlYes
Kann aber auch sein das ich alles falsch verstehe!
Gruß Tino
Anzeige
AW: warum?
19.03.2012 13:11:17
Jenny
Tino, Du hast völlig recht - in dem Fall ist es ausgeschlossen, dass Rows 2:1000 die Überschrift enthält. :-)
Es klappt alles bestens - nochmals danke ! :-)
@ Matthias: Vielen Dank fürs nachprüfen - finde ich klasse, wenn hier auch Dinge angemerkt werden, an die man selbst vielleicht gar nicht gedacht hätte !
LG und nochmals danke an Euch beide,
Jenny
AW: (Anfänger)Fehler im Code
19.03.2012 12:45:08
Jenny
Hallo Tino,
vielen Dank für Deine schnelle Antwort - das klappt wunderbar !! :-)
Ist eine riesen Hilfe und gelernt hab ich damit wohl auch was. ;-)
LG und einen schönen Tag noch,
Jenny

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige