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 :

Mise en couleur d'une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Mise en couleur d'une cellule
    Bonjour,

    Actuellement sous Excel j'ai mis en place une mise en forme conditionnelle come celle-ci :

    Nb.si($b$6:$b$2126;b6)>1 alors la cellule se met en jaune.
    Je traduit, si le numéro de facture existe déjà, alors je suis averti par la mise en couleur de la cellule. Mon soucis c'est qu'à chaque fois qu'un numéro est commun avec un autre, la couleur est jaune.
    La facture est parfois répartie sur plusieurs sites au prorata.
    Je voudrais savoir si il est possible à l'aide de VBA de créer un code qui réponde au même critère, mais que la couleur change si ce n'est pas le même numéro mais rencontre un numéro commun.
    Par exemple : Facture 1 enregistrée 2 fois alors jaune
    Facture 2 enregistrée 2 fois alors vert
    J'espère avoir été clair sinon dites le moi.
    Merci par avance

  2. #2
    Membre confirmé
    Profil pro
    développeur VBA
    Inscrit en
    Août 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : développeur VBA

    Informations forums :
    Inscription : Août 2006
    Messages : 57
    Par défaut
    Bonjour,
    Ai je bien compris :

    le code voulu est bien:

    si sur la plage B7:B2126 on a déjà au moins une fois la valeur de B6, mettre B6en jaune?

  3. #3
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    pas trop mais je suppose que tu as deux condition donc.

    ta formule n'en possede qu'une......

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour tlm,

    En supposant que tu n'as pas plus de deux fois le même numéro de facture, ceci pourrait peut-être convenir
    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
    Sub test()
    Dim i As Integer, x As Byte, c As Range, DerL As Integer
     
    x = 3
    DerL = Cells(Rows.Count, 2).End(xlUp).Row
     
    For i = 1 To DerL - 1
        If x < 57 Then
            x = x
        Else
            x = 3
        End If
     
        Set c = Range("B" & i + 1 & ":B" & DerL).Find(what:=Cells(i, 2).Value, lookat:=xlWhole)
            If Not c Is Nothing Then
                Cells(i, 2).Interior.ColorIndex = x
                c.Interior.ColorIndex = x
                x = x + 1
            Else
                Cells(i, 2).Interior.ColorIndex = xlNone
            End If
    Next
    End Sub

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Citation Envoyé par fring Voir le message
    Bonjour tlm,

    En supposant que tu n'as pas plus de deux fois le même numéro de facture, ceci pourrait peut-être convenir
    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
    Sub test()
    Dim i As Integer, x As Byte, c As Range, DerL As Integer
     
    x = 3
    DerL = Cells(Rows.Count, 2).End(xlUp).Row
     
    For i = 1 To DerL - 1
        If x < 57 Then
            x = x
        Else
            x = 3
        End If
     
        Set c = Range("B" & i + 1 & ":B" & DerL).Find(what:=Cells(i, 2).Value, lookat:=xlWhole)
            If Not c Is Nothing Then
                Cells(i, 2).Interior.ColorIndex = x
                c.Interior.ColorIndex = x
                x = x + 1
            Else
                Cells(i, 2).Interior.ColorIndex = xlNone
            End If
    Next
    End Sub
    Je peux avoir jusqu'à 10 fois le même numéro puisque la facture peut-être divisée entre 10 bâtiments.

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par NEC14 Voir le message
    Je peux avoir jusqu'à 10 fois le même numéro puisque la facture peut-être divisée entre 10 bâtiments.
    et je suis censé le savoir comment ?

    relis ce que tu as mis
    Par exemple : Facture 1 enregistrée 2 fois alors jaune
    Facture 2 enregistrée 2 fois alors vert
    Est ce si compliqué de préciser tous les paramètres convenablement dès le départ ?

  7. #7
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Citation Envoyé par fring Voir le message
    et je suis censé le savoir comment ?

    relis ce que tu as mis


    Est ce si compliqué de préciser tous les paramètres convenablement dès le départ ?
    Toutes mes excuses si cela te mets dans cet état.
    Personne ne t'oblige à être agressif. J'ai indiqué 2 fois à titre d'exemple.(ça c'est sûr tu ne pouvais le savoir).
    J'ai corrigé en apportant d'autres précisions je crois ?
    On essaye de poser des questions en étant le plus précis possible mais il peut y avoir des oublis.

  8. #8
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    pq programmer quand on sait le faire directement dans excel

    une formule du genre devrait y parvenir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =IF(AND(COUNTIF($A$1:$A$10;A1)>1;COUNTIF($B$1:$B$10;B1)>1);TRUE;TRUE)

  9. #9
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    En fait si le numéro que je suis entrain de frapper existe déjà dans la colonne B6:B2126, alors la cellule prend une couleur.
    Actuellement, si j'ai déjà frapper le 17 en B6 et que je le tape à nouveau la cellule B100, la cellule B100 prend la couleur jaune, mais cela reste valable pour n'importe quelle cellule de la colonne. Si je tape 18 en B200 et à nouveau 18 en B360 la cellule B360 prend la couleur jaune, et c'est là le problème. Je souhaiterai qu'elle prenne une autre couleur aléatoire. Ceci pour différencier les doublons.
    A chaque ligne correspond un bâtiment sur lequel je mets sa dépense qui se trouve dans la même facture.
    X000645 MD805073
    X000645 MD805073
    X000645 MD805073
    X000644 MD805073
    X000645 MD805071
    X000645 MD805071
    X000645 MD805071
    X000645 MD805071
    X000645 MD805071
    X000645 MD805071
    X000645 MD805071
    X000645 MD805071
    X000645 MD805071
    X000645 MD805071
    X000645 MD805071
    X000643 MD805071
    X000643 MD805071
    X000644 MD805071

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

Discussions similaires

  1. [XL-2007] Mise en couleur d'une cellule selon la valeur d'une autre cellule
    Par young 25 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/02/2012, 12h00
  2. Réponses: 6
    Dernier message: 16/06/2009, 17h26
  3. Réponses: 3
    Dernier message: 13/08/2008, 21h40
  4. mettre de la couleur dans une cellule
    Par Jiraiya42 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 03/06/2005, 10h16
  5. Récupérer la couleur d'une cellule excel par Delphi
    Par teamsebracing dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 05/06/2003, 14h50

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