Suppression de colonnes vides
Résolu
padbollevrai
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
padbollevrai Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
padbollevrai Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
Bonjour !
J'ouvre un nouveau sujet car malheureusement je n'ai pas trouvé d'explication ou de solution claire quand à mon problème.
En clair, j'ai un tableau avec les 3 premières lignes de titres, puis des colonnes de valeurs en dessous. Si les colonnes dont remplies de 0, j'aimerais supprimer la colonne entière.
J'ai trouvé deux manières de faire, que j'ai essayées, mais sans succès car j'ai visiblement un conflit de fonction ou d'objet.
J'ai essayé :
ainsi que:
Dans ces deux cas, soit il ne se passe rien, soit j'ai "propriété ou méthode non gérée par cet objet".
Pour info, ces deux programmes ont été trouvés sur ce forum, et semblaient fonctionner pour les personnes concernées... J'ai un programme quasi similaire qui supprime des lignes vides, il marche au poil !
Pouvez-vous m'aider ?
Merci !
J'ouvre un nouveau sujet car malheureusement je n'ai pas trouvé d'explication ou de solution claire quand à mon problème.
En clair, j'ai un tableau avec les 3 premières lignes de titres, puis des colonnes de valeurs en dessous. Si les colonnes dont remplies de 0, j'aimerais supprimer la colonne entière.
J'ai trouvé deux manières de faire, que j'ai essayées, mais sans succès car j'ai visiblement un conflit de fonction ou d'objet.
J'ai essayé :
Sub delete() Dim j as Integer For j = 20 to 1 step -1 Worksheets("OUTPUT").Cells(4, j).Select If ActiveCell.Value = 0 then ActiveCell.EntiereColumn.Delete 'et non pas EntiereRow Next j End Sub
ainsi que:
Sub delete() Dim j As Integer For j = 20 To 1 Step -1 If Cells(65536, j).End(xlUp).Row = 1 Then Cells(1,j).EntireColumn.Delete Next j End Sub
Dans ces deux cas, soit il ne se passe rien, soit j'ai "propriété ou méthode non gérée par cet objet".
Pour info, ces deux programmes ont été trouvés sur ce forum, et semblaient fonctionner pour les personnes concernées... J'ai un programme quasi similaire qui supprime des lignes vides, il marche au poil !
Pouvez-vous m'aider ?
Merci !
A voir également:
- Suppression de colonnes vides
- Forcer suppression fichier - Guide
- Comment faire des colonnes sur word - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Suppression compte gmail - Guide
- Comment supprimer les pages vides sur word - Guide
5 réponses
Bonjour,
ces codes marchent tres bien, le premier suppression colonne(s) et le deuxieme suppression d'une ligne des qu'une cellule de la ligne est egale a zero (ai ajouter une sortie de la boucle)
petite erreur d'ecriture:
ces codes marchent tres bien, le premier suppression colonne(s) et le deuxieme suppression d'une ligne des qu'une cellule de la ligne est egale a zero (ai ajouter une sortie de la boucle)
Sub delete_col()
Dim j As Integer
With Worksheets("feuil1")
For j = 20 To 1 Step -1
If .Cells(65536, j).End(xlUp).Row = 1 Then .Cells(1, j).EntireColumn.delete
Next j
End With
End Sub
petite erreur d'ecriture:
If ActiveCell.Value = 0 then ActiveCell.EntiereRow.Delete
Sub delete_une_ligne()
Dim j As Integer
With Worksheets("feuil1")
For j = 20 To 1 Step -1
If .Cells(4, j) = 0 Then .Cells(4, j).EntireRow.delete
Exit For
Next j
End With
End Sub
Je viens de m'apercevoir que je m'etais trompé en écrivant le premier programme, je voulais dire :
If ActiveCell.Value = 0 then ActiveCell.EntiereColumn.Delete
et non pas "EntiereRow".
En bref: Je veux supprimer des COLONNES, et visiblement ces programmes trouvés ça et là sont bidons, car ils conviennent pour les lignes...
J'ai testé votre premier programme de suppression de colonnes: rien ne se passe, cela de detecte pas les cellules vides. Pour info, les 3 premières lignes sont toujours remplies, meme si le reste est vide, c'est peut-être ça qui gene la détection.
J'ai testé votre deuxième en remplacant "EntiereRow" par "EntiereColumn", encore le meme message d'erreur...
Pour info, xlUp renvoit -4162. Je ne sais pas à quoi ça correspond, mais au cas ou, je n'ai que 1669 lignes.
En bref: Comment supprimer des colonnes remplies de 0, malgré qu'il y ait des titres en haut des colonnes ?
Merci
If ActiveCell.Value = 0 then ActiveCell.EntiereColumn.Delete
et non pas "EntiereRow".
En bref: Je veux supprimer des COLONNES, et visiblement ces programmes trouvés ça et là sont bidons, car ils conviennent pour les lignes...
J'ai testé votre premier programme de suppression de colonnes: rien ne se passe, cela de detecte pas les cellules vides. Pour info, les 3 premières lignes sont toujours remplies, meme si le reste est vide, c'est peut-être ça qui gene la détection.
J'ai testé votre deuxième en remplacant "EntiereRow" par "EntiereColumn", encore le meme message d'erreur...
Pour info, xlUp renvoit -4162. Je ne sais pas à quoi ça correspond, mais au cas ou, je n'ai que 1669 lignes.
En bref: Comment supprimer des colonnes remplies de 0, malgré qu'il y ait des titres en haut des colonnes ?
Merci
En fait, la phrase "Cells(4, j).EntiereRow.Delete" ne fonctionne pas.
EntiereRow.Delete ne marche pas avec Cells, mais avec Range. Or, avec Range, je ne peux pas faire varier le chiffre de ma colonne (A, B, C...) avec ma variable K.
J'ai essayé:
Range(Cells(4, j), [Cells(4, j)]).EntiereRow.Delete
Toujours pas...
Des idées ?
EntiereRow.Delete ne marche pas avec Cells, mais avec Range. Or, avec Range, je ne peux pas faire varier le chiffre de ma colonne (A, B, C...) avec ma variable K.
J'ai essayé:
Range(Cells(4, j), [Cells(4, j)]).EntiereRow.Delete
Toujours pas...
Des idées ?
Re,
ce code marche tres bien pour supprimer des colonnes avec seulement une entete en ligne 1, si vous avez 3 lignes d'entetes mettez 3 au lieu de 1
Range(Cells(4, j), [Cells(4, j)]).EntiereRow.Deletec'est EntireRow !!!!! mais ca supprime des lignes pas des colonnes
ce code marche tres bien pour supprimer des colonnes avec seulement une entete en ligne 1, si vous avez 3 lignes d'entetes mettez 3 au lieu de 1
Sub delete_col()
Dim j As Integer
With Worksheets("feuil1")
For j = 20 To 1 Step -1
If .Cells(65536, j).End(xlUp).Row = 1 Then .Cells(1, j).EntireColumn.Delete
Next j
End With
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Juste "entiere" au lieu de "Entire" et ca plombe tout...
Au moins, le code marche (le deuxième), je n'y touche plus !
Voici le code pour ceux que ça intéresse:
Merci à toi !
Au moins, le code marche (le deuxième), je n'y touche plus !
Voici le code pour ceux que ça intéresse:
Sub Delete_colonne() Application.ScreenUpdating = False Dim j As Integer With Worksheets("OUTPUT") For j = 20 to 1 step -1 If .Cells(4, j) = 0 Then Cells(4, j).EntireColumn.Delete Next j End With End Sub
Merci à toi !