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 :

tester si une valeur appartient a un tableau de valeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut tester si une valeur appartient a un tableau de valeur
    Bonjour, je recherche une methode propre de test pour savoir si la valeur d'un range appartient a un tableau de valeur par exemple ou eventuellement a un autre range , mais prioritairement a un tableau .

    j'ai codé un truc un peu salement , ca fonctionne mais j'aimerais un truc plus propre sans gestion d'erreur qui je sais est a eviter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Dim MyTab As Variant
        Dim MyRange As Range
        MyTab = Array("SEK", "EUR")
        With Application.ThisWorkbook.Worksheets("Feuil2")
            For Each MyRange In .UsedRange.Columns(2).Cells
                On Error Resume Next
                If Not IsNull(Application.WorksheetFunction.Match(MyRange.Value, MyTab, 0)) Then
                    If Err.Number = 1004 Then GoTo 1
                    MsgBox ("Il y est")' on fait une action peu importe 
                End If
    1        Next MyRange
        End With
    End Sub
    en gros je parcours une colonne , je test si la valeur appartien a mon tableau ou non .

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Tamtam, bonjour le forum,

    Essaie comme ça :

    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
    Sub Macro1()
    Dim MyTab As Variant
    Dim O As Worksheet
    Dim I As Byte
    Dim R As Range
     
    Set O = Sheets("Feuil2")
    MyTab = Array("SEK", "EUR")
    For I = LBound(MyTab) To UBound(MyTab)
        Set R = Application.Intersect(O.UsedRange, O.Columns(2)).Find(MyTab(I), , xlValues, xlWhole)
        If Not R Is Nothing Then
            MsgBox MyTab(I) & " y est !"
        End If
        Set R = Nothing
    Next I
    End Sub

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut Deja un peu mieux
    on a donc pas d'autres choix que du bidouillage,.. mais deja on evite la gestion d'erreur ce qui est deja mieux , je te remercie pour ce bout de code ca fonctionne .

  4. #4
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Ben c'est pas du bidouillage !... C'est un code qui vérifie la présence d'une valeur dans une plage... Il y a bien sûr plusieurs de manière différentes d'y arriver. Tu demandais de le faire sans gestion d'erreur c'est tout.

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    avec la fonction Filter peu-être :




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
       Dim MyTab As Variant
       Dim MyResult 'As Variant
       Dim MyRange As Range
       MyTab = Array("SEK", "EUR", "SEK2")
       Dim MaChaine As String
       MaChaine = "SEK"
     
       MyResult = Filter(MyTab, MaChaine, True, vbBinaryCompare)
       If UBound(MyResult) > -1 Then
            MsgBox UBound(MyResult) + 1 & " Elements"
       Else
                MsgBox "Pas trouvé"
       End If

  6. #6
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut merci
    Merci a vous , je savais qu'en postant j'apprendrais des trucs merci

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

Discussions similaires

  1. Tester si une ligne appartient à un groupe
    Par iluron dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/07/2011, 16h45
  2. Comment verifier qu'une valeur appartient a un tableau
    Par boutmos dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/02/2009, 11h05
  3. Réponses: 3
    Dernier message: 19/12/2007, 14h50
  4. dessiner une courbe à partir d'un tableau de valeur
    Par bob75018 dans le forum C++Builder
    Réponses: 8
    Dernier message: 15/06/2007, 04h29
  5. Réponses: 2
    Dernier message: 04/01/2007, 13h31

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