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

Namensliste auf Tabellenblätter auteilen

Namensliste auf Tabellenblätter auteilen
25.01.2009 10:10:57
Judith
Hallo,
ich versuche, mehrere Listen nach den Namen zu sortieren.
Vielleicht weiß jemand Rat.
Ich habe mehrere Listen mit jeweils etwa 1500 Einträgen die nun nach Namen sortiert und in ein eigenes Tabellenblatt eingetragen werden sollen
Unser Verein besteht aus 23 Mitgliedern. Für jeden einzelnen habe ich nun ein Tabellenblatt mit dessen Namen angelegt.
Hier eine Musterdatei:
https://www.herber.de/bbs/user/58775.xls
Ich dachte mir, es gäbe vielleicht eine Möglichkeit, die Sortierarbeit durch ein Makro erledigen zu lassen.
Nicht, das es mir zuviel Arbeit wäre, die Liste zu filtern und die Ergebnisse auszuschneiden. Ich würde gerne wissen, wie es mit einem Makro funktioniert.
Ich habe schon versucht, mit dem Makrorecorder aufzuzeichnen, aber im Endeffekt bleibt es immer reine Handarbeit, jeden Namen einzeln auszuwählen.
Würde mich freuen, vor allem, weil ich diese Arbeit noch öfter machen werden muss.
Danke, für Eure Hilfe!
Judith

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

Betreff
Datum
Anwender
Anzeige
AW: Namensliste auf Tabellenblätter auteilen
25.01.2009 10:35:00
Hajo_Zi
Hallo Judith,
warum sind in der 2 Liste nicht alle Namen aus der ersten Liste?
Ich würde die Tabellen auch über Makro anlegen. Tabellenname =Name + Geburtstag, da es Leute gibt mit gleichem Namen aber unterschiedlichen Geburtstagen.
Ich würde die erste Liste auch sortieren.

AW: Namensliste auf Tabellenblätter auteilen
25.01.2009 10:42:48
Judith
Hallo Hajo,
es ist ja nur eine Musterdatei, ich habe mir jetzt nicht die Mühe gemacht und alle Datensätze korrekt eingegeben.
Tatsächlich habe ich nur Reihen kopiert. Ich wusste nicht, dass das so wichtig ist.
Meine Idee ist ja, nur die Datensätze nach dem Namen zu sortieren und in das entsprechende Tabellenblatt einzutragen.
Weißt Du, was ich meine?
Judith
Anzeige
AW: Namensliste auf Tabellenblätter auteilen
25.01.2009 11:06:54
Hajo_Zi
Hallo Judth,
es gibt nur die Tabelle Auflistung. Ich habe es jtzt nicht überprüft, aber ich vermute es sins alle Dda.

Option Explicit
Sub Judith()
Dim LoLetzte As Long
Dim LoI As Long
Application.ScreenUpdating = False
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
Range("A4:G" & LoLetzte).Sort Key1:=Range("A4"), Order1:=xlAscending, Key2:=Range("D4"),  _
Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
With ActiveSheet
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = .Cells(4, 1) & " " & .Cells(4, 4)
.Rows("3:4").Copy Rows(1)
For LoI = 5 To LoLetzte
If .Cells(LoI, 1)  .Cells(LoI - 1) And .Cells(LoI, 4)  .Cells(LoI - 1, 4) Then
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = .Cells(LoI, 1) & " " & .Cells(LoI, 4)
.Rows("3").Copy Rows(1)
.Rows(LoI).Copy Rows(2)
End If
Next LoI
End With
Application.ScreenUpdating = False
End Sub


Gruß Hajo

Anzeige
AW: @ Hajo
25.01.2009 12:04:00
Peter
Hallo Hajo,
ich meine es sollte besser

If .Cells(LoI, 1) << .Cells(LoI - 1) OR .Cells(LoI, 4) << .Cells(LoI - 1, 4) Then }


also Or anstelle von And heißen und die Application am Ende wieder auf True setzen.
Gruß Peter
AW: @ Hajo
25.01.2009 12:21:00
Hajo_Zi
Hallo Peter,
das Ende True ist korrekt, Es gibt gleiche Namen mit unterschiedlichen Geburtstag darum And.
Gruß Hajo
Anzeige
AW: Zeilen kopieren
25.01.2009 12:52:00
Hajo_Zi
Hallo Peter,
Du hast Recht mit or es muss nur verschieden und nicht 2 kleiner lauten. Es kann ja vorgekommen das das nächste Mitglied am gleichen Tag Geburtstag hat.
Gruß Hajo
AW: Zeilen kopieren
25.01.2009 13:15:00
Judith
Hallo an alle,
vielen Dank für Euer Engagement, was würde ich ohne Euch tun!
Das mit Musterdatei und den gleichen Namen mit unterschiedlichen Geburtsdaten war natürlich nicht beabsichtigt, ich hatte einfach ein paar Namen und Geburtsdaten eingetragen und dann nach unten kopiert. Sorry, ich wollte niemanden verwirren...
Jetzt habe ich auf jeden Fall eine ganze Menge zu testen. Und ich freue mich auch schon, die Codes genauer untersuchen zu können.
Wäre doch gelacht ob ich das nicht auch irgendwann mal schaffe...
Viele Grüße und noch einen schönen Sonntag!
Judith
Anzeige
hier noch eine Möglichkeit...
25.01.2009 12:06:27
Tino
Hallo,
, es wird nicht geprüft ob die Tabellen alle vorhanden sind.
Option Explicit

Sub StartSort_Verteilung()
Dim Bereich As Range, meZellen As Range
Dim meArea
Dim A As Long

With Application
 .ScreenUpdating = False
 .EnableEvents = False
    
    With Sheets("Auflistung")
        Set Bereich = .Range("A4", .Cells.SpecialCells(xlCellTypeLastCell))
        Bereich.Sort Bereich(1), xlAscending
        
    
        With Sheets("Vereinsmitglieder")
         meArea = .Range("A4", .Cells(.Rows.Count, 1).End(xlUp))
        End With
    
        Set Bereich = .Range("A3", .Cells.SpecialCells(xlCellTypeLastCell))
      
        For A = 1 To Ubound(meArea)
           If meArea(A, 1) <> "" Then
             Bereich.AutoFilter 1, meArea(A, 1)
             Set meZellen = Bereich.SpecialCells(xlCellTypeVisible)
             
               On Error Resume Next 'Sicherheit, sollte Tabelle nicht vorhanden sein 
                meZellen.Copy Sheets(meArea(A, 1)).Range("A3")
               On Error GoTo 0
            End If
        Next A

        Bereich.AutoFilter

    End With 'Sheets("Auflistung") 

 .ScreenUpdating = True
 .EnableEvents = True
End With ' Application 
End Sub


Gruß Tino

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige