Suppression colonne(s) si en ligne 2 Sous-Total = 0

  • Initiateur de la discussion Initiateur de la discussion CG2000
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CG2000

XLDnaute Occasionnel
Bonsoir le Forum, Bonsoir à Tous,

Pour nettoyer un tableau il m'est nécessaire de supprimer des colonnes qui en ligne 2 possède un sous-total = à 0
voir l'exemple joint pour plus de compréhention.

Pour ce faire avec la reprise d'un code de Myta je tente la suppression de ces dites colonnes :

Sub Supprimer_Colonne()

Dim Cellule As Range
For Each Cellule In Range("2:2")
If Cellule.Value = "0" Then
Cellule.EntireColumn.Delete
End If
Next Cellule
End Sub

Mais cette macro bloque à un moment elle supprime que quelques-unes mais pas toutes !!!!
Qu'aurais-je louper ?

Merci par avance de vôtre aide.
 

Pièces jointes

Re : Suppression colonne(s) si en ligne 2 Sous-Total = 0

EDIT: Desolé, j'avais proposé une solution mais elle ne convient pas. Celle qui suit devrait fonctionner.

Mais le probleme vient du fait que les adresses des colonnes changent à chaque fois que l'une d'entre elles est supprimée. Il faudrait que tu fasses un boucle en prenant en compte ce parametre, genre:

Code:
for i =1 to 32 ' a adapter au nombre de colonnes a lire

if cells (2,i).value="0" then

columns(i).Entirecolumn.delete

i=i-1

end if

next i
 
Dernière modification par un modérateur:
Re : Suppression colonne(s) si en ligne 2 Sous-Total = 0

Bonsoir CG2000,

Ta macro ne fonctionne pas correctement pour la simple raison que la boucle For Each ... Next balaie les cellules de la 1ère à la dernière. Si tu supprimes une cellule, la boucle continue sans revenir en arrière. Pour contrecarrer ce phénomène, il vaut mieux créer une boucle indicée du type :

Code:
For Lg = Range("B65536").End(xlUp).Row) To 1 Step - 1
  If Cellule.Value = "0" Then
    Cellule.EntireColumn.Delete
  End If
Next

Range("B65536").End(xlUp).Row) détermine le N° de la dernière cellule remplie dans la colonne B.

Espérant avoir répondu.

Cordialement.
 
Re : Suppression colonne(s) si en ligne 2 Sous-Total = 0

Bonjour, Papou-net, repcheks,

Malheureusement celà ne fonctionne pas.
Les supp de colonnes semble être plus difficile que celles des lignes.
Je suis convaincu qu'une solution VBA existe. Mais laquelle ?

Merci beaucoup et à bientôt.
Bonne journée.

CG2000
 
Dernière édition:
Re : Suppression colonne(s) si en ligne 2 Sous-Total = 0

Bonjour CG2000,

Zut, j'étais fatigué cette nuit
.
Voici ce que je voulais dire :

Code:
For Col = Range("IV2").End(xlToLeft).Column To 1 Step -1
  If Cells(2, Col).Value = 0 Then
    Cells(2, Col).EntireColumn.Delete
  End If
Next

Là je sais que ça marche, j'ai testé (sous excel2003).

Bonne journée.

Cordialement.
 
Re : Suppression colonne(s) si en ligne 2 Sous-Total = 0

bonjour le forum

excusez moi de deterrer les morts, mais j'ai essayé d'adapter ce code mes besoins me cela ne fonctionne pas.
sur la première ligne, a partir de la colonne M j'ai des dates.
je souhaiterais supprimer les colonnes entières dont la date serait inférieur à la date du jour moins 5 jours.

mes tentatives se trouves dictement sur la feuille.

au secours
 

Pièces jointes

Re : Suppression colonne(s) si en ligne 2 Sous-Total = 0

Bonjour yohinomura,

un truc comme ça à priori :

Code:
For col = Range("IV1").End(xlToLeft).Column To 13 Step -1
  If Cells(1, col).Value < hist Then
    Cells(1, col).EntireColumn.Delete Shift:=xlToLeft
  End If
Next
 
Re : Suppression colonne(s) si en ligne 2 Sous-Total = 0

Bonsoir le fil, Bonsoir le Forum,


Merci Papou-net, réponse et résultat parfait. Ta proposition fonctionne très bien sur mon exemple. Et merci de m'expliquer les pourquois et comments.
Bonne soirée.

tototiti2008, merci pour ton intervention. Curieux de tous fonctionnement en Excel et Vba je vais également décortiquer ta proposition à un autre problème de yohinomura.

A bientôt.

CG2000

PS : fontionne également avec 2007
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
909
Retour