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 :

test de l'existence d'une variable dans une liste [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 149
    Points : 109
    Points
    109
    Par défaut test de l'existence d'une variable dans une liste
    Bonjour,

    J'ai une liste créer dans une feuille et je voudrais tester si la variable d'un formulaire existe dans la liste.
    si elle n'existe pas je la rajoute.

    donc je vois comment le faire en parcourant la liste ligne par ligne.

    y aurait-il un moyen de le faire avec un foreach?
    Quand j'essaye et que je met le nom de la liste après le In il me dit qu'il attend une variable.

    J’espère que c'est clair.

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour, bonjour !

    Sans le code (entre balises conformément au règles du forum) ni une présentation claire et exhaustive …



    Sinon rien qu'en lisant l'aide VBA intégrée, tout y est !

    _________________________________________________________________________________________________
    Il n'y a pas que les aigles qui atteignent les sommets, les escargots aussi mais ils en bavent !

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 149
    Points : 109
    Points
    109
    Par défaut
    désolé voila mon 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
     
    Dim newType As Boolean
            Dim typeResto As String
            Dim s As String
     
            typeResto = Cbox_Type_Resto.Value
            newType = True
            List_De_String = ("liste!Liste_Type_Resto")
            For Each s In List_De_String
     
                If s = typeResto Then
                    newType = False
                    Exit For
                End If
     
            Next
            If newType Then
                MsgBox "nouveau type"
            End If
    et il me dit la :

    "la variable de contrôle For Each doit être de type Variant ou Object"

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut



    Le message est pourtant clair : l'instruction fonctionne uniquement avec une variable de type Object ou Variant !

    Via un point d'arrêt, vérifier dans la fenêtre des Variables locales le type et le contenu de la variable …

    Ligne n°8 à corriger donc … Qui plus est une variable est inutile, la plage des cellules peut directement être après le In

  5. #5
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    For Each Objet in Objets ... Next où l'élément Objet est un objet de la collection Objets donc, un objet et pas un String !
    Donc plutôt :
    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
    Sub Test()
     
        Dim newType As Boolean
        Dim typeResto As String
        Dim Plage As Range
        Dim Cel As Range
     
        typeResto = Cbox_Type_Resto.Value
     
        newType = True
     
        Set Plage = Worksheets("liste").Range("Liste_Type_Resto") 'où "Liste_Type_Resto" est une plage nommée
     
        For Each Cel In Plage
     
            If Cel.Value = typeResto Then
     
                newType = False
     
                Exit For
     
            End If
     
        Next Cel
     
        If newType Then
     
            MsgBox "nouveau type"
     
        End If
     
    End Sub
    Hervé.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 149
    Points : 109
    Points
    109
    Par défaut
    parfait merci

    bonne soirée

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

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 20h05
  2. Récupérer le nom d'une colonne d'une table dans une variable
    Par mimi51340 dans le forum Général Java
    Réponses: 4
    Dernier message: 13/03/2008, 15h23
  3. Réponses: 4
    Dernier message: 29/01/2008, 12h12
  4. Réponses: 1
    Dernier message: 15/02/2007, 01h24
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 16h19

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