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 :

Formule "SI" et mise en forme cellule LISTVIEW


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut Formule "SI" et mise en forme cellule LISTVIEW
    Bonjour à tous,

    j'ai une ListView avec 9 colonnes dont la première est :
    Référence article
    Désignation
    etc...
    QTE en STOCK en colonne 3 qui correspond à la col "Q" de ma feuille soit la col (17)
    je voudrais lorsque la qté est à 0, que la ligne de la listview soit en rouge pour attirer l'attention
    Ma question est il possible de mettre une formule dans une listview ? et comment cela se place-t-il ?
    d'avance merci pour vos réponses
    ==============
    Voici le code pour plus de clarté :
    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
    Private Sub UserForm_Initialize()
    With ListView1
        With .ColumnHeaders
           .Clear
           .Add , , "Référence", 100
           .Add , , "Désignation", 250
           .Add , , "Qté en stock", 70, (2) 'alignement de la col est au centre (2)
           .Add , , "Prix Vente HT", 70, (1) 'alignement de la col est à droite (1)
           .Add , , "Durée", 70, (1)
           .Add , , "Poids MA", 70, (1)
           .Add , , "Calibre", 70, (1)
           .Add , , "Type", 100, (1)
           .Add , , "Fournisseur", 100, (1)
        End With
     .Gridlines = True
      For i = 2 To Sheets("STOCK").Range("A65536").End(xlUp).Row
    .ListItems.Add , , Sheets("STOCK").Cells(i, 1)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 3)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 17)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Format(Sheets("STOCK").Cells(i, 12), "## ##0.00 €")
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 6)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 7)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 5)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 4)
     Next: End With
    TextBoxValeurTotaleStock = Format(Sheets("STOCK").Range("T2").Value, "## ##0.00 €")
     
    End Sub

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re fidecourt le forum je suis reste sur l exemple du post precedent donc la colonne designation dailleurs sur l autre post je viens de repondre pour ton pb... de recherche
    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
    Private Sub UserForm_Initialize()
    With ListView1
        With .ColumnHeaders
           .Clear
           .Add , , "Référence", 100
            .Add , , "fournisseur", 100, (2)
           .Add , , "Désignation", 150, (2)
           .Add , , "Prix public", 110, (2)
           .Add , , "Valeur Stock Totale", 110, (2)
        End With
     .Gridlines = True
      For i = 2 To Sheets("STOCK").Range("A65536").End(xlUp).Row
    .ListItems.Add , , Sheets("STOCK").Cells(i, 1)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 2)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 3)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Format(Sheets("STOCK").Cells(i, 4), "## ##0.00 €")
    .ListItems(.ListItems.Count).ListSubItems.Add , , Format(Sheets("STOCK").Cells(i, 6), "## ##0.00 €")
      If Sheets("STOCK").Cells(i, 3) > 0 Then
                   .ListItems(.ListItems.Count).ListSubItems(2).ForeColor = &HFF0000
                 Else
                   .ListItems(.ListItems.Count).ListSubItems(2).ForeColor = &HFF
                 End If
    TextBoxValeurTotaleStock = Format(Sheets("STOCK").Range("g2").Value, "## ##0.00 €")
    Next: End With
     End Sub

  3. #3
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut
    c'est tout à fait cela que je cherchais
    encore merci !

  4. #4
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut FORMAT CONDITIONNEL DANS LISTVIEW
    Bonjour,

    j'ai appliqué la condition suivant modèle de Laeticia, et si cela fonctionnait parfaitement avec mon premier formulaire dont 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub UserForm_Initialize()
    With ListView1
        With .ColumnHeaders
           .Clear
           .Add , , "Référence", 100
           .Add , , "Désignation", 250
           .Add , , "Qté en stock", 70, (1) 'alignement de la col est au centre (2)
           .Add , , "Prix Vente HT", 70, (1) 'alignement de la col est à droite (1)
           .Add , , "Durée", 70, (1)
           .Add , , "Poids MA", 70, (1)
           .Add , , "Calibre", 70, (1)
           .Add , , "Type", 100, (1)
           .Add , , "Fournisseur", 100, (1)
        End With
     .Gridlines = True
      For i = 2 To Sheets("STOCK").Range("A65536").End(xlUp).Row
    .ListItems.Add , , Sheets("STOCK").Cells(i, 1)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 3)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 17)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Format(Sheets("STOCK").Cells(i, 12), "## ##0.00 €")
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 6)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Format(Sheets("STOCK").Cells(i, 7), "# ##0.000")
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 5)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 4)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 2)
    If Sheets("STOCK").Cells(i, 17) > 0 Then
                   .ListItems(.ListItems.Count).ListSubItems(2).ForeColor = &H4040
                 Else
                   .ListItems(.ListItems.Count).ListSubItems(2).ForeColor = &HFF
                   .ListItems(.ListItems.Count).ListSubItems(2).Bold = True
                 End If
     Next: End With
    TextBoxValeurTotaleStock = Format(Sheets("STOCK").Range("T2").Value, "## ##0.00 €")
    PTMAinf500gr = Format(Sheets("STOCK").Range("U2").Value, "## ##0.000")
    PTMAsup500gr = Format(Sheets("STOCK").Range("V2").Value, "## ##0.000")
    PMATOTAL = Format(Sheets("STOCK").Range("W2").Value, "## ##0.000")
     
     
    End Sub
    ================================

    cela ne fonctionne plus avec mon second formulaire dont le code de la listview est différent
    j'ai une erreur d'exécution 1004 à chaque fois, et je ne vois pas où est le problème ?
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Private Sub UserForm_Initialize()
     
    'Suppression des titres de colonnes
    LvwFour.ColumnHeaders.Clear
     
    'Alimentation des titres de colonne :
    'Titre de la colonne  : "Référence",
    'Largeur de la colonne :  lvwFour.Width * 0.3, ou Nbre par ex. 100
    'Alignement de la colonne : lvwColumnLeft ou rien pour gauche, (1) pour droit, (2) pour centrer
     
    LvwFour.ColumnHeaders.Add , , "Fournisseur", 100
    LvwFour.ColumnHeaders.Add , , "Référence", 100
    LvwFour.ColumnHeaders.Add , , "Désignation", 250
    LvwFour.ColumnHeaders.Add , , "Qté en Stock", 70, (1)
    LvwFour.ColumnHeaders.Add , , "Prix Vente HT", 70, (1)
    LvwFour.ColumnHeaders.Add , , "Durée", 70, (1)
    LvwFour.ColumnHeaders.Add , , "Poids MA", 70, (1)
    LvwFour.ColumnHeaders.Add , , "Calibre", 70, (1)
    LvwFour.ColumnHeaders.Add , , "Type", 100, (1)
     
     
    Dim iLigArticle As Integer
    iLigArticle = 2
     
    'Suppression des éléments de la liste
    LvwFour.ListItems.Clear
     
    While Workbooks("STOCK.xls").Sheets("FOURNISSEURS").Cells(iLigArticle, 1) <> ""
     
        'Alimentation des éléments de la liste
        LvwFour.ListItems.Add iLigArticle - 1, , Sheets("FOURNISSEURS").Cells(iLigArticle, 1)
        LvwFour.ListItems(iLigArticle - 1).SubItems(1) = Sheets("FOURNISSEURS").Cells(iLigArticle, 2)
        LvwFour.ListItems(iLigArticle - 1).SubItems(2) = Sheets("FOURNISSEURS").Cells(iLigArticle, 3)
        LvwFour.ListItems(iLigArticle - 1).SubItems(3) = Sheets("FOURNISSEURS").Cells(iLigArticle, 17)
        LvwFour.ListItems(iLigArticle - 1).SubItems(4) = Format(Sheets("FOURNISSEURS").Cells(iLigArticle, 12), "## ##0.00 €")
        LvwFour.ListItems(iLigArticle - 1).SubItems(5) = Sheets("FOURNISSEURS").Cells(iLigArticle, 6)
        LvwFour.ListItems(iLigArticle - 1).SubItems(6) = Sheets("FOURNISSEURS").Cells(iLigArticle, 7)
        LvwFour.ListItems(iLigArticle - 1).SubItems(7) = Sheets("FOURNISSEURS").Cells(iLigArticle, 5)
        LvwFour.ListItems(iLigArticle - 1).SubItems(8) = Sheets("FOURNISSEURS").Cells(iLigArticle, 4)
        iLigArticle = iLigArticle + 1
     
    Wend
       If Sheets("FOURNISSEURS").Cells(i, 17) > 0 Then
                   LvwFour.ListItems(iLigArticle - 1).ListSubItems(3).ForeColor = &H4040
                 Else
                   LvwFour.ListItems(iLigArticle - 1).ListSubItems(3).ForeColor = &HFF
                   LvwFour.ListItems(iLigArticle - 1).ListSubItems(3).Bold = True
                 End If
     
    End Sub
    =====================
    Que peut il se passer ?
    Merci pour votre aide

  5. #5
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    rebonjour fidecourt le forum comme cela brute!! pas facile essai de deplacer
    Wend juste avant end sub pour voir.

  6. #6
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut
    rebonjour Laeticia,

    j'ai déjà fait le test mais c'est identique que je mette le if avant ou après le Wend !

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 11/12/2013, 11h20
  2. Mise en forme cellule TableLayoutPanel
    Par bib34690 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 03/04/2009, 07h37
  3. Mise en forme cellule et condition
    Par Shadow5 dans le forum Excel
    Réponses: 1
    Dernier message: 21/03/2008, 10h56

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