Problème avec une macro sous excel

Résolu
tibatcool Messages postés 33 Statut Membre -  
tibatcool Messages postés 33 Statut Membre -
Bonjour,
Je débute depuis peu à faire des macros sous excel et je cherche depuis plusieures heures sans succès a résoudre mon problème avec ma macro, je souhaiterai cacher les lignes de mon tableau qui n'ont pas de cellules coloriées en une couleur. J'y arrive pour une colonne mais j'ai un problème sur plusieur colonne.

Ma macro marche pour une colonne je vous la met ci dessous :

Dim Y As Range

>For Each Y In Range("G4:G10938") 'test num de dossier
>If Y.Interior.ColorIndex = 3 Then
> Y.EntireRow.Hidden = True 'False pour cacher
>End If
>Next

Merci d'avance.
Configuration: Windows XP Internet Explorer 7.0

18 réponses

  1. moiced59 Messages postés 1161 Statut Membre 60
     
    moi je fais com ca et ca marche:

    J = 7 'colonne
    I = 4 'ligne
    do until J = 10
    do until i = 10938
    If Cells(I, J).Interior.ColorIndex = 3 Then
    Cells(I, J).EntireRow.Interior.ColorIndex = 4
    Cells(I, J).EntireRow.Hidden = False 'True pour cacher
    End If
    i = i+1
    loop
    i= 2
    j = j+1
    loop
    1
  2. informatifien Messages postés 781 Statut Membre 92
     
    salut,

    je suis pas un super balaise mais ne faut-il pas dire next y au lieu de juste next pour que ça passe à la colonne suivante ?
    0
  3. tibatcool Messages postés 33 Statut Membre 5
     
    Merci de la rapidité de ta réponse mais ça ne change rien à mon tableau
    Désolé :) .
    0
  4. informatifien Messages postés 781 Statut Membre 92
     
    alors mes competence ne peuvent pas plus pour toi enfin si je viens de percuter que j'utilise pour les boucles for next cette synthaxe:

    For y = 1 to 10 ' de ou tu veux à tu veux biensur si tu precise rien le pas est de 1+1 si tu ajoute par exemple step 3 le pas sera de 3 en 3If Y.Interior.ColorIndex = 3 Then
    Y.EntireRow.Hidden = True 'False pour cacher
    End If
    Next y
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tibatcool Messages postés 33 Statut Membre 5
     
    oui je connais cette forme mais je n'y arrive pas trop avec donc je suis partit sur ce que j'ai fais. En fait je voudrais mettre un "and" dans ma boucle "for" pour passer d'une colonne a une autre mais je n'y arrive pas.
    0
  7. informatifien Messages postés 781 Statut Membre 92
     
    arf je suis désolé je ne vois pas comment faire j'ai bidouill" pas mal de truc mais un peu à l'arrache . . ..quelqu'un devrait pouvoir te solutionné ça .. .au pire demain matin fais un petit up sur ton post
    0
  8. moiced59 Messages postés 1161 Statut Membre 60
     
    bonjour

    >For Each Y In Range("G4:G10938") 'test num de dossier
    >If Y.Interior.ColorIndex = 3 Then
    > Y.EntireRow.Hidden = True 'False pour cacher
    >End If
    >Next

    si tu faisais ca:

    i = 4
    ii= 7
    for ii = 7 to 10 'met ce que tu veux
    for i =4 to 10000 ' met ce que tu veux
    >If cells(i,ii).Interior.ColorIndex = 3 Then
    > cells(i,ii).EntireRow.Hidden = True 'False pour cacher
    i = i+1
    >End If
    loop

    ii = ii +1
    loop
    0
  9. tibatcool Messages postés 33 Statut Membre 5
     
    comment on fait un up ? je vien juste de me créer un compte je connais pas encore tout :)
    merci
    0
  10. informatifien Messages postés 781 Statut Membre 92
     
    ben demain matin tu reviens sur ton poste et ut ecrit ou juste up ou bonjour, toujours personne pour m'aider? et ca remettra ton post en haut de la liste ;)
    tu y vera certainement un des mien dailleur lol car pas encore solutionné sur du VBA aussi beinvenue au club des novices ;)
    0
  11. moiced59 Messages postés 1161 Statut Membre 60
     
    tu as testé?
    0
  12. tibatcool Messages postés 33 Statut Membre 5
     
    Je comprend ce que tu m'as écris je l'ai tester en le modifiant car il n'est pas tout a fait juste mais je remarque aucun changement je vais faire un test sur un petit fichier excel test je te tiens au courant
    0
  13. moiced59 Messages postés 1161 Statut Membre 60
     
    tu as modifié koi?
    0
  14. tibatcool Messages postés 33 Statut Membre 5
     
    Voila les transformations (je pouvais pas compiler sinon) :

    For J = 7 To 10 'colonne
    For I = 4 To 10938 'ligne
    If Cells(I, J).Interior.ColorIndex = 3 Then
    Cells(I, J).EntireRow.Interior.ColorIndex = 4
    Cells(I, J).EntireRow.Hidden = False 'True pour cacher
    End If
    Next
    Next
    0
  15. tibatcool Messages postés 33 Statut Membre 5
     
    bonjour, toujours personne pour m'aider ?
    0
  16. tibatcool Messages postés 33 Statut Membre 5
     
    Merci moiced59, après une ou deux modif perso ça marche.
    0
  17. moiced59 Messages postés 1161 Statut Membre 60
     
    tu peux mettre ton code peut etre qu il pourra servir a quelqu un
    merci
    0
  18. tibatcool Messages postés 33 Statut Membre 5
     
    J'ai planté Excel mais dès que je l'ai récup je le met, don't worry ;)
    0
  19. tibatcool Messages postés 33 Statut Membre 5
     
    Voici le morceau de ma macro : en fait en retournant le problème dans tout les sens je ferai ça en deux fois

    J = 14 'colonne
    Do Until J = 53
    I = 3 'ligne
    Do Until I = 10941
    If Cells(I, J).Interior.ColorIndex = 5 Then
    Cells(I, J) = ""
    Cells(I, J).Interior.ColorIndex = 2
    End If
    I = I + 1
    Loop
    J = J + 1
    Loop
    0