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é.
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
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
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
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
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é.