Gestion niveaux de nomenclature

Bonjour à tous.

J'ai une nomenclature décomposée à plusieurs niveaux.

Le niveau le plus haut étant le niveau 0 et le plus bas le niveau 5.

Je souhaite supprimer la ligne si le niveau contient une décomposition.

Ce traitement devra avoir lieu qu'une fois bien sûr.

Tout est expliqué dans le fichier joint.

Merci a tous

Zyglur

310nomenclature.zip (16.35 Ko)

Bonsoir,

regarde si c'est ok.

Sub suppLig()
    Dim lig As Long, col As Long
    lig = 2
    Application.ScreenUpdating = False
    Do While Cells(lig, 8) <> ""
        For col = 1 To 5
            If Cells(lig, col) <> "" Then
                If Cells(lig + 1, col + 1) <> "" Then
                    Rows(lig).Delete
                Else
                    lig = lig + 1
                End If
                Exit For
            End If
        Next col
    Loop
    Application.ScreenUpdating = True
End Sub

eric

227classeur1.zip (19.77 Ko)

Eriiic,

Je te remercie beaucoup. C'est exactement le résultat souhaité.

Bonne soirée.

Zyglur

Bonsoir,

Une possibilité /

Le code :

Sub Suppr_Niv_Inf()
Dim DerLig As Long
Dim I As Long
Application.ScreenUpdating = False
DerLig = Cells(Rows.Count, "H").End(xlUp).Row
For I = 1 To 6
    With Range(Cells(2, I), Cells(DerLig, I))
        If Application.CountA(.Value) > 0 Then .TextToColumns Destination:=Cells(2, I)
    End With
Next I
Columns("A:A").Insert Shift:=xlToRight
With Range("A2")
    .FormulaR1C1 = "=SUM(RC[1]:RC[6])-SUM(R[+1]C[1]:R[+1]C[6])"
    .AutoFill Destination:=.Resize(DerLig - 1), Type:=xlFillDefault
    .Resize(DerLig - 1).Value = .Resize(DerLig - 1).Value
End With
For I = DerLig To 2 Step -1
    If Cells(I, 1).Value = -1 Then
        Rows(I).Delete
    End If
Next I
Columns(1).Delete
End Sub

Le fichier :

175nomenclature-v1.zip (19.83 Ko)

Bonne nuit

Bonjour Cousinhub,

J'ai pas pu mettre en pratique la macro car elle bloque dans la 1ere boucle.

Merci quand meme.

Zyglur

Rechercher des sujets similaires à "gestion niveaux nomenclature"