Supprimer lignes de coulurs

Résolu/Fermé
gambleway Messages postés 9 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 29 février 2016 - 26 févr. 2016 à 05:17
 gambleway - 29 févr. 2016 à 04:17
Bonjour la communauté,

Débutant en VBA je viens profiter de l'éxpérience des professionnels.
J'ai codé, hier une macro permettant de colorer certaines cellules des lignes en fonction des critères.
J'aimerai aujourd'hui, supprimer les cellules de couleurs violettes (7) ainsi que l'ensebmle de la ligne ou elle se situe en gardant la premiere colonne (colonne A ).
Pour l'instant, le programme ne fontionne pas. Si je remplace DeleteEntireRow par ClearContents, J'arrive à supprimer le contenu des cellules violettes de la première ligne mais pas plus...
Si vous avez des idées ou suggestions pour que je progesse, je suis preneur.

Merci à vous.

Sub Erase_resigned_People()

Dim Number_Resigned As Integer
Number_Resigned = 0
Dim nb_of_columns As Integer
nb_of_columns = 0



While Len(Range("B20").Offset(Number_Resigned, 0).Value) <> 0
Number_Resigned = Number_Resigned + 1
Wend


For nb_of_columns = 0 To 12

' Supprimer les cellules viollettes
If Len(Range("B20").Offset(Number_Resigned, nb_of_columns).Value) <> 0 Then

If Range("B20").Offset(Number_Resigned, nb_of_columns).Interior.ColorIndex = 7 Then
Range("B20").Offset(Number_Resigned, nb_of_columns).DeleteEntireRow
End If

End If

Next



End Sub
A voir également:

1 réponse

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
26 févr. 2016 à 07:11
Bonjour,

Pas évident de comprendre la finalité !
A priori, ton code balaye la colonne B depuis la cellule B20, recherche la première cellule vide puis balaye 13 cellules de cette ligne (colonnes B à N), vérifie si les cellules renseignées ont une couleur violette et supprime la ligne si c'est le cas.
En résumé, sur la ligne Number_Resigned, si une cellule des 13 colonnes B à N est violette, on supprime la ligne entière. C'est bien ça ?

A+
0
gambleway Messages postés 9 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 29 février 2016
26 févr. 2016 à 07:20
ll ballait mes cellules et recherche celles qui sont vides qui sont inutiles . Ensuite il supprime la ligne entière si il detecte une cellule violette .

A+
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > gambleway Messages postés 9 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 29 février 2016
26 févr. 2016 à 07:28
Ce que je veux te dire, c'est que dès l'instant où une cellule violette a été trouvée, tu peux sortir de la procédure puisque la ligne entière est supprimée.

A+
0
gambleway Messages postés 9 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 29 février 2016
26 févr. 2016 à 08:10
Donc tu me conseilles de ne faire qu'une boucle et de me concentrer que sur une seule colonne au lieu du tableau. C'est bien ca?
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > gambleway Messages postés 9 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 29 février 2016
26 févr. 2016 à 08:30
Non, je voudrais que tu m'expliques ce que tu attends de ton programme.
Avec un fichier exemple et quelques explications, ce serait plus simple.

Pour joindre un fichier : https://www.cjoint.com/

A+
0
gambleway > Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016
29 févr. 2016 à 04:17
Bonjour Gyrus,

J'ai finalement pu résoudre mon problème. Je serai plus expicite lorsque je poserai une question.
Merci à toi.

A+
0