Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Contribuez

Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com

Réponse
 
Outils de la discussion
Vieux 16/06/2008, 09h25   #1 (permalink)
Membre expérimenté
 
Avatar de azertix
 
Date d'inscription: juin 2007
Localisation: Perpignan (66)
Âge: 21
Messages: 569
Par défaut [FAQ] Comment récupérer la valeur des lignes sélectionnées d'une zone de liste ?

Code :
Dim ligne As Integer
Dim valeur As Variant
Dim colonne As Integer
 
' Colonne de la zone de liste dans laquelle se situe l'information
colonne = 0
 
' Parcours de la zone de liste
For ligne = 0 To Me.MaZoneDeListe.ListCount - 1
    If Me.MaZoneDeListe.Selected(ligne) Then
        ' Si la ligne est sélectionnée, on stocke sa valeur dans la variable "valeur"
        valeur = Me.MaZoneDeListe.Column(colonne, ligne)
        ' Mettre valeur = CInt(Me.MaZoneDeListe.Column(colonne, ligne)) si la valeur est numérique
    End If
Next ligne
 
' On affiche le contenu de la ligne sélectionnée
MsgBox valeur
__________________
Avant de poster sur le forum Access :
FAQ > SOURCES > COURS > FORUM > GOOGLE
Pas de question par MP ou je mords


Dernière modification par azertix ; 19/06/2008 à 09h52
azertix est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/06/2008, 18h32   #2 (permalink)
Expert Confirmé
 
Avatar de FreeAccess
 
Date d'inscription: mars 2006
Localisation: Un monde ou prendre est plus facile qu'apprendre...
Messages: 1 777
Par défaut

Bonjour......

Je n'ai pas bien saisie cette "contribution".....

Car si l'on souhaite récupérer la valeur de la ligne sélectionnée d'une zone de liste [lstChoix] dans une zone de texte [txtChoixValeur]....le plus simple semble être de passer par l'événement "Après MAJ" de la ZdL......
Code :
Private Sub lstChoix_AfterUpdate()
'Ici la zone de texte [txtValeurChoix] affichera la valeur
'de la colonne 1 sélectionnée dans la ZdL
 
Me.txtValeurChoix.Value = Me.lstChoix.Column(0)
End Sub
 
.....ou alors je n'ai pas correctement compris ton code.....
__________________
FreeAccess
"Petit à petit l'araignée tisse sa toile"
FreeAccess est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/06/2008, 09h06   #3 (permalink)
Membre expérimenté
 
Avatar de azertix
 
Date d'inscription: juin 2007
Localisation: Perpignan (66)
Âge: 21
Messages: 569
Par défaut

Oui mais si je ne me trompe pas, ta proposition ne marche pas quand plusieurs éléments sont sélectionnés ?
__________________
Avant de poster sur le forum Access :
FAQ > SOURCES > COURS > FORUM > GOOGLE
Pas de question par MP ou je mords

azertix est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/06/2008, 09h26   #4 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 921
Envoyer un message via MSN à jpcheck
Par défaut

Salut,
tu peux utiliser la propriété ItemsSelected directement sinon, non ?
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/06/2008, 09h30   #5 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 9 998
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

Citation:
Envoyé par azertix Voir le message
Oui mais si je ne me trompe pas, ta proposition ne marche pas quand plusieurs éléments sont sélectionnés ?
Si je ne m'abuse, ton code aussi, car à chaque fois que l'on trouve une ligne sélectionnée on écrase la variable valeur par la nouvelle donnée. Non ?

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/06/2008, 09h39   #6 (permalink)
Membre expérimenté
 
Avatar de azertix
 
Date d'inscription: juin 2007
Localisation: Perpignan (66)
Âge: 21
Messages: 569
Par défaut

Oui, il faut utiliser un tableau si l'on veut stocker les données. Je l'ai pas mis mais je peux le rajouter, éventuellement ?

@jpcheck : je connais cette propriété mais j'ai parfois eu des soucis avec, donc j'en suis revenu à mon ListCount, mais pourquoi pas après tout, c'est peut-être moi qui avais mal codé ...

Je propose un code, après on le prend ou on le prend pas, ça me dérange pas. Je suis débutant, donc c'est normal que mes codes ne soient pas toujours super clean ou super optimisés, mais je suis ouvert à toute remarque ou critique constructive, il n'y a pas de soucis

Dans tous les cas, il serait intéressant que l'un d'entre vous propose un code pour cette question, parce que j'ai remarqué que ça revenait souvent sur le forum (bien que des questions semblables existent déjà dans la FAQ ).
__________________
Avant de poster sur le forum Access :
FAQ > SOURCES > COURS > FORUM > GOOGLE
Pas de question par MP ou je mords

azertix est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/06/2008, 09h53   #7 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 921
Envoyer un message via MSN à jpcheck
Par défaut

Au lieu d'un tableau, j'utiliserai à ce moment là une collection :


Code :
Dim tempoCol as Collection
Dim ligne As Integer
Dim valeur As Variant
Dim colonne As Integer
Dim i as Integer
 
' Colonne de la zone de liste dans laquelle se situe l'information
colonne = 0
 
' Parcours de la zone de liste
For ligne = 0 To Me.MaZoneDeListe.ListCount - 1
    If Me.MaZoneDeListe.Selected(ligne) Then
        ' Si la ligne est sélectionnée, on stocke sa valeur dans la variable "valeur"
        tempoCol.Add Me.MaZoneDeListe.Column(colonne, ligne)
        ' Mettre valeur = CInt(Me.MaZoneDeListe.Column(colonne, ligne)) si la valeur est numérique
    End If
Next ligne
 
For i = 0 To UBound(tempoCol)
    MsgBox tempoCol(i)
Next i
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/06/2008, 09h56   #8 (permalink)
Membre expérimenté
 
Avatar de azertix
 
Date d'inscription: juin 2007
Localisation: Perpignan (66)
Âge: 21
Messages: 569
Par défaut

Ah tiens, je ne connaissais pas cette méthode, c'est intéressant, je prends note
Quel intérêt d'utiliser une collection plutôt qu'un tableau ?

Sinon la question est publiable, à présent ?
__________________
Avant de poster sur le forum Access :
FAQ > SOURCES > COURS > FORUM > GOOGLE
Pas de question par MP ou je mords

azertix est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/06/2008, 10h44   #9 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 921
Envoyer un message via MSN à jpcheck
Par défaut

Je n'aime pas les
Code :
Redim Preserve
^^
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/06/2008, 11h16   #10 (permalink)
Membre expérimenté
 
Avatar de azertix
 
Date d'inscription: juin 2007
Localisation: Perpignan (66)
Âge: 21
Messages: 569
Par défaut

Argument convaiquant
__________________
Avant de poster sur le forum Access :
FAQ > SOURCES > COURS > FORUM > GOOGLE
Pas de question par MP ou je mords

azertix est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/06/2008, 13h52   #11 (permalink)
Membre expérimenté
 
Avatar de azertix
 
Date d'inscription: juin 2007
Localisation: Perpignan (66)
Âge: 21
Messages: 569
Par défaut

Et hop ! Je commente les nouveaux ajouts
Code :
Dim tempoCol As Collection
Dim ligne As Integer
Dim valeur As Variant
Dim colonne As Integer
Dim i as Integer
 
' Colonne de la zone de liste dans laquelle se situe l'information
colonne = 0
 
' Parcours de la zone de liste
For ligne = 0 To Me.MaZoneDeListe.ListCount - 1
    If Me.MaZoneDeListe.Selected(ligne) Then
        ' Si la ligne est sélectionnée, on stocke sa valeur dans la collection tempoCol
        tempoCol.Add Me.MaZoneDeListe.Column(colonne, ligne)
    End If
Next ligne
 
' On affiche les valeurs en parcourant la collection
For i = 0 To UBound(tempoCol)
    MsgBox tempoCol(i)
Next i
Question : il n'y a pas de référence à cocher pour utiliser les collection ?
__________________
Avant de poster sur le forum Access :
FAQ > SOURCES > COURS > FORUM > GOOGLE
Pas de question par MP ou je mords

azertix est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/06/2008, 14h15   #12 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 921
Envoyer un message via MSN à jpcheck
Par défaut

c'est déjà intégré dans les bibliothèques par défaut
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/06/2008, 14h20   #13 (permalink)
Membre expérimenté
 
Avatar de azertix
 
Date d'inscription: juin 2007
Localisation: Perpignan (66)
Âge: 21
Messages: 569
Par défaut

Ok, c'est niquel ça, les collections.
J'ai bien fait de poster
__________________
Avant de poster sur le forum Access :
FAQ > SOURCES > COURS > FORUM > GOOGLE
Pas de question par MP ou je mords

azertix est déconnecté   Envoyer un message privé Réponse avec citation
NEWS ACCESSF.A.Q AccessF.A.Q VBATutorielsSourcesOutilsLivresAccess TVAccess 2007

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Contribuez



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide