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

VBA Access Discussion :

Activer une ligne de zone de liste selon un critère


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 175
    Points : 129
    Points
    129
    Par défaut Activer une ligne de zone de liste selon un critère
    Bonjour,
    j'ai voulu utiliser le code du FAQ pour sélectionner une ligne de ma zone de liste "ListeScenarios" selon la valeur de la variable IDsc qui correspond à la 1ère colonne. Malheureusement la condition indiquée dans l'instruction If n'est jamais vérifiée alors que pourtant la valeur attribuée à IDsc existe bien dans la liste...

    Quelqu'un pourrait-il m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            Dim IDsc, listrow as integer
            IDsc = 33
     
            For i = 1 To ListeScenarios.ListCount
                If Me.ListeScenarios.Column(0, i) = IDsc Then
                    listrow = i
                    Exit For
                End If
            Next i
     
            Me.ListeScenarios.Selected(listrow) = True

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 912
    Points : 4 811
    Points
    4 811
    Par défaut
    salut,

    essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    If cInt(Me.ListeScenarios.Column(0, i)) = IDsc Then
    ...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 175
    Points : 129
    Points
    129
    Par défaut
    C'est noté... je teste et je vous tiendrai informé.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 175
    Points : 129
    Points
    129
    Par défaut
    Merci micniv !

    Effectivement ça fonctionne... Le problème venait du type des variables que je compare : Me.ListeScenarios.Column(0, i) renvoie une valeur de type texte alors que IDsc est déclaré Integer.

    La solution de micniv est donc de convertir Me.ListeScenarios.Column(0, i) au format Integer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            Dim IDsc, listrow As Integer
            listrow = 0
            IDsc = 50
     
            For i = 0 To ListeScenarios.ListCount - 1
                If CInt(Me.ListeScenarios.Column(0, i)) = IDsc Then
                    listrow = i
                    Exit For
                End If
            Next i
     
            Me.ListeScenarios.Selected(listrow) = True
    Ou on peut aussi imaginer convertir IDsc en format texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            Dim listrow As Integer
            Dim IDsc As String
            listrow = 0
            IDsc = CStr(50)
     
            For i = 0 To ListeScenarios.ListCount - 1
                If Me.ListeScenarios.Column(0, i) = IDsc Then
                    listrow = i
                    Exit For
                End If
            Next i
     
            Me.ListeScenarios.Selected(listrow) = True
    Voilà pour tous.
    @+

Discussions similaires

  1. [AC-2013] Suppression d'une ligne dans zone de liste
    Par ataahualpa dans le forum VBA Access
    Réponses: 4
    Dernier message: 12/12/2014, 08h29
  2. [AC-2000] Resultat d'une zone de liste selon selection d'un autre liste
    Par Tydher dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/05/2011, 16h50
  3. définir la hauteur d'une ligne de zone de liste
    Par betauser dans le forum IHM
    Réponses: 2
    Dernier message: 24/01/2011, 08h16
  4. Réponses: 5
    Dernier message: 29/01/2010, 14h22
  5. Réponses: 3
    Dernier message: 13/03/2009, 14h10

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