Supprimer une colonne si toutes les valeurs < 10000
Résolu/Fermé
A voir également:
- Supprimer une colonne si toutes les valeurs < 10000
- Supprimer une page word - Guide
- Déplacer une colonne excel - Guide
- Supprimer compte instagram - Guide
- Formule somme excel colonne - Guide
- Trier colonne excel - Guide
6 réponses
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 424
22 avril 2016 à 17:47
22 avril 2016 à 17:47
Bonjour
tu modifies les constantes en début de code
Cdlmnt
Const lideb = 2
Const codeb = 1
Const cofin = 11
Const mini = 10000
Public Sub SupprimeColonnes()
Dim lifin As Long, co As Long, nblico As Long, plage As Range
Application.ScreenUpdating = False
For co = cofin To codeb Step -1
lifin = Cells(Rows.Count, co).End(xlUp).Row
Set plage = Range(Cells(lideb, co), Cells(lifin, co))
nblico = plage.Count
If Application.WorksheetFunction.CountIf(plage, "<" & mini) = nblico Then Columns(co).Delete
Next co
Application.ScreenUpdating = True
End Sub
tu modifies les constantes en début de code
Cdlmnt
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 424
Modifié par ccm81 le 25/04/2016 à 11:30
Modifié par ccm81 le 25/04/2016 à 11:30
Peut être ici, où tout doit être dans la même ligne
If Application.WorksheetFunction.CountIf(plage, "<" & mini) = nblico Then Columns(co).Delete
Cdlmnt
If Application.WorksheetFunction.CountIf(plage, "<" & mini) = nblico Then Columns(co).Delete
Cdlmnt
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 424
25 avril 2016 à 14:20
25 avril 2016 à 14:20
1. As tu lancé l'exacution de la macro
2. As tu modifé les valeurs des 4 constantes en début de code selon ta configuration
Const lideb = 2 (première ligne à tester)
Const codeb = 1 (premiere colonne à traiter)
Const cofin = 11 (dernière colonne à traiter)
Const mini = 10000 (seuil pour le test)
Cdlmnt
2. As tu modifé les valeurs des 4 constantes en début de code selon ta configuration
Const lideb = 2 (première ligne à tester)
Const codeb = 1 (premiere colonne à traiter)
Const cofin = 11 (dernière colonne à traiter)
Const mini = 10000 (seuil pour le test)
Cdlmnt
je l'ai bien exécuté en ayant changé les constantes, voilà ce que ça donne:
Const lideb = 1
Const codeb = 1
Const cofin = 50
Const mini = 10000
Public Sub SupprimeColonnes()
Dim lifin As Long, co As Long, nblico As Long, plage As Range
Application.ScreenUpdating = False
For co = cofin To codeb Step -1
lifin = Cells(Rows.Count, co).End(xlUp).Row
Set plage = Range(Cells(lideb, co), Cells(lifin, co))
nblico = plage.Count
If Application.WorksheetFunction.CountIf(plage, "<" & mini) = nblico Then Columns(co).Delete
Next co
Application.ScreenUpdating = True
End Sub
Cdlt
Const lideb = 1
Const codeb = 1
Const cofin = 50
Const mini = 10000
Public Sub SupprimeColonnes()
Dim lifin As Long, co As Long, nblico As Long, plage As Range
Application.ScreenUpdating = False
For co = cofin To codeb Step -1
lifin = Cells(Rows.Count, co).End(xlUp).Row
Set plage = Range(Cells(lideb, co), Cells(lifin, co))
nblico = plage.Count
If Application.WorksheetFunction.CountIf(plage, "<" & mini) = nblico Then Columns(co).Delete
Next co
Application.ScreenUpdating = True
End Sub
Cdlt
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 424
25 avril 2016 à 15:37
25 avril 2016 à 15:37
1. Et ???
2. Si tu as en ligne 1 des titres, ça ne fonctionnera qu'avec lideb = 2
3. un exemple avec 50 colonnes sans ligne de titre (Ctrl+k pour lancer)
http://www.cjoint.com/c/FDznJ1Zrq0Q
Cdlmnt
2. Si tu as en ligne 1 des titres, ça ne fonctionnera qu'avec lideb = 2
3. un exemple avec 50 colonnes sans ligne de titre (Ctrl+k pour lancer)
http://www.cjoint.com/c/FDznJ1Zrq0Q
Cdlmnt
Ton programme marche, le mien aussi :)
Et je sais pourquoi le mien ne fontionnait pas; j'ai des données qui s'étendent sur une année voire plus et Il y avait 3 lignes dont les cellules étaitent vides (que je souhaiterais remplir après l'exécution du programme).
est ce que le programme peut s'exécuter alors qu'il y des cellules vides (qu'il les prenne pour des zéros) ??
En tout cas merci infiniment d'avoir donné de ton temps ;)
Smile :)
Et je sais pourquoi le mien ne fontionnait pas; j'ai des données qui s'étendent sur une année voire plus et Il y avait 3 lignes dont les cellules étaitent vides (que je souhaiterais remplir après l'exécution du programme).
est ce que le programme peut s'exécuter alors qu'il y des cellules vides (qu'il les prenne pour des zéros) ??
En tout cas merci infiniment d'avoir donné de ton temps ;)
Smile :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 424
Modifié par ccm81 le 25/04/2016 à 16:40
Modifié par ccm81 le 25/04/2016 à 16:40
Modifier cette ligne (tout sur une ligne)
If Application.WorksheetFunction.CountIf(plage, "<" & mini) + Application.WorksheetFunction.CountIf(plage, "=") = nblico Then Columns(co).Delete
Après réflexion (que je souhaiterais remplir après l'exécution du programme).
si elles sont supprimées comment les rempliras tu ?
Cdlmnt
If Application.WorksheetFunction.CountIf(plage, "<" & mini) + Application.WorksheetFunction.CountIf(plage, "=") = nblico Then Columns(co).Delete
Après réflexion (que je souhaiterais remplir après l'exécution du programme).
si elles sont supprimées comment les rempliras tu ?
Cdlmnt
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 424
25 avril 2016 à 17:22
25 avril 2016 à 17:22
OK
Donc ça fonctionne comme tu veux
Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)
Cdlmnt
Donc ça fonctionne comme tu veux
Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)
Cdlmnt
25 avril 2016 à 10:16
Ca m'a mis un message d'erreur de compilation type: Next sans for alors qu'il y a un for..
Cdlt