Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Excel VBA: Problem mit Hierarchie in Makro

Forumthread: Excel VBA: Problem mit Hierarchie in Makro

Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 18:16:24
Ronald
Hallo zusammen,

ich brauche eure Hilfe. Eine KI hat dieses Makro für mich geschrieben und es funktioniert grundsätzlich sehr gut. Es gibt nur einen Fehler bei der Behandlung der Hierarchie:

Die oberste Hierarchie (z. B. 1-4-1) soll in Spalte O gesucht werden.

Wird der Begriff gefunden → der entsprechende Wert aus Tabelle1 (Spalte D) soll in IFW Art eingetragen werden.

Wird der Begriff nicht gefunden → in IFW Art soll "Nicht gefunden" stehen.

Untergeordnete Hierarchien (z. B. 1-4-1-1, 1-4-1-2) sollen immer leer bleiben.

Aktuell funktioniert das Makro soweit, aber wenn eine oberste Hierarchie nicht gefunden wird, wird der Fehler fälschlicherweise auf die untergeordneten Hierarchien übertragen.

Ziel:

Oberste Hierarchie, gefunden → IFW Art aus Tabelle1 übernehmen

Oberste Hierarchie, nicht gefunden → "Nicht gefunden"

Untergeordnete Hierarchie → immer leer

Danke für eure Unterstützung!





Sub GelbeZeilenMitFormelGesamtKG()
Dim wsQuelle As Worksheet
Dim wsZiel As Worksheet
Dim wsSuche As Worksheet
Dim letzteZeile As Long
Dim letzteSpalte As Long
Dim zielZeile As Long
Dim i As Long
Dim gelbFarbe As Long
Dim j As Long
Dim spalteGesamtKG As Long
Dim spalteIFW As Long
Dim suchWert As String
Dim gefFund As Range
Dim bindestriche As Long
Dim maxBreite As Double

' Aktives Tabellenblatt als Quelle
Set wsQuelle = ActiveSheet

' Suchblatt festlegen
On Error Resume Next
Set wsSuche = Worksheets("Tabelle1")
On Error GoTo 0
If wsSuche Is Nothing Then
MsgBox "Das Tabellenblatt 'Tabelle1' wurde nicht gefunden!", vbCritical
Exit Sub
End If

' Falls Zielblatt schon existiert → löschen
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("Gelbe Zeilen").Delete
Application.DisplayAlerts = True
On Error GoTo 0

' Neues Tabellenblatt erstellen
Set wsZiel = Worksheets.Add
wsZiel.Name = "Gelbe Zeilen"

' Gelb-Farbcode (Excel Standardgelb)
gelbFarbe = RGB(255, 255, 0)

' Letzte benutzte Zeile und Spalte im Quellblatt finden
letzteZeile = wsQuelle.Cells(wsQuelle.Rows.Count, "A").End(xlUp).Row
letzteSpalte = wsQuelle.Cells(1, wsQuelle.Columns.Count).End(xlToLeft).Column

' Überschrift kopieren
wsQuelle.Rows(1).Copy Destination:=wsZiel.Rows(1)

' Neue Spalten hinzufügen
spalteGesamtKG = letzteSpalte + 1
spalteIFW = letzteSpalte + 2
wsZiel.Cells(1, spalteGesamtKG).Value = "Gesamt KG"
wsZiel.Cells(1, spalteIFW).Value = "IFW Art."

' Format der neuen Überschriften
For j = spalteGesamtKG To spalteIFW
With wsZiel.Cells(1, j)
.Font.Name = wsZiel.Cells(1, 1).Font.Name
.Font.Size = wsZiel.Cells(1, 1).Font.Size
.Font.Bold = True
.Interior.ColorIndex = xlNone
.HorizontalAlignment = wsZiel.Cells(1, 1).HorizontalAlignment
.VerticalAlignment = wsZiel.Cells(1, 1).VerticalAlignment
End With
Next j

' Rahmen für Überschrift
wsZiel.Range(wsZiel.Cells(1, 1), wsZiel.Cells(1, spalteIFW)).Borders.LineStyle = xlContinuous

' Startzeile im Zielblatt
zielZeile = 2

' Gelbe Zeilen kopieren
For i = 2 To letzteZeile
If wsQuelle.Rows(i).Interior.Color = gelbFarbe Then
wsQuelle.Rows(i).Copy Destination:=wsZiel.Rows(zielZeile)
wsZiel.Range(wsZiel.Cells(zielZeile, 1), wsZiel.Cells(zielZeile, spalteIFW)).Borders.LineStyle = xlContinuous
wsZiel.Rows(zielZeile).Interior.ColorIndex = xlNone

' Formel setzen (Gesamt KG = J * U)
wsZiel.Cells(zielZeile, spalteGesamtKG).Formula = "=J" & zielZeile & "*U" & zielZeile

' IFW Art. nur für oberste Hierarchie
suchWert = Trim(wsZiel.Cells(zielZeile, "A").Value) ' Hierarchie aus Spalte A
bindestriche = Len(suchWert) - Len(Replace(suchWert, "-", ""))

' Oberste Ebene: z.B. 3 Bindestriche (1-1-1-1)
If bindestriche = 3 Then
If Trim(wsZiel.Cells(zielZeile, "O").Value) > "" Then
Set gefFund = wsSuche.Columns("K").Find(What:=Trim(wsZiel.Cells(zielZeile, "O").Value), _
LookIn:=xlValues, LookAt:=xlWhole)
If Not gefFund Is Nothing Then
wsZiel.Cells(zielZeile, spalteIFW).Value = wsSuche.Cells(gefFund.Row, "D").Value
Else
' Nur oberste Hierarchie bekommt "Nicht gefunden"
wsZiel.Cells(zielZeile, spalteIFW).Value = "Nicht gefunden"
End If
Else
wsZiel.Cells(zielZeile, spalteIFW).Value = "" ' Falls O leer
End If
Else
' Untergeordnete Ebenen bleiben immer leer
wsZiel.Cells(zielZeile, spalteIFW).Value = ""
End If

zielZeile = zielZeile + 1
End If
Next i

' Kein Zeilenumbruch + AutoFit
With wsZiel.Cells
.WrapText = False
End With
wsZiel.Columns.AutoFit

' Spalten H und S maximal so breit wie Spalte O
maxBreite = wsZiel.Columns("O").ColumnWidth
If wsZiel.Columns("H").ColumnWidth > maxBreite Then wsZiel.Columns("H").ColumnWidth = maxBreite
If wsZiel.Columns("S").ColumnWidth > maxBreite Then wsZiel.Columns("S").ColumnWidth = maxBreite

' Spalten ausblenden (wenn vorhanden)
On Error Resume Next
wsZiel.Columns("B").Hidden = True
wsZiel.Columns("I").Hidden = True
If wsZiel.Columns.Count >= 39 Then wsZiel.Columns("V:AM").Hidden = True
On Error GoTo 0

' Neues Blatt aktivieren
wsZiel.Activate

' Abschlussmeldung
MsgBox "Fertig! Gelbe Zeilen wurden kopiert (ohne Farbe)." & vbCrLf & _
"Spalten B, I und V:AM wurden ausgeblendet." & vbCrLf & _
"IFW Art.-Werte aus Tabelle1 (Spalte D) wurden ergänzt (nur oberste Hierarchie)." & vbCrLf & _
"Spalten H und S wurden auf maximale Breite von Spalte O angepasst.", vbInformation
End Sub
Anzeige

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 18:28:08
Onur
Und du glaubst, ohne die Datei dazu würde/könnte Jemand dir helfen ?
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 18:30:51
Ronald
Die Datei ist zu groß, deshalb konnte ich sie leider nicht hochladen :-(
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 18:32:40
Onur
Dann löschst du halt alles, was nix mit dem Problem zu tun hat oder erstellst so eine Beispiels-Datei.
Anzeige
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 18:34:56
Ronald
Gibt es eine andere Möglichkeit, die Datei hochzuladen, wenn sie zu groß ist?
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 19:01:32
Onur
Bei Dropbox (bis 1 GB für lau) hochladen und Link hier posten.
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 19:15:16
Ronald
Ich habe die Datei verkleinert(Tabelle1) und konnte sie dann hochladen. Interessant ist, dass es jetzt bei allen grün markierten Zellen funktioniert – aber bei der letzten, rot markierten Zelle nicht. Sehr merkwürdig

https://www.herber.de/bbs/user/179597.xlsm
Anzeige
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 19:35:36
Onur
"Die oberste Hierarchie (z. B. 1-4-1) soll in Spalte O gesucht werden" ??? In Spalte O steht nix mit 1-1-1 oder so - da steht die Artikelbezeichnunug.
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 20:03:00
Ronald
Eigentlich wird der Titel in Spalte O gesucht. Wenn dieser im Tabellenblatt Tabelle1 gefunden wird, dann soll als Ergebnis in Spalte AO der Wert aus Spalte D von Tabelle1 eingetragen werden – aber nur, wenn es sich in Spalte A (im Tabellenblatt Stückliste) um eine oberste Hierarchie handelt, zum Beispiel 1-1-1, und nicht um eine untergeordnete Hierarchie wie 1-1-1-1, 1-1-1-2 oder 1-1-1-3. Wenn der Begriff in Spalte O, der zu einer obersten Hierarchie gehört, nicht gefunden wird, soll in Spalte AO „Nicht gefunden“ stehen, während die untergeordneten Hierarchien (1-1-1-1, 1-1-1-2, 1-1-1-3) leer bleiben
Anzeige
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 20:40:05
Ronald
Deine Lösung ist sehr gut. Könntest du die Formel bitte so anpassen, dass bei untergeordneten Hierarchien kein Eintrag erfolgt und nur bei der obersten Hierarchie ‚Nicht gefunden‘ erscheint, wenn kein Treffer vorhanden ist?


nicht gefunden! 1-4-1
leer 1-4-1-1
leer 1-4-1-2
nicht gefunden! 1-5-1
leer 1-5-1-1
leer 1-5-1-3
240783 1-6-1
leer 1-6-1-1
leer 1-6-1-2
leer 1-6-1-3

Vielen Dank
Anzeige
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 20:50:24
Onur
Ist die Tabelle immer nach Spalte A sortiert wie in der Datei?
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 21:00:06
Ronald
ja
Anzeige
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 21:01:18
Onur
Ich habe dir die Lösung eben gepostet.
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 21:04:29
Onur
Meinen Button samt Makro kannst du löschen....
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 21:09:16
Ronald
wo?
Anzeige
AW: Excel VBA: Problem mit Hierarchie in Makro
10.11.2025 08:34:13
Ronald
Sorry, ich verstehe nicht. Hast du die Formeln geändert? Wo finde ich das? Kannst du sie mir schicken?
AW: Excel VBA: Problem mit Hierarchie in Makro
10.11.2025 09:22:28
Ronald
Super, vielen Dank für deine Hilfe!!!
Anzeige
Gerne !
10.11.2025 09:33:52
Onur
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 22:24:49
Onur
Userbild
AW: Excel VBA: Problem mit Hierarchie in Makro
09.11.2025 22:27:49
Onur
Wenn du die Datei meintest, und nicht das Button: um 19:59:02
Anzeige

Forumthreads zu verwandten Themen

Anzeige