RGB, fonction peut mapper à des couleurs incorrectes

Traductions disponibles Traductions disponibles
Numéro d'article: 170781 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Résumé

Lorsque vous utilisez la fonction RVB dans un Visual Basic macro VBA, la valeur de couleur de la couleur RVB de l'index peut-être être mappée à une couleur différente de celle attendue.

Par exemple, RGB(65,0,0) est mappé à rouge foncé mais RGB(64,0,0) est mappé à noir.

La propriété couleur accepte un triple RVB et mappe à l'index de couleur le plus proche. Lorsque la propriété récupère la valeur de couleur, il retourne la couleur RVB de l'index, ce qui peut être différente de celle que vous avez tapé. Dans l'exemple RGB(65,0,0) est convertie en rouge foncé (RGB(128,0,0)) mais RGB(64,0,0) est mappé sur noir (RGB(0,0,0)).

Plus d'informations

Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie expresse ou implicite. Cela inclut, mais n'est pas limité à, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du support technique Microsoft peuvent vous aider à comprendre la fonctionnalité d'une procédure particulière, mais ils ne modifieront pas ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures répondant à vos besoins spécifiques. Lorsque vous utilisez une méthode d'application ou une propriété qui accepte une valeur de spécification de couleur, utilisez un nombre qui représente une valeur de couleur RVB. Une valeur de couleur RVB spécifie l'intensité relative des couleurs rouges, verts et bleus qui provoquent une couleur spécifique à afficher.

Les étapes suivantes supposent que vous avez créé un module Visual Basic qui contient les éléments suivants du code
   Sub ChangeRGB()

       ActiveSheet.Rectangles(1).Select
       With Selection.Interior
           .Pattern = xlSolid
           .Color = RGB([B1].Value, [B2].Value, [B3].Value)
       End With

   End Sub
				
et que vous avez créé une feuille de calcul qui contient les valeurs suivantes :
   A1: Red     B1:       C1:       D1:
   A2: Green   B2:       C2:       D2:
   A3: Blue    B3:       C3:       D3:
   A4:         B4:       C4:       D4:
   A5:         B5:       C5:       D5:
				
pour utiliser l'exemple de macro, procédez comme suit :
  1. Dans le menu Affichage, pointez sur Barres d'outils, puis cliquez sur Dessin.
  2. Cliquez sur l'outil Rectangle dans la barre d'outils dessin. Cliquez sur la cellule C1 et faites glisser le pointeur de la cellule C1 à la cellule D5 pour dessiner un rectangle.
  3. Dans le menu Outils, cliquez sur Options. Ensuite, cliquez sur l'onglet couleur.
  4. Dans le groupe de couleurs standard, cliquez sur la première couleur de la deuxième ligne (la couleur rouge).
  5. Cliquez sur Modifier. Ensuite, cliquez sur l'onglet personnalisées. Dans la zone rouge, modifiez la valeur à 65. Cliquez sur OK.

    Notez que la couleur est rouge foncé.
  6. Cliquez sur Modifier. Ensuite, cliquez sur l'onglet personnalisé. modifier la valeur de la zone rouge à 64. Cliquez sur OK.

    Notez que la couleur est un peu plus foncé ou duller qu'avant.
  7. Cliquez sur Réinitialiser. Ensuite, cliquez sur OK pour fermer la boîte de dialogue Options.
  8. Dans la feuille «Sheet1», entrez la valeur 65 dans la cellule B1.
  9. Dans le menu Outils, pointez sur macro et cliquez sur Macros. Cliquez sur ChangeRGB et cliquez sur Exécuter.

    Notez que la couleur du rectangle est rouge foncé.
  10. Modifiez la valeur dans la cellule B1 à 64.
  11. Dans le menu Outils, pointez sur macro et cliquez sur Macros. Cliquez sur ChangeRGB et cliquez sur Exécuter.

    Notez que la couleur du rectangle est noire.
Remarque : Vous pouvez contourner ce problème dans Microsoft Excel. La collection d'objets ShapeRange permet une plus grande flexibilité lorsque vous modifiez les couleurs dans le code. Au lieu d'utiliser Selection.Interior.Color = RGB(x,y,z), vous pouvez utiliser Selection.ShapeRange.Fill.ForeColor.RGB = RGB(x,y,z).

Références

Pour plus d'informations sur la collection ShapeRange, objets, cliquez sur l'onglet Index dans l'aide de Microsoft Visual Basic, tapez le texte suivant
ShapeRange
puis double-cliquez sur le texte sélectionné pour aller à la rubrique «Collection d'objets ShapeRange». Si vous ne parvenez pas à trouver les informations dont vous avez besoin, interrogez le Compagnon Office.

Propriétés

Numéro d'article: 170781 - Dernière mise à jour: dimanche 9 février 2014 - Version: 2.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Excel 97 Standard
  • Microsoft Excel 95 Standard
  • Microsoft Excel 5.0 Standard
Mots-clés : 
kbnosurvey kbarchive kbmt kbdtacode kbprb kbprogramming KB170781 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 170781
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com