IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] Mise en forme conditionnelle et recherche de format


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [VBA-E] Mise en forme conditionnelle et recherche de format
    Bonjour,

    J'inscrits des individus dans une liste (noms, prénoms ... pays ...).
    * Je désire mettre une mise en forme conditonnelle sur les pays (bcp de possibilité : 28) en feuil2!D
    * Je définis une table de référence avec des couleurs par pays (Feuil1!B41:B68)

    Voici le code qui pour chaque nouvelle ligne, va colorer la case pays en fonction de la table de référence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For I = 1 To 28
            If Feuil2.Range("D65536").End(xlUp).Formula = Feuil1.Range("b41").Offset(I - 1, 0).Value Then
            Feuil2.Range("D65536").End(xlUp).Interior.Color = Feuil1.Range("b41").Offset(I - 1, 0).Interior.Color
            End If
    Exit For
    Next
    Ca ne fait rien : rien ne change pas de couleur, le IF renvoie toujours "faux" : je crois à une erreur de vocabulaire, mais je n'en sais rien à vrai dire. Je lis les FAQ et le reste, sans comprendre mon erreur. Merci de votre aide.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For I = 1 To 28
            If Feuil2.Range("D65536").End(xlUp).Formula = Feuil1.Range("b41").Offset(I - 1, 0).Value Then
            Feuil2.Range("D65536").End(xlUp).Interior.Color = Feuil1.Range("b41").Offset(I - 1, 0).Interior.Color
            End If
    Exit For
    Next
    j'ai mis en rouge les points que je ne comprend pas dans ton code. d'abord le formula. si je te suis bien ce que tu as en feuille deux c'est un nom de pays, donc c'est a la valeur de la case que tu fais reference, utilise plutot value.
    ensuite, je ne comprend pas le offset. peut etre pour tenir compte de l'entete de colone?, mais a ce moment la quand i est = a 1, le offset est = a 0? ha si, en l'écrivant, je viens de comprendre, c'est parceque tu n'utilise b41 comme reference. ok c'est bon alors.
    enfin pour le color, c'est colorindex qu'il faut utiliser
    enfin pour la forme. de la manier dont tu a fais ton code, il ne travaille que sur la derniere ligne de ton tableau 2 donc si tu fais une modif de pays ou si tu ecris deux lignes a la suite, il ne pourra pas tout trouvé. le exit for est mal placé, il sort de la boucle des la premiere occurence.
    je n'est plus le temps là, je vais bosser, mais j'essaie de voir ça d'ici ce soir

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre aide : c'est effectivement ma boucle for next qui était mauvaise (que j'avais mal compris). J'ai résolu mon pb.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For I = 1 To 28
            If Feuil2.Range("D65536").End(xlUp).Value = Feuil1.Range("b41").Offset(I - 1, 0).Value Then
            Feuil2.Range("D65536").End(xlUp).Interior.Color = Feuil1.Range("b41").Offset(I - 1, 0).Interior.Color
            Exit For
            End If
    Next

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Pour mettre Résolu, c'est le bouton tout en bas de la fenêtre

    Edit
    J'ai corrigé, pour cette fois tu n'as rien à faire

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    sinon, comme promis, je t'avais fait ça dans la journée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub modifcolor()
    For Each cel In Worksheets("feuil2").Range("d1").CurrentRegion.Cells 
      For Each couleur In Worksheets("feuil1").Range("b41:b69").Cells
       If cel = couleur Then
       cel.Interior.ColorIndex = couleur.Interior.ColorIndex
       End If
       Next couleur
    Next cel
    End Sub
    ton code est plus simple mais il ne traite toujour que la derniere ligne. si tu fais une modif a l'interieur du tableau, ou si tu saisi plusieurs individu, il ne marche pas. en modifiant légerement, tu peux meme la mettre en macro evenementielle qui changera les couleurs en meme temps que tu les écrit

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/03/2015, 10h54
  2. [XL-2010] Mise en forme conditionnelle et recherche dans d'autres feuilles
    Par Marmoubu dans le forum Excel
    Réponses: 1
    Dernier message: 08/10/2012, 17h20
  3. [VBA-E] Mise en forme conditionnelle
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 21/04/2007, 09h30
  4. [VBA-E] mise en forme conditionnelle
    Par SUPERLOLO007 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/11/2006, 11h12
  5. [VBA][Excel] mise en forme conditionnelle
    Par titflocon dans le forum Access
    Réponses: 9
    Dernier message: 19/12/2005, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo