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 :

VBA EXCEL, alternance


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 6
    Par défaut VBA EXCEL, alternance
    Bonjour,
    je voudrais colorer les lignes en alternance dès que le chiffre est plus grand.
    Je sait faire avec pair ou imper, mais dans ce cas, j'ai deux séries d'impair en suivant !

    1 ColorIndex=35
    1 ColorIndex=35
    1 ColorIndex=35
    2 ColorIndex-36
    2 ColorIndex=36
    3 ColorIndex=35
    3 ColorIndex=35
    3 ColorIndex=35
    5 ColorIndex=36
    5 ColorIndex=36

    Merci de m'aiguiller.

  2. #2
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut Daniel et bonne année 2017,

    Pour faire ce que tu veux, tu n'as pas besoin de VBA.

    Tu peux utiliser une mise en forme conditionnelle.

    Je t'ai fait une illustration pour que tu puisse comprendre.
    Nom : mfc.png
Affichages : 245
Taille : 27,4 Ko

    En gros, tu ajoutes une colonne avec la formule SI. Cette colonne peut être cachée pour faire propre.
    Ensuite, tu mets en place 2 MFC.
    Une Si la colonne supplémentaire = VRAI
    L'autre si c'est FAUX.

    En plus, en cas d'ajout, modification, la MFC se met à jour automatiquement.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 6
    Par défaut
    Bonjour Jerome et bonne année 2017

    Non, il est impératif de faire cela en VBA car la feuille que je traite
    a étée crée par VBA avec récupération d'une plage de cellule !

    A te lire.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Daniel MERCIER Voir le message
    Bonjour,

    J'ai mis en ligne sur mon blog un code qui peut vous intéresser Excel-alterner-couleurs-lignes-fonction-valeurs-colonne

    Une différence tout de même : le changement de couleur s'exécute sur changement de valeur et pas sur changement avec valeur croissante, mais j'imagine que votre tableau est trié.

    Je n'utilise pas les valeurs d'Interior.colorindex mais les valeurs RGB avec Interior.Color.

    Cordialement.

    Bonjour Jérôme.

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Je ne m'embarrasserais personnellement pas outre mesure avec ce genre de choses cosmétiques, que je coderais sans hésitation à la louche, ainsi, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     derlig = Range("A" & Rows.Count).End(xlUp).Row
      Range("A" & 1 & ":A" & derlig).Interior.Color = vbYellow
      Dim c1 As Range, c2 As Range
      For i = 1 To derlig
        Set c1 = Range("A" & i)
        Set c2 = Range("A" & i + 1)
        If c2.Value > c1.Value Then
          Range("A" & i + 1 & ":A" & derlig).Interior.Color = IIf(c1.Interior.Color = vbRed, vbYellow, vbRed)
        End If
      Next

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 6
    Par défaut
    Bonsoir unparia,

    Ton code tourne parfaitement !

    Que dois-je changer si je veut utiliser en alternance :
    Interior.ColorIndex = 35
    Interior.ColorIndex = 36

    Mais déja un grand merci.

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Ta question est déconcertante.
    Mais bon --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    derlig = Range("A" & Rows.Count).End(xlUp).Row
      Range("A" & 1 & ":A" & derlig).Interior.ColorIndex = 35
      Dim c1 As Range, c2 As Range
      For i = 1 To derlig
        Set c1 = Range("A" & i)
        Set c2 = Range("A" & i + 1)
        If c2.Value > c1.Value Then
          Range("A" & i + 1 & ":A" & derlig).Interior.ColorIndex = IIf(c1.Interior.ColorIndex = 35, 36, 35)
        End If
      Next

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 6
    Par défaut
    Génial !

    Merci a toi et aux autres pour le coup de main.

    Super Forum.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Daniel MERCIER Voir le message
    Snober un message est déjà humiliant pour celui ou celle qui vous a répondu, les remerciements de votre dernier message relèvent en plus du cynisme.
    Bienvenue à mon club des ignorés. Inutile de me répondre, je ne pourrai vous lire.

    Je salue Jacques et Jérôme.
    Dernière modification par Invité ; 05/01/2017 à 05h25. Motif: Désabonné de cette discussion.

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

Discussions similaires

  1. [VBA-Excel,VB6,Fichier texte]enregistrer un classeur excel..
    Par Tarul dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 13h09
  2. [vba-excel] Le temps de fermeture trop court ?
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 10h03
  3. [VBA-Excel]
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/01/2005, 10h17
  4. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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