Boujours à tous
J'ai un tableau avec dedans des chiffres allant de 0 à 4
Je voudrais à l'aide de VBA, si il y a un 0 dans une case, que ca me supprime la colonne qui contient ce 0.
En esperant avoir été essez clair
cordialement
Boujours à tous
J'ai un tableau avec dedans des chiffres allant de 0 à 4
Je voudrais à l'aide de VBA, si il y a un 0 dans une case, que ca me supprime la colonne qui contient ce 0.
En esperant avoir été essez clair
cordialement
Bonjour,
Tu peux tenter quelque chose du genre :
J'ai testé, ça marche et c'est plutôt basique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 For i = 1 To 500 'disons les 500 premières lignes For j = 1 To 20 'disons les 20 premières colonnes If Cells(i, j).Value = "0" Then Cells(i, j).EntireColumn.Delete End If Next Next
Bonjour à tous,
autre solution à adapter
bonne journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub zero() Dim plage As Range, dl As Integer, chzero As Range dl = Range("a" & Rows.Count).End(xlUp).Row Set plage = Range("a2:g" & dl) Set chzero = plage.Find(0) If Not chzero Is Nothing Then Cells(1, chzero.Column).EntireColumn.Delete End If End Sub
Cordialement,
Dom
_____________________________________________
Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
pensez à cliquer sur :resolu: si votre problème l'est
Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)
C'est sûr que le Find est plus rapide au niveau du traitement (sur beaucoup de lignes + colonnes) et la syntaxe à peine plus compliquée![]()
Merci Dead,
mais ma solution s'arretera sur le premier zero venu, comme je ne connais pas la finalité de hotsauce, meme avec ma proposition il faudra peut-etre avoir recours à une boucle
bonne journée
Cordialement,
Dom
_____________________________________________
Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
pensez à cliquer sur :resolu: si votre problème l'est
Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)
Bonjour
Si je peux me permettre une remarque...la proposition de casefayere ne prend pas en compte le cas ou deux colonnes contigues contiennent un zéro, il faudra alors décrémenter la boucle de 1. (ou la commencer par le bas avec un 'step-1')
Je me permets car j'ai eu le soucis sur un énorme fichier et avant que je me rende compte que je n'avais pas bien 'nettoyé' => énorme perte de temps.
A+
Edit: un exemple de code avec step-1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 DerLigne = Range("a65536").End(xlUp).Row DerCol = Range("iv1").End(xlToLeft).Column For i = DerLigne To 1 Step -1 For j = DerCol To 1 Step -1 If Cells(i, j).Value = "0" Then Cells(i, j).EntireColumn.Delete End If Next Next
En fait moi j'ai besoin que le fichier analyse jusqu'a la ligne 12 et jusqu'a la colonne 30.
Et il ne doit pas s'arreter au 1er 0 rencontré.
cordialement
Partager