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 :

Problème de mise en couleur d'une ligne dans une liste


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2014
    Messages : 15
    Par défaut
    Bonjour,

    J'aimerais mettre en couleur une ligne présente dans une liste. Pour cela j'utilise la fonction Interior.ColorIndex mais celle-ci ne marche pas et je ne comprends pas d'où ça vient. Vous trouverez ci-joint le code correspondant :

    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 Liste_Article()
    Dim i, j As Integer
    On Error Resume Next
     
    i = 0
     
    ThisWorkbook.Worksheets(Feuille_Données).Range("A1:K" & ThisWorkbook.Worksheets(Feuille_Données).Range(Split(Cells(1, 4).Address(1, 0), "$")(0) & "65000").End(xlUp).Row).Sort Key1:=ThisWorkbook.Worksheets(Feuille_Données).Range("B2"), Order1:=xlAscending, Key2:=ThisWorkbook.Worksheets(Feuille_Données).Range("D2"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
            False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
            :=xlSortNormal
     
    ''##### MISE A JOUR DE LA ZONE DEROULANTE NOM ARTICLES EXISTANTS #####
     For j = 2 To ThisWorkbook.Worksheets(Feuille_Données).Range(Split(Cells(1, 4).Address(1, 0), "$")(0) & "65000").End(xlUp).Row
        ART_STK.AddItem ThisWorkbook.Worksheets(Feuille_Données).Cells(j, 2), i
        ART_STK.List(i, 1) = ThisWorkbook.Worksheets(Feuille_Données).Cells(j, 4)
        ART_STK.List(i, 2) = ThisWorkbook.Worksheets(Feuille_Données).Cells(j, 3)
        ART_STK.List(i, 3) = ThisWorkbook.Worksheets(Feuille_Données).Cells(j, 5)
        ART_STK.List(i, 4) = ThisWorkbook.Worksheets(Feuille_Données).Cells(j, 10)
        ART_STK.List(i, 5) = ThisWorkbook.Worksheets(Feuille_Données).Cells(j, 1)
        'Mise en couleur des articles standard'
        If ART_STK.List(i, 5) = "STAND" Then
        ART_STK.Rows(i).Interior.ColorIndex = 20
        End If
     
        i = i + 1
     Next j
     
     'LISTE STOCK = 1/ Famille 2/Désignation 3/Référence 4/Unité 5/Prix
     ART_STK.ListIndex = 0
     End Sub
    J'ai également joint le document correspondant. Il faudrait que la ligne soit mise en couleur lorsque l'article est "standard". Cette couleur doit être conservé lorsque celle-ci est glisser-déposer dans la liste d'en dessous également.

    Merci pour votre aide.

    Angélique.

    013 FICHE D'ETABLISSEMENT DE BESOIN - Indice F_V20141007_EnvoiForum.xls

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Commence par supprimer la ligne On Error Resume Next.

    C'est une ligne qui ne sert qu'à masquer les problèmes, ce qui empêche de les résoudre. C'est à éviter à tout prix en phase de conception et de débugage.

  3. #3
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    bonjour
    c'est y pas plus clair comme cela

    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
    Sub Liste_Article()
     Dim i As Integer, j As Integer
     
     i = 0
     With ThisWorkbook.Worksheets(Feuille_Données)
     
     .Range("A1:K" & .Range(Split(Cells(1, 4).Address(1, 0), "$")(0) & "65000").End(xlUp).Row).Sort Key1:=.Range("B2"), Order1:=xlAscending, Key2:=.Range("D2"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2  :=xlSortNormal
     
     ''##### MISE A JOUR DE LA ZONE DEROULANTE NOM ARTICLES EXISTANTS #####
     
     For j = 2 To .Range(Split(Cells(1, 4).Address(1, 0), "$")(0) & "65000").End(xlUp).Row
     ART_STK.AddItem .Cells(j, 2), i
     ART_STK.List(i, 1) = .Cells(j, 4)
     ART_STK.List(i, 2) = .Cells(j, 3)
     ART_STK.List(i, 3) = .Cells(j, 5)
     ART_STK.List(i, 4) = .Cells(j, 10)
     ART_STK.List(i, 5) = .Cells(j, 1)
     
     
     'Mise en couleur des articles standard'
     If ART_STK.List(i, 5) = "STAND" Then ART_STK.Rows(i).Interior.ColorIndex = 20
     
     i = i + 1
     Next j
     End With
     'LISTE STOCK = 1/ Famille 2/Désignation 3/Référence 4/Unité 5/Prix
     ART_STK.ListIndex = 0
     End Sub
    Peu de forumeur ouvre les pièces jointes mais si en plus, tu les force a desactivé les protections....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For j = 2 To .Range(Split(Cells(1, 4).Address(1, 0), "$")(0) & "65000").End(xlUp).Row
    celle là, il faut aimer se faire mal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [d65000].end (xlup).row
    renverra la meme chose
    et enfin Je ne pense pas que tu puisse surligné une ligne dans une liste deroulante.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je n'ai pas testé ta macro mais il y a un truc qui me pique les yeux : un With - End With et une boucle For - Next qui sont croisées. Je ne suis pas sûr que ça soit problématique mais ça ne me semble pas propre.
    Tu devrais mettre ton End With après le Next.

  5. #5
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Vu et soin
    J'ai n'ai pas tester la macro n'ont plus, j'ai juste voulu la rendre un peu plus digeste à l'œil.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Excuse-moi keygen de ne pas l'avoir précisé mais c'est effectivement à Angélique (et à son code) que je m'adressais.

Discussions similaires

  1. Réponses: 15
    Dernier message: 21/10/2009, 13h31
  2. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  3. [E-00] Syntaxe pour insérer une ligne ou une colonne dans une feuille
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 09h27
  4. [MySQL] inserer une ligne d'une table dans une autre table
    Par piero53 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 14/12/2008, 18h29
  5. Réponses: 3
    Dernier message: 29/01/2008, 12h08

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