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 :

Probleme avec la propriété "Interior.Color" [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 45
    Points : 43
    Points
    43
    Par défaut Probleme avec la propriété "Interior.Color"
    Bonjour,

    J'ai reçu un fichier excel avec des cellules en fonds colorés.
    Je cherche à repérer ces cellules automatiquement en mettant le code couleur dans la cellule à coté.

    J'ai trouvé un code que j'ai adapté sur le net:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub distri_couleur2()
       Dim i As Integer
       Dim a As Long
     
       For i = 2 To 970
     
          For j = 0 To 4
            Cells(i, 18 + j).Value = Cells(13 + j, i).Interior.Color
         Next j
     
    Next i
     
    End Sub
    J'ai saisi quelque ligne dans un fichier test en mettant des fonds de couleurs au hasard : ça marche.

    Mais quand je fais tourner cette macro sur le fichier reçu, elle me renvoie uniquement le code couleur "aucune couleur" (code 16777215).
    La macro marche uniquement quand je fais moi même le changement de couleur avant de la faire tourner...
    Si quelqu'un peut m'expliquer pourquoi elle ne fonctionne pas , je serais très reconnaissant!

    Merci!

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour polo92,

    Pour moi, la seule explication, c'est que tu ne cibles tout simplement pas la bonne cellule.

    Diminue ton i et place MsgBox Cells(13 + j, i).Address dans ta boucle afin de visualiser clairement quelle cellule tu "tapes".

    Cordialement,
    Kimy

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 45
    Points : 43
    Points
    43
    Par défaut
    Merci pour ta réponse. Bon je m'étais un peu embrouillé sur l'adresse des cellules...mais après correction, la macro me renvoie toujours la même valeur quelque soit le fond de la cellule! Il faut que je colorie la cellule moi-même avant de faire tourner la macro pour qu'elle renvoie effectivement le bon code couleur...ça limite l'intérêt de la macro!

  4. #4
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    polo92,

    Tu peux, de manière évidente, trouver l'ensemble des couleurs de l'intérieur de tes cellules !
    Si la macro te renvoie quelque chose, c'est qu'elle fonctionne.
    Le fait qu'elle te renvoie toujours la même chose vient :
    1. Du fait que tu as bel et bien toujours la même couleur
    2. que tu ne fasses pas varier correctement ton "pointeur" et que, par conséquent, tu ne récupères pas bien la cellule que tu veux analyser.

    Le problème se situe donc, d'après moi, sur le second point.

    Cordialement,
    Kimy

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 45
    Points : 43
    Points
    43
    Par défaut
    Merci Kimy_Ire pour tes réponses.

    Ce que je constate:
    j'ouvre mon fichier, je vois une cellules en jaune, je vais dans "Format=>Cellule=>motif" et là je vois que la couleur jaune n'est prise en compte dans le format...je vois la cellule jaune, mais excel la considère comme sans couleur! et donc renvoie le code couleur "aucune couleur"...j'ai fait un autre test : je copie la mise en forme de la cellule jaune sur une cellule blanche et elle reste blanche....

    A l'origine il s'agit d'un fichier excel 2010 et je travaille en 2003...ça pourrait venir de là?

    Bon en fait il y a des mises en forme conditionnelle...

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonsoir,

    Il se peut que la couleur des cellules soit issue d'une MFC (mise en forme conditionnelle).
    Pour le vérifier, lancez ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub aa()
    MsgBox "Nombre de MFC = " & ActiveSheet.UsedRange.FormatConditions.Count
    End Sub
    Si c'est bien cela, il suffit en VBA d'appliquer la formule de la MFC à chaque cellule pour vérifier la couleur.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 45
    Points : 43
    Points
    43
    Par défaut
    C'était bien une mise en forme conditionnelle...j'ai même plus besoin d'une macro...j'ai mis la formule dans une cellule et puis copier glisser.

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

Discussions similaires

  1. [AC-2013] Problemes avec insert into et les simple quote
    Par Alann dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/07/2014, 17h41
  2. Probleme avec la propriété RowSource
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/01/2009, 17h37
  3. Réponses: 2
    Dernier message: 30/08/2004, 14h48

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