Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
864to868
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
864to868
864to868
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hilfe zum Code

Hilfe zum Code
02.05.2007 21:23:40
Olaf
Hallo,
ich bin blutiger Anfänger in VBA. Also habe ich ein wenig im Archiv gesucht und ein passendes Script gefunden.
Nun habe ich folgendes Problem, das Script orientiert scih an Spalte A, ich hätte gerne Spalte D ausgewählt. Habe sebst schon ein wenig pobiert aber keine Lösung gefunden. Hier das Script

Sub SortSplit()
Dim wks As Worksheet
Dim iRow As Integer, iRowT As Integer
Application.ScreenUpdating = False
Set wks = ActiveSheet
Range("A1").Sort key1:=Range("A2"), order1:=xlAscending, header:=xlYes
iRow = 2
Do Until IsEmpty(wks.Cells(iRow, 1))
If Left(wks.Cells(iRow, 1), 1)  Left(wks.Cells(iRow - 1, 1), 1) Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
Rows(1).Value = wks.Rows(1).Value
Rows(1).Font.Bold = True
Columns(1).Font.Bold = True
ActiveSheet.Name = Left(wks.Cells(iRow, 1), 1)
iRowT = 1
End If
iRowT = iRowT + 1
Rows(iRowT).Value = wks.Rows(iRow).Value
iRow = iRow + 1
Loop
Worksheets(1).Select
Application.ScreenUpdating = True
End Sub


Kann mir jemand helfen?
Vielen Dank!
Grüße
Olaf

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe zum Code
02.05.2007 21:44:00
Gerd
Hallo Olaf,
ich habe aus jeder Angabe "A" "D" und aus jeder Spaltenangabe "1" entsprechend "4" gemacht.
Ob dies jetzt das ist, was Du benötigst, kannst selbst testen.
Evtl. musst Du dies teilweise bei den Abgleichungen wieder ändern.

Sub SortSplit()
Dim wks As Worksheet
Dim iRow As Integer, iRowT As Integer
Application.ScreenUpdating = False
Set wks = ActiveSheet
Range("D1").Sort key1:=Range("D2"), order1:=xlAscending, header:=xlYes
iRow = 2
Do Until IsEmpty(wks.Cells(iRow, 4))
If Left(wks.Cells(iRow, 4), 1)  Left(wks.Cells(iRow - 1, 4), 1) Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
Rows(1).Value = wks.Rows(1).Value
Rows(1).Font.Bold = True
Columns(4).Font.Bold = True
ActiveSheet.Name = Left(wks.Cells(iRow, 4), 1)
iRowT = 1
End If
iRowT = iRowT + 1
Rows(iRowT).Value = wks.Rows(iRow).Value
iRow = iRow + 1
Loop
Worksheets(1).Select
Application.ScreenUpdating = True
End Sub


Gruß Gerd

Anzeige
AW: Hilfe zum Code
02.05.2007 22:07:31
Olaf
Hallo Gerd,
funktioniert, vielen Dank! Nun habe ich noch eine Frage, dass Script fasst alles was z.b. mit A beginnt in ein Arbeitsblatt, ich hätte aber gerne das jedes A eine eigenes Tabellenblatt bekommt.
also
AA eine Tabellenblatt
AB eine Tabellenblatt
...
DD ein Tabellenblatt
DE ein Tabellenblatt
Hoffe ich drücke mich verständlich aus
Grüße
Olaf

AW: Hilfe zum Code
03.05.2007 07:25:00
Gerd
Hallo Olaf,
da dies nicht mein Code ist, bin ich mir nicht sicher.
Ersetze mal:
If Left(wks.Cells(iRow, 4), 1) Left(wks.Cells(iRow - 1, 4), 1) Then
durch:
If Left(wks.Cells(iRow, 4), 2) Left(wks.Cells(iRow - 1, 4), 2) Then
Gruß Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige