Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer colonne si somme = 0

Kernoz

XLDnaute Occasionnel
Bonjour à tous !

Apres avoir batailler pendant 3 heures à chercher un bout de code, je me décide à venir faire appel aux pros

Je voudrais, dans un range donné, faire en sorte que lorsque la somme des valeurs de la colonne ( ici A11:A25 puis B11:B25 puis C11:C25 etc ... ) = 0 alors on supprime la colonne dans son intégralité.

j'y arrive avec les lignes mais pas les colonnes

Merci d'avance !
 

Pièces jointes

  • exorange.xlsm
    10.2 KB · Affichages: 41

Efgé

XLDnaute Barbatruc
Re : Supprimer colonne si somme = 0

Bonjour Kernoz

Si ton tableau est fixe :
VB:
Sub test()
With Sheets("Feuil1")
    .Range("$C$26:$H$26").FormulaLocal = "=LN(SOMME(C$11:C$25))"
    With .Rows("26:26")
        .Cells.SpecialCells(-4123, 16).EntireColumn.Delete
        .Clear
    End With
End With
End Sub

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Supprimer colonne si somme = 0

Bonsoir à tous , salut Efgé


Et comme cela ?
Code:
Sub a()
Dim i&
Application.ScreenUpdating = False
For i = 3 To Rows("10:10").SpecialCells(xlCellTypeConstants, 2).Columns.Count
If Application.Sum(Columns(i)) = 0 Then
Columns(i).EntireColumn.Delete
End If
Next
End Sub
 

Efgé

XLDnaute Barbatruc
Re : Supprimer colonne si somme = 0

Re Kernoz, Salut Staple

Peut être
VB:
For i = Rows("10:10").SpecialCells(xlCellTypeConstants, 2).Columns.Count To 3 Step -1
plutôt

Sinon pour moi:
VB:
Sub test()
Dim Lstrw&
With Sheets("Feuil1")
    Lstrw = .Cells(.Rows.Count, 3).End(3).Row + 1
    .Range("$C$" & Lstrw & ":$H$" & Lstrw).FormulaLocal = "=LN(SOMME(C$11:C$" & Lstrw - 1 & "))"
    With .Rows(Lstrw)
        .Cells.SpecialCells(-4123, 16).EntireColumn.Delete
        .Clear
    End With
End With
End Sub

Cordialement
 

Kernoz

XLDnaute Occasionnel
Re : Supprimer colonne si somme = 0

Merci pour vos réponses,

J'ai éssayé d'adapter le code à mon tableau mais malgré le fait qu'il n'y ait pas de message d'erreur ca ne fait pas le boulot :s

Voici le code :

Code:
Nvonglet.Select
Dim k As Long
With Nvonglet
    For k = Rows("10:10").SpecialCells(xlCellTypeConstants, 2).Columns.Count To 5 Step -1
        If Application.Sum(Columns(k)) = 0 Then Columns(k).EntireColumn.Delete

    Next k
End With
 

Si...

XLDnaute Barbatruc
Re : Supprimer colonne si somme = 0

salut

Staple, on a déjà vu ensemble un tel cas : les points manquants avec With. Il te manque quand même une colonne.

Avec un tableau, il n'est pas besoin de référencer la feuille. Voir l'exemple joint (T tableau voulu).
Code:
  For k = 2 To [T].Columns.Count
     If Application.Sum([T].Columns(k)) = 0 Then [T].Columns(k).Delete
  Next
 

Pièces jointes

  • SupprimeColonnes.xlsm
    24.6 KB · Affichages: 30

Staple1600

XLDnaute Barbatruc
Re : Supprimer colonne si somme = 0

Bonsoir à tous

Si...
Dans mon code, pour une fois, il y avait pas d'endives.
Alors j'ai pas songé à tripatouiller les endives de Kernoz.

J'ai juste pris une photo probatoire du bon fonctionnement de mon code.

Et je ne vois pas où il me manque une colonne ? (cf ma jolie photo)
 

Si...

XLDnaute Barbatruc
Re : Supprimer colonne si somme = 0

re
Alors j'ai pas songé à tripatouiller les endives de Kernoz.

J'ai juste pris une photo probatoire du bon fonctionnement de mon code.

Et je ne vois pas où il me manque une colonne ? (cf ma jolie photo)

Et je ne vois pas où il me manque une colonne ? (cf ma jolie photo)[/QUOTE]

As-tu regardé l'adaptation de ta recette avec les points dans mon joli fichier (que j'ai fait pour toi) ? Moi je vois encore une colonne "braisée". Mais dans le feu de l'action, je me suis sans doute trompé.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…