Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Nach Spalteninhalt gruppieren

Frage Microsoft Microsoft Office

Mitglied: viewpoint

viewpoint (Level 1) - Jetzt verbinden

14.09.2007, aktualisiert 19.09.2007, 11230 Aufrufe, 7 Kommentare

Abhängig des Inhaltes einer Zelle die Zeilen gruppieren

Hallo!

Ich habe ein Excel Sheet mit etwa 24TSD Zeilen. in der ersten Spalte steht immer eine Nummer nach der ich gruppieren will. Allerdings haben die Nummern immer unterschiedlich viele Zeilen (stehen untereinander).

Ich will nun mit, z.B. einem Makro, sämtliche Zahlen (Im konkreten Fall Arbeitsauftragsnummern) gruppieren.

Wie ist das zu realisieren?

Danke!
Mitglied: bastla
15.09.2007 um 15:24 Uhr
Hallo viewpoint!

Reichen für Deinen nicht genannten weiteren Verwendungszweck die Möglichkeiten von "Daten / Teilergebnisse..." nicht aus?

Grüße
bastla
Bitte warten ..
Mitglied: viewpoint
17.09.2007 um 13:31 Uhr
Hi!

Naja - hier werden Zeilen mit Zwischenergebnissen eingefügt.

Im Klartext:
Ich habe eine Liste in der Arbeitsscheinnummern, Erstellt-Datum, Meldung, Rückmeldung, Kosten, etc. stehen.
Einige Arbeitsscheinnummern bestehen aber aus mehreren Zeilen (wenn die Arbeiten an verschiedenen Tagen gemacht wurden). Nun will ich in diesen Fällen die Arbeitsscheinnummern gruppiert haben.

Wenn dazwischen Zeilen eingefügt werden, ist das eigentlich nicht brauchbar
Bitte warten ..
Mitglied: bastla
17.09.2007 um 16:10 Uhr
Hallo viewpoint!

Was verstehst Du eigentlich unter "Gruppierung"? Auch die Gruppierungsfunktion von Excel ("Daten / Gruppierung und Gliederung / Gruppierung..." benötigt ja irgendeine "Zwischenzeile" (Kopf oder Fuß).

So gesehen sieht Dein Vorhaben für mich derzeit eher nach "Sortierung" aus.

Grüße
bastla
Bitte warten ..
Mitglied: viewpoint
17.09.2007 um 17:53 Uhr
Hi!

Man braucht schon eine Zwischenzeile - und zwar die letzte Zeile der einzelnen Auftragsnummern da in diesem alle Aktionen der vorangegangenen Aktionen sind.

Beispiel: 3x die Auftragsnummer 55000
In der ersten Zeile steht, dass ein Techniker 30 Minuten dort war und sich das angesehen hat.
Zweite Zeile auch mit Auftragsnummer 55000 wo steht, dass der Techniker am Vortag 30 min dort war und nun begonnen hat, etwas zu machen.
Die dritte Zeile hat auch die Auftragsnummer 55000 wo ebenfalls steht, dass er 30 minuten dort war, dann begonnen hat mit der Arbeit und nun das fertig gestellt hat.

Ich will nun nur noch die letzte Zeile sehen wo eben alles zusammen geführt steht. Der Rest soll entweder gruppiert werden oder ganz ausgeblendet wird.

Manchmal hat ein Auftrag nur eine Zeile, manchmal 5 oder bis zu 20.
Bitte warten ..
Mitglied: bastla
18.09.2007 um 16:52 Uhr
Hallo viewpoint!

Versuch es mal mit dem folgenden VBA-Programm:
01.
Sub Gliederung() 'Dieses Sub zum Starten verwenden! 
02.
r = 4 'erste Zeile mit Daten 
03.
st = r 
04.
PANr = "" 
05.
Do While Cells(r, 1).Value <> "" 
06.
    ANr = Cells(r, 1).Value 
07.
    If ANr <> PANr Then 
08.
        Gliedern st, r 
09.
        st = r 
10.
    End If 
11.
    PANr = ANr 
12.
    r = r + 1 
13.
Loop 
14.
Gliedern st, r 
15.
End Sub 
16.
 
17.
Sub Gliedern(st As Integer, r As Integer) 
18.
If st < (r - 1) Then 
19.
    Range(Rows(st), Rows(r - 2)).Rows.Group 
20.
End If 
21.
End Sub
Die Startzeile (im Beispiel 4) musst Du natürlich Deinen Gegebenheiten anpassen.

Um sinnvoll gruppieren zu können, ist zunächst eine Sortierung erforderlich, welche Du vorweg selbst vornehmen solltest, da nur Du die Kriterien dafür kennst. Wenn Du den Sortiervorgang als Makro aufzeichnest, lässt sich dieser dann auch leicht in das Programm einbauen.

Gestartet wird über das Sub "Gliederung" (Hauptprogramm). Das Sub "Gliedern" ist für das eigentliche Zusammenfassen zuständig und wird vom Hauptprogramm selbst aufgerufen.

Es werden alle Zeilen durchlaufen, bis eine Zeile mit leerer Spalte A gefunden wird - da Du die Datenzeilen ja ohnehin zusammenhängend hast (und behalten willst), schien mir das der sinnvollste und flexibelste Weg.

Nicht berücksichtigt ist derzeit (für Excel <= 2003) die Möglichkeit , dass das Tabllenblatt bis zur Zeile 65536 gefüllt sein könnte.

Grüße
bastla
Bitte warten ..
Mitglied: viewpoint
19.09.2007 um 10:10 Uhr
Hi!

Besten Dank!

Wenn ich das Makro nun aufrufe, sagt er mir "Argumenttyp ByRef unverträglich" und markiert den Aufruf "Gliedern" im Hauptprogramm.
Bitte warten ..
Mitglied: bastla
19.09.2007 um 13:30 Uhr
Hallo viewpoint!

Ersetze das Sub "Gliedern" durch folgende Version:
01.
Sub Gliedern(S As Integer, Z As Integer) 
02.
If S < (Z - 1) Then 
03.
    Range(Rows(S), Rows(Z - 2)).Rows.Group 
04.
End If 
05.
End Sub
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...