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 :

Question débutant VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 10
    Par défaut Question débutant VBA
    Bonjour,

    Je suis débutant sur VBA et je dois écrire un programme.
    Ce programme doit mettre, dans un onglet donné, en gras vert foncé toutes les cellules dont le premier caractère est 1. Seulement voilà je voudrais qu'il fasse cela que dans certaines cellules qui ont un fond d'une certaine couleur (en locurence gris clair dont le code est 15395562).

    Mon problème est que je n'arrive pas à faire marcher le code que pour ces cellules avec un fond d'une certaine couleur, pouvez-vous m'aider ?

    Ps: il y a trois autre couleurs: vert clair lorsque le premier caractère est 2, rouge claire pour 3 et rouge foncé pour 4...

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub Exo1()
     
    Dim i, j As Integer
     
    For i = 1 To Range("B" & Rows.Count).End(xlUp).Row
    For j = 1 To Cells(3, Columns.Count).End(xlToLeft).Column
     
    If Mid(Sheets("sheet1").Cells(i, j), 1, 1) = 1 Then
        Sheets("sheet1").Cells(i, j).Font.Color = -16744448
        Sheets("sheet1").Cells(i, j).Font.Bold = True
     
    ElseIf Mid(Sheets("sheet1").Cells(i, j), 1, 1) = 2 Then
            Sheets("sheet1").Cells(i, j).Font.Color = -13382605
            Sheets("sheet1").Cells(i, j).Font.Bold = True
     
    ElseIf Mid(Sheets("sheet1").Cells(i, j), 1, 1) = 3 Then
            Sheets("sheet1").Cells(i, j).Font.Color = -16763905
            Sheets("sheet1").Cells(i, j).Font.Bold = True
     
    ElseIf Mid(Sheets("sheet1").Cells(i, j), 1, 1) = 4 Then
            Sheets("sheet1").Cells(i, j).Font.Color = -16777012
            Sheets("sheet1").Cells(i, j).Font.Bold = True
     
     
    End If
    Next
    Next
     
    End Sub
    Merci beaucoup !

    Willie

  2. #2
    Membre expérimenté
    Homme Profil pro
    Enthousiaste Excel
    Inscrit en
    Avril 2015
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enthousiaste Excel

    Informations forums :
    Inscription : Avril 2015
    Messages : 155
    Par défaut
    A priori, tu dois juste récupérer le font.color, tester si il est gris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'AIR CODE !!! Attention
    if Sheets("Allianz Euro HY Bond").Cells(i, j).Font.Color = 15395562 then 
    msgbox "ske tu veux ici"
    end if

    Comme ça ?

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, débutant ou pas : Balise ton code

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    tu parles de fond d'une certaine couleur.
    .font c'est la police.
    La couleur du fond c'est .interior.color qu'il faut tester.
    Et à condition que la couleur soit mise manuellement et pas par MFC.

    eric

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 10
    Par défaut
    Bonjour,

    Merci Djohn92 et eriiic pour vos réponses !
    Oui en effet Djohn92 je n'ai pas encore les bons reflexes, c'était pourtant simple :/ et eriiic en effet je n'ai pas pensé à
    mettre la couleur manuellement, ça marche maintenent merci beaucoup.

    Bonne soirée,

    Willie

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Par défaut
    Salut à toi,

    Si je peux me permettre, je te conseille d'utiliser la fonction RGB lorsque tu parles des couleurs.

    Cette fonction s'écrit RGB(Rouge, Vert, Bleu) avec les 3 couleurs allant de 0 à 255. Ces valeurs correspondent à l'intensité lumineuse des pixels de chaque couleur.

    La valeur du code couleur est entièrement liée à cette fonction :
    Code couleur = rouge + vert * 256 + bleu * 256²
    Pour du noir, tes pixels ne sont pas sollicités donc RGB(0, 0, 0) = 0
    Pour du rouge pur, seuls les pixels rouges sont sollicités donc RGB(255 , 0, 0) = 255 + 0*256 + 0*256² = 255
    Pour du blanc, tous les pixels sont à fond donc RGB(255, 255, 255) = 255 + 255*256 + 255*256² = 16777215

    Toutes les teintes de gris correspondent à un code RGB dont les 3 composantes sont identiques RGB(100,100,100) va être un gris plutôt sombre, RGB(200,200,200) va être plutôt clair.

    À l'inverse, tu peux bien sûr retrouver le code couleur RGB à partir des couleurs que tu nous as données ainsi :
    Rouge = Code couleur MODULO 256
    Vert = (Code couleur MODULO 256*256 - Rouge)/256
    Bleu = (Code couleur MODULO 256*256*256 - Rouge - Vert*256)/(256²)

    Donc pour tes couleurs :
    15395562 donne RGB(234,234,234)
    16777012 donne RGB(52,255,255)
    16763905 donne RGB(1,204,255)
    16744448 donne RGB(0,128,255)

    Voilà, désolé pour le petit hors sujet mais je pense que ça peut t'aider C'est bien plus simple, je trouve, de parler en RGB !

    Quentin

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 04/04/2006, 14h31
  2. question débutant xsl
    Par irnbru dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 30/03/2006, 18h20
  3. [Débutant] VBA Excel : Liste déroulante
    Par ptitsoleil87 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/12/2005, 14h09
  4. Question débutant ...
    Par Lypertrophie dans le forum Débuter
    Réponses: 4
    Dernier message: 25/10/2005, 19h00
  5. Réponses: 3
    Dernier message: 26/05/2004, 23h03

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