VBA : Ajouter un objet à une liste

Hello

Je souhaiterais créer et afficher une liste de valeurs mais je n'y arrive pas.

L'idée est la suivante : lorsque j'ai une valeur "VRAI" dans la colonne 5, alors la valeur de la cellule colonne 3 de la même ligne est enregistré dans une "liste" que je peux réutiliser plus tard ou être affiché en colonne 6 pour être visible. Mon code ne marche pas car même pour une valeur "VRAI", la partie "THEN [...] ne s'execute pas. Auriez vous une solution ?

Bien à vous

    
Dim Listenvlp As Range

For e = 2 To Nb_ligne1 + 1
        If Cells(e, 5) = "VRAI" Then Listenvlp.Value = Cells(e, 3)
Next e

Cells(2 ,6) = Listenvlp

Bonjour,

1) Mets la macro complète...

2) Précise si VRAI est une valeur booléenne ou une chaîne de caractère !

Suggestion 1 : INDENTER ton code

Suggestion 2 : Déclarer TOUTES tes variables.

Je ne suggère pas de s'en servir ! ça fait partie du problème !

Bonjour

Ceci est la macro complète. Effectivement, c'est une valeur booléenne donc j'ai retiré les guillemets.

Dim Listenvlp As Range
For e = 2 To 1000
    If Cells(e, 5) = TRUE Then Listenvlp.Value = Cells(e, 3)
Next e

Cells(2 ,6) = Listenvlp
 

Maintenant le problème est le suivant : ils me disent

Listenvlp.Value = <variable objet ou variable de bloc with non définie >

Quelqu'un aurait une solution svp ?

Une procédure Sub (macro ordinaire) commence par Sub et se termine par End Sub !

Ce n'est pas moi qui le dit, c'est dans tout les manuels !

Donc une macro complète doit inclure les Sub et End Sub

+ (car cela ne suffit pas toujours) si des variables utilisées dans la macro sont déclarées hors de la procédure, indiquer ces déclarations.

Ok excusez moi. Voici la macro complète.

Sub Bouton1_Cliquer()

Dim Listenvlp As Range
For e = 2 To 1000
    If Cells(e, 5) = TRUE Then Listenvlp.Value = Cells(e, 3)
Next e

Cells(2 ,6) = Listenvlp

End Sub
Dim Listenvlp

Sub Bouton1_Cliquer()
    Dim e%
    With ActiveSheet
        For e = 2 To 1000
            If Cells(e, 5) = True Then
                .Cells(e, 6) = .Cells(e, 3)
                Listenvlp = Listenvlp & ";" & .Cells(e, 3)
            End If
        Next e
    End With
    Listenvlp = Split(Replace(Listenvlp, ";", "", 1, 1), ";")
End Sub

De cette façon, tu auras, si la cellule en E contient VRAI, mis la valeur de C en F, et constitué un tableau listant ces valeurs, variable de niveau module que tu peux utiliser ensuite dans une autre procédure...

Si tes données ne vont pas jusqu'à la ligne 1000, il serait mieux de dimensionner. Inutile de parcourir des cellules vides...

Merci infiniment.

je test ça immédiatement.

Rechercher des sujets similaires à "vba ajouter objet liste"