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
 

Staple1600

XLDnaute Barbatruc
Re : Supprimer colonne si somme = 0

Bonsoir à tous

Kernoz
Pourtant ma macro fonctionne sur ton fichier exemple.
La preuve en image ;)
01TESTOK.jpg
 

Si...

XLDnaute Barbatruc
Re : Supprimer colonne si somme = 0

salut

Staple:D, 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é.
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia