Masquer toutes les lignes dont la valeur est de couleur noire

cs_garbit Messages postés 7 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 12 juin 2008 - 12 juin 2008 à 18:12
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 12 juin 2008 à 23:23
 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>





Salut à tous, j’ai très envie d’apprendre à programmer en VBA (je fais de la finance donc très utile pour moi).





Je me dis que le meilleur moyen d’apprendre est sans doute de l’utiliser sur un cas concret.





Voici ce que je cherche à faire : je veux masquer toutes les lignes d’un tableau dont les valeurs sont de couleur noire et rouge en appuyant sur un bouton.





 





Si quelqu'un peut m’ecrire le code, je pourrais voir step by step ce qu’il se passe et comprendre ainsi la syntaxe.





 





Merci d’avance !





 




Ben

14 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2008 à 20:37
@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
cs_garbit Messages postés 7 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 12 juin 2008
12 juin 2008 à 20:42
Pardon ?
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2008 à 20:47
salut,

désolé, je suis au taf avec Internet Explorer 6 et le cache plante (et donc message vide)

laisse moi un moment, je recommence mon message

++
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2008 à 20:54
' Admettons que tes valeurs colorés se trouvent dans la colonne C (donc la 3eme) :

Dim i As Integer
' ici on déclare une variable i, de type Entier (nombres)

For i = 1 To Range("C1").End(xlDown).Row
' là on amorce une boucle, donc i vaudra 1, puis 2, puis 3, _
etc.. jusqu'à la derniere ligne de la colonne C

If Range("C" & i).Font.ColorIndex = 3 Then
' Si la couleur de la police de la cellule C1, puis C2, etc.. _
est rouge, alors :

Rows(i).Hidden = True
' on cache la ligne i (donc celle en cours dans la boucle)
' met False pour la réafficher

End If

Next i

@++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2008 à 20:55
Pense aussi à t'enregistrer avec l'enregistreur de macro, ça aide pas mal, même si le code n'est pas optimisé ;)
0
cs_garbit Messages postés 7 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 12 juin 2008
12 juin 2008 à 21:02
Merci bcp ! j'ai essayé mais malheureusement il ne se passe rien...
Bizarre non ?
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2008 à 21:22
quest ce qui est noir et rouge ?
La couleur d'écriture ou la couleur de fond ?

dans quelle colonne se trouvent ces valeurs colorés ?
0
cs_garbit Messages postés 7 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 12 juin 2008
12 juin 2008 à 21:24
La couleur de la police est noire ou rouge. Les valeurs sont dans la colonne C à partir de la ligne 7.
0
cs_garbit Messages postés 7 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 12 juin 2008
12 juin 2008 à 21:31
Bizarrement la boucle redémarre après la ligne 6.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2008 à 21:33
Dim i As Integer
' ici on déclare une variable i, de type Entier (nombres)

For i = 7 To Range("C7").End(xlDown).Row

If Range("C" & i).Font.ColorIndex 3 or Range("C" & i).Font.ColorIndex 0 Then
' Si la couleur de la police de la cellule C1, puis C2, etc.. _
est rouge, alors :

Rows(i).Hidden = True
' on cache la ligne i (donc celle en cours dans la boucle)
' met False pour la réafficher

End If

Next i
0
cs_garbit Messages postés 7 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 12 juin 2008
12 juin 2008 à 21:41
Nickel ca marche!
Autre chose : si la cellule est vide, puis je faire la meme chose ? "si la cellule est vide, alors masquer la ligne".

Autre chose, est là je m'arrête : comment créer une macro qui réaffiche toutes les lignes ?

Merci c'est génial j'adore la programmation vba !
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2008 à 21:52
If Range("C" & i).Font.ColorIndex = 3 or Range("C" & i).Font.ColorIndex = 0 or Range("C" & i).Value = vbNullString Then


pour réafficher toutes les lignes :
Rows.Hidden = False

++
0
cs_garbit Messages postés 7 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 12 juin 2008
12 juin 2008 à 23:14
C'est top merci!
En plus j'ai compris le code. Peux tu me conseiller un site ou un livre pour apprendre facilement le vba stp ?

Merci
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2008 à 23:23
No soucy ;)

un livre que j'ai acheté il y a 3 ans : VBA pour Excel 2003, de John WalkenBach, édition Eyrolles.
Je le trouve au top, j'ai énormément appris grâce à cet ouvrage, et c'est progressif, tu apprends les bases, pour finir sur du plus complexe.
Ensuite, c'est à force de manipuler que ton expérience grandira.

Ensuite, niveau sites, Codes-Sources et développez.net sont parfait.

Pis n'hésite pas à regarder mes sources et snippets (fonctions / bouts de codes), mes sources du début étant surtout ancrées sur le VBA, pis mes snippets sont principalement en VBA :

Sources :
http://www.vbfrance.com/codes_auteur/MORTALINO/647037.aspx

Snippets :
http://www.codyx.org/snip_auteur_mortalino_647037.aspx

Et un site que j'aime beaucoup pour de l'optimisation, c'est le site de notre ami Us_30 :
http://fordom.free.fr/

Allez, un dernier, pour découvrir l'environnement VBA Excel, mon Tuto :
http://www.vbfrance.com/tutoriaux/DEBUTANTS-DECOUVRIR-ENVIRONNEMENT-VISUAL-BASIC-SOUS-MICROSOFT-EXCEL_646.aspx

En cas de besoins d'aide, n'hésite pas à poster ici, nombreux sont ceux qui se débrouillent très bien en VBA et t'aideront volontier


Bonne continuation, et bon courage !

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
Rejoignez-nous