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 :

Boucle sur nom long RGB


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mai 2022
    Messages : 4
    Par défaut Boucle sur nom long RGB
    Bonjour à tous

    C'est mon 1er message donc j’espère tout faire comme il faut !

    Je cherche à afficher une couleur d’après son nom RGB
    Voici les essais que j'ai fait (voir code + image )

    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 Coul() 
    For i = 2 To 143
        Range("D" & i).Interior.Color = rgbAliceBlue                'Ok
        Range("E" & i).Interior.Color = Val(Range("B" & i).Value)   'Ok
        Range("F" & i).Interior.Color = Range("B" & i).Value        'Ok
     
        Range("G" & i).Interior.Color = Val(Range("A" & i).Value)   'Non Ok
        Range("H" & i).Interior.Color = Val(Range("A" & i).Value2)  'Non Ok
        Range("I" & i).Interior.Color = Val(Range("A" & i).Text)    'Non Ok
    '    Range("J" & i).Interior.Color = Range("A" & i).Text         'Err 13 Incompatibilité de type
    '    Range("K" & i).Interior.Color = Range("A" & i).Value        'Err 13 Incompatibilité de type
    '    Range("L" & i).Interior.Color = Range("A" & i).Value2       'Err 13 Incompatibilité de type
    Next i
    End Sub
    Quand je mets directement le nom rgb exemple rgbAliceBlue ou le N° de la couleur c'est ok
    Mais quand je boucle sur une variable je n'arrive pas à coller la couleur correspondant au long nom (colonne A ) voir image.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Val(Range("A" & i).Value)
    Me renvoie 0 donc la couleur noire !

    En clair je voudrais faire une boucle sur la colonne A et afficher la couleur correspondante dans une autre colonne.
    J’espère avoir été suffisamment clair.

    Merci d'avance pour vos réponses .
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 126
    Par défaut
    Salut

    Le problème vient du faite que tu mélanges les notions
    • de constante/Enumeration (rgbAliceBlue) qui est une sorte de variable non modifiable et valable uniquement dans un code VBA
    • de valeur textuel string, c'est le contenu de la cellule Ax. Quand tu demande à VBA d'aller chercher le contenu de la cellule, il lit "rgbAliceBlue", un string et pas une constante. C'est un peu comme si tu écrivais "If Value = true then" dans une cellule et qu'ensuite tu demandes à VBA de comprendre le contenu de la cellule comme étant une ligne de code.
    • de valeur numérique. Dans ta colonne B, il s'agit d'une valeur numérique, donc quand tu demandes à VBA d'aller chercher 16774488 dans le contenu d'une cellule, il lit bien une valeur numérique que tu peux utiliser tel quelle dans le code.


    Sur la notion de constante, quand tu inscris rgbAliceBlue, au niveau VBA il a une ligne quelque part qui dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Const rgbAliceBlue as long = 17675408
    Mon comparaison est imagée, car il s'git en fait de l'énumération XlRgbColor

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mai 2022
    Messages : 4
    Par défaut
    Merci de ta réponse

    C'est sur le lien que tu as mis que j'ai été cherché les différentes noms RGB

    Est il possible alors de déclarer toute la liste RGB long (la colonne A) en constante et ensuite de faire une boucle dessus ou alors il faut que j'abandonne cette idée et partir sur son N° (colonne B)
    Ou une autre méthode pour me servir de la colonne A ?

    A+

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 126
    Par défaut
    A ma connaissance (du moins à ce qui me viens en tête), je ne vois pas de solution. Si solution il y a, de toute façon, ça va faire un code alambiqué, il y a d'autres sujets qui seraient à mon sens plus intéressants à aborder pour débuter

    Donc oui, le mieux est d'utiliser la colonne B

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mai 2022
    Messages : 4
    Par défaut
    Ok

    Merci bien

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 126
    Par défaut
    Salut

    En faisant une recherche pour autre chose, je suis tombé sur une ancienne conversation, elle pourrait peut-être t'aider à faire ce que tu souhaites.
    https://www.developpez.net/forums/d1...d-enumeration/

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  7. #7
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 126
    Par défaut
    Citation Envoyé par Fantaisie Voir le message
    Est il possible alors de déclarer toute la liste RGB long (la colonne A) en constante et ensuite de faire une boucle dessus ou alors il faut que j'abandonne cette idée et partir sur son N° (colonne B)
    Ou une autre méthode pour me servir de la colonne A ?
    Refaire cette liste reviendrait à récrire dans du code VBA ce qui y existe déjà et qui est traduit dans la feuille VBA en version textuel.
    J'avoue ne pas trop voir l'intérêt.

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. [OL-2013] Enregistrement email sous .msg - Boucle sur nom de dossier
    Par don_pets dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 13/09/2016, 08h44
  2. Boucle sur nom de variable
    Par mehdouch dans le forum jQuery
    Réponses: 3
    Dernier message: 05/01/2011, 17h08
  3. boucle sur Nom
    Par pierrot67 dans le forum Bases de données
    Réponses: 6
    Dernier message: 13/09/2006, 12h27
  4. realiser une boucle sur un nom de champs dans un Etat
    Par stephanfromtoulouse dans le forum IHM
    Réponses: 2
    Dernier message: 08/09/2006, 23h09
  5. [FLASH MX 2004] Boucle sur nom
    Par mohican13 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 21/04/2006, 12h45

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