2.2k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

folgendes Problem, dass wahrscheinlich nur mit VBA gelöst werden
kann.

In einer Excel-Tabelle habe ich z.B folgende Struktur:

Abteilung 1 (Spalte A)
MA-Name (Spalte B)
MA-Name (Spalte B)
MA-Name (Spalte B)
MA-Name (Spalte B)
Unterabteilung 1 (Spalte B)
MA-Name (Spalte C)
MA-Name (Spalte c)
MA-Name (Spalte B)
Abteilung 2 (Spalte A)

usw.

Also eine Aufgliederung von Abteilungen und Mitarbeiter-Namen,
wobei unter jeder Abteilung auch eine Unterabteilung vorhanden
sein kann.

Zielstellung: Für jede Abteilung und Unterabteilung soll nun die
Anzahl der Mitarbeiter gezählt werden. Das problematische ist, dass
wie oben im Bsp. erkennbar, auch nach einer Unterabteilung noch
ein MA-Name, der zur darüber liegenden Abteilung gehört stehen
kann. Strukturell ist dies auch ersichtlich (Eintrag in Spalte B), beim
Zählen jedoch problematisch.

Wie kann das Problem gelöst werde? Ich hoffe, ich konnte mich
halbwegs verständlich machen.

Danke vorab und viele Grüße.

10 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

leider sagt mir Deine Anfrage so gut wie nichts.
Eine aussagekräftige Beispielmappe könnte da weiter helfen.

Gruß
Rainer
0 Punkte
Beantwortet von
4795179/Abt_Name.xls.html">www.file-upload.net/download-
4795179/Abt_Name.xls.html


Hier ist ein Beispiel zu finden. Die Felder in denen ich gerne eine
Summe hätte habe ich markiert (inkl. der Zahl die bei dem Bsp
rauskommen sollte).

Viele Grüße und Danke!
0 Punkte
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

die Links funktionieren nicht.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

Einfach die Link-URL kopieren. Dann funktionierts.
Sorry, habe es anders nicht hinbekommen.

Viele Grüße
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

Einfach die Link-URL kopieren. Dann funktionierts.


...Du irrst, nichts funktioniert.

Lade die Mappe noch mal hoch, kopiere den Download-Link und poste ihn hier.

Gruß
Rainer
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo,
@ Rainer
@ M.O.
er hat schon recht mit dem Link kopieren, er funktioniert dann nach dem einfügen.


http://www.file-upload.net/download-4795179/Abt_Name.xls.html

Gruß
fedjo
0 Punkte
Beantwortet von
Sorry für die Umstände, und danke fürs korrigieren @ fedjo!
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

zu dieser Aufgabenstellung fällt mir leider keine vernünftige Lösung ein.

Gruß
Rainer
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

probiere mal das folgende Makro aus:

Sub namen_zaehlen()
Dim zeile, ergzeile, zaehler As Long
Dim abtname As String

'Durchlauf in Spalte A
For zeile = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
If IsEmpty(Cells(zeile, 1)) = False Then

If zeile = 1 Then
ergzeile = zeile
abtname = Cells(zeile, 1)
Else
Cells(ergzeile, 7) = abtname
Cells(ergzeile, 8) = zaehler
zaehler = 0
ergzeile = zeile
abtname = Cells(zeile, 1)
End If

End If

If IsEmpty(Cells(zeile, 1)) = True And IsEmpty(Cells(zeile, 2)) = False Then
If Left(Cells(zeile, 2), 9) <> "Abteilung" Then zaehler = zaehler + 1
End If

Next zeile

Cells(ergzeile, 7) = abtname
Cells(ergzeile, 8) = zaehler

'Durchlauf in Spalte B
For zeile = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
If Left(Cells(zeile, 2), 9) = "Abteilung" Then

ergzeile = zeile
abtname = Cells(zeile, 2)
zaehler = 0


Do
zeile = zeile + 1
If IsEmpty(Cells(zeile, 3)) = False Then zaehler = zaehler + 1
Loop Until IsEmpty(Cells(zeile, 3)) = True

End If

Next zeile

Cells(ergzeile, 7) = abtname
Cells(ergzeile, 8) = zaehler

End Sub


Gruß

M.O.
...