Listebox choix par double clic d'une ligne et selection de la ligne choisit sur la feuille
6 réponses
Alex
Bonjour =E0 tous,
J'ai un Userform ou l'on peut selectionner une ligne. Par double clic
sur la ligne choisit, je d=E9sirerai positionner ma cellule active sur
la colonne A de la ligne s=E9lectionn=E9e sur ma feuille, et j'ai =E9crit
ceci :
With Me.Selection
'Pour boucler sur chaque ligne s=E9lectionn=E9e du listbox
For A =3D 0 To .ListCount - 1
'Si la ligne selectionn=E9 dans la listbox correspond =E0 la ligne
teste alors positionne le curseur en colonne 1 de la ligne
s=E9lectionn=E9e
If .Selected(A) =3D True Then
Sheets("VC-VT").Range("A" & (A)).Select
'enlever la s=E9lection de cette ligne du listbox
.Selected(A) =3D False
End If
Next
End With
Malheureusement, sur ma feuille, il ne me selectionne pas la ligne qui
a =E9t=E9 selectionn=E9e via la listbox du userform.
Quelqu'un aurait il la solution =E0 mon probl=E8me ?
Merci par avance de votre aide.
Bien cordialement.
Alex
J'ai un Userform ou l'on peut selectionner une ligne. Par double clic sur la ligne choisit, je désirerai positionner ma cellule active sur la colonne A de la ligne sélectionnée sur ma feuille, et j'ai écrit ceci :
With Me.Selection 'Pour boucler sur chaque ligne sélectionnée du listbox For A = 0 To .ListCount - 1 'Si la ligne selectionné dans la listbox correspond à la ligne teste alors positionne le curseur en colonne 1 de la ligne sélectionnée If .Selected(A) = True Then Sheets("VC-VT").Range("A" & (A)).Select
'enlever la sélection de cette ligne du listbox .Selected(A) = False End If Next End With
Malheureusement, sur ma feuille, il ne me selectionne pas la ligne qui a été selectionnée via la listbox du userform. Quelqu'un aurait il la solution à mon problème ? Merci par avance de votre aide. Bien cordialement. Alex
J'ai un Userform ou l'on peut selectionner une ligne. Par double clic
sur la ligne choisit, je désirerai positionner ma cellule active sur
la colonne A de la ligne sélectionnée sur ma feuille, et j'ai écrit
ceci :
With Me.Selection
'Pour boucler sur chaque ligne sélectionnée du listbox
For A = 0 To .ListCount - 1
'Si la ligne selectionné dans la listbox correspond à la ligne
teste alors positionne le curseur en colonne 1 de la ligne
sélectionnée
If .Selected(A) = True Then
Sheets("VC-VT").Range("A" & (A)).Select
'enlever la sélection de cette ligne du listbox
.Selected(A) = False
End If
Next
End With
Malheureusement, sur ma feuille, il ne me selectionne pas la ligne qui
a été selectionnée via la listbox du userform.
Quelqu'un aurait il la solution à mon problème ?
Merci par avance de votre aide.
Bien cordialement.
Alex
J'ai un Userform ou l'on peut selectionner une ligne. Par double clic sur la ligne choisit, je désirerai positionner ma cellule active sur la colonne A de la ligne sélectionnée sur ma feuille, et j'ai écrit ceci :
With Me.Selection 'Pour boucler sur chaque ligne sélectionnée du listbox For A = 0 To .ListCount - 1 'Si la ligne selectionné dans la listbox correspond à la ligne teste alors positionne le curseur en colonne 1 de la ligne sélectionnée If .Selected(A) = True Then Sheets("VC-VT").Range("A" & (A)).Select
'enlever la sélection de cette ligne du listbox .Selected(A) = False End If Next End With
Malheureusement, sur ma feuille, il ne me selectionne pas la ligne qui a été selectionnée via la listbox du userform. Quelqu'un aurait il la solution à mon problème ? Merci par avance de votre aide. Bien cordialement. Alex
Alex
Super merci Je venais justement de trouver la solution et j'ai ecrit ceci : Sheets("VC-VT").Cells(A + 1, 1).Select
Je viens de m'appercevoir d'un autre problème, mais cette fois ci avec l'activation de ma listebox dans mon userform, il ne me prend pas toutes les lignes de ma base de données. Et je ne vois pas à quoi cela est du, Est ce à un parametre de la propriété de ma listebox ou est c e lié à ce que j'ai écrit : rivate Sub UserForm_Activate()
Dim DerLig As Long 'Feuil1 n'est pas le nom de l'onglet mais de la propriété NAME 'de la feuille visible seulement dans la fenêtre de l'éditeur de code. With Feuil14 'si aucune donnée dans la feuille, sortie de la procédure. If IsEmpty(.UsedRange) Then Exit Sub 'Trouver la dernière ligne où il y a des données 'dans les colonnes A:BB DerLig = .Range("A:BB").Find(What:="*", _ LookIn:=xlValues, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row 'Comme les données débutent en ligne 2, derlig ne peut pas être plus petit que 2 If DerLig < 2 Then DerLig = 2 'Affectation de la plage de cellules à une variable objet Range Set Rg = .Range("A2:BB" & DerLig) End With With Me.Selectionvente ' Nombre des colonnes du tableau ou plage de données .ColumnCount = Rg.Columns.Count 'largeur des colonnes dans le listbox .ColumnWidths = "40;0;0;0;0;250;60;15;15;15;15;15;15;15;15;170;170" 'Remplir le listbox avec les données du tableau .List = Rg.Value 'S'assure qu'aucune ligne de listbox n'est sélectionnée. .ListIndex = -1 End With End Sub
Merci par avance de votre aide. Alex
Super merci
Je venais justement de trouver la solution et j'ai ecrit ceci :
Sheets("VC-VT").Cells(A + 1, 1).Select
Je viens de m'appercevoir d'un autre problème, mais cette fois ci avec
l'activation de ma listebox dans mon userform, il ne me prend pas
toutes les lignes de ma base de données. Et je ne vois pas à quoi cela
est du, Est ce à un parametre de la propriété de ma listebox ou est c e
lié à ce que j'ai écrit :
rivate Sub UserForm_Activate()
Dim DerLig As Long
'Feuil1 n'est pas le nom de l'onglet mais de la propriété NAME
'de la feuille visible seulement dans la fenêtre de l'éditeur de code.
With Feuil14
'si aucune donnée dans la feuille, sortie de la procédure.
If IsEmpty(.UsedRange) Then Exit Sub
'Trouver la dernière ligne où il y a des données
'dans les colonnes A:BB
DerLig = .Range("A:BB").Find(What:="*", _
LookIn:=xlValues, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Comme les données débutent en ligne 2, derlig ne peut pas être plus
petit que 2
If DerLig < 2 Then DerLig = 2
'Affectation de la plage de cellules à une variable objet Range
Set Rg = .Range("A2:BB" & DerLig)
End With
With Me.Selectionvente
' Nombre des colonnes du tableau ou plage de données
.ColumnCount = Rg.Columns.Count
'largeur des colonnes dans le listbox
.ColumnWidths = "40;0;0;0;0;250;60;15;15;15;15;15;15;15;15;170;170"
'Remplir le listbox avec les données du tableau
.List = Rg.Value
'S'assure qu'aucune ligne de listbox n'est sélectionnée.
.ListIndex = -1
End With
End Sub
Super merci Je venais justement de trouver la solution et j'ai ecrit ceci : Sheets("VC-VT").Cells(A + 1, 1).Select
Je viens de m'appercevoir d'un autre problème, mais cette fois ci avec l'activation de ma listebox dans mon userform, il ne me prend pas toutes les lignes de ma base de données. Et je ne vois pas à quoi cela est du, Est ce à un parametre de la propriété de ma listebox ou est c e lié à ce que j'ai écrit : rivate Sub UserForm_Activate()
Dim DerLig As Long 'Feuil1 n'est pas le nom de l'onglet mais de la propriété NAME 'de la feuille visible seulement dans la fenêtre de l'éditeur de code. With Feuil14 'si aucune donnée dans la feuille, sortie de la procédure. If IsEmpty(.UsedRange) Then Exit Sub 'Trouver la dernière ligne où il y a des données 'dans les colonnes A:BB DerLig = .Range("A:BB").Find(What:="*", _ LookIn:=xlValues, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row 'Comme les données débutent en ligne 2, derlig ne peut pas être plus petit que 2 If DerLig < 2 Then DerLig = 2 'Affectation de la plage de cellules à une variable objet Range Set Rg = .Range("A2:BB" & DerLig) End With With Me.Selectionvente ' Nombre des colonnes du tableau ou plage de données .ColumnCount = Rg.Columns.Count 'largeur des colonnes dans le listbox .ColumnWidths = "40;0;0;0;0;250;60;15;15;15;15;15;15;15;15;170;170" 'Remplir le listbox avec les données du tableau .List = Rg.Value 'S'assure qu'aucune ligne de listbox n'est sélectionnée. .ListIndex = -1 End With End Sub
Merci par avance de votre aide. Alex
Alex
Merci de ne pas tenir compte du message ci-dessus. En fait j'avait juste fait une erreur sur le N°de la feuille dans mon With Feuil14. Avec mes excuses Néanmoins, j'ai une autre question, pour revenir à ma question initiale à savoir ma selection avec la ligne suivante : Sheets("VC-VT").Cells(A + 1, 1).Select j'ai du la corriger comme cela : Sheets("VC-VT").Cells(A + 2, 1).Select
J'ai du mettre un 2 pour le A+1 sinon il sélectionnait la ligne au dessus. Pourquoi 2 et non pas 1, Est ce à cause derlig < 2 dans mon userform activate ?
Merci par avance de votre réponse.
Cordialement.
Merci de ne pas tenir compte du message ci-dessus. En fait j'avait
juste fait une erreur sur le N°de la feuille dans mon With Feuil14.
Avec mes excuses
Néanmoins, j'ai une autre question, pour revenir à ma question
initiale à savoir ma selection avec la ligne suivante :
Sheets("VC-VT").Cells(A + 1, 1).Select
j'ai du la corriger comme cela :
Sheets("VC-VT").Cells(A + 2, 1).Select
J'ai du mettre un 2 pour le A+1 sinon il sélectionnait la ligne au
dessus. Pourquoi 2 et non pas 1, Est ce à cause derlig < 2 dans mon
userform activate ?
Merci de ne pas tenir compte du message ci-dessus. En fait j'avait juste fait une erreur sur le N°de la feuille dans mon With Feuil14. Avec mes excuses Néanmoins, j'ai une autre question, pour revenir à ma question initiale à savoir ma selection avec la ligne suivante : Sheets("VC-VT").Cells(A + 1, 1).Select j'ai du la corriger comme cela : Sheets("VC-VT").Cells(A + 2, 1).Select
J'ai du mettre un 2 pour le A+1 sinon il sélectionnait la ligne au dessus. Pourquoi 2 et non pas 1, Est ce à cause derlig < 2 dans mon userform activate ?
Merci par avance de votre réponse.
Cordialement.
michdenis
Bonjour,
| Sheets("VC-VT").Range("A" & (A)).Select
Ta boucle débute par A = 0 For A = 0 To .ListCount - 1
il n'y a aucune Feuille dans Excel où la première ligne est 0, le décompte débute par 1. Encore faut-il que ce soit la bonne feuille qui soit active sans quoi, il est impossible de faire un "Select" sur une cellule si cette feuille n'est pas la la feuille active (select).
Ta boucle débute par A = 0
For A = 0 To .ListCount - 1
il n'y a aucune Feuille dans Excel où la première ligne
est 0, le décompte débute par 1. Encore faut-il que ce
soit la bonne feuille qui soit active sans quoi, il est
impossible de faire un "Select" sur une cellule si cette
feuille n'est pas la la feuille active (select).
Ta boucle débute par A = 0 For A = 0 To .ListCount - 1
il n'y a aucune Feuille dans Excel où la première ligne est 0, le décompte débute par 1. Encore faut-il que ce soit la bonne feuille qui soit active sans quoi, il est impossible de faire un "Select" sur une cellule si cette feuille n'est pas la la feuille active (select).
Merci pour ta réponse. Je comprends bien celle-ci, mais peut m'expliquer malgré tout pourquoi je dois mettre +1 si je corrige le 0 en 1. Pourquoi le +1 Serait ce à cause de la ligne de titre ? Merci encore. Cordialement
Bonjour Michel,
Merci pour ta réponse.
Je comprends bien celle-ci, mais peut m'expliquer malgré tout pourquoi
je dois mettre +1 si je corrige le 0 en 1. Pourquoi le +1 Serait ce à
cause de la ligne de titre ?
Merci encore.
Cordialement
Merci pour ta réponse. Je comprends bien celle-ci, mais peut m'expliquer malgré tout pourquoi je dois mettre +1 si je corrige le 0 en 1. Pourquoi le +1 Serait ce à cause de la ligne de titre ? Merci encore. Cordialement
michdenis
L'index du premier item dans un combobox ou un listbox est 0 (zéro) la première ligne d'une feuille de calcul est 1 si on veut transférer à l'aide d'une même variable dans d'une routine un élément d'un listbox vers une cellule, on doit tenir compte de ce décalage de 1.
MichD -------------------------------------------- "Alex" a écrit dans le message de groupe de discussion :
Bonjour Michel,
Merci pour ta réponse. Je comprends bien celle-ci, mais peut m'expliquer malgré tout pourquoi je dois mettre +1 si je corrige le 0 en 1. Pourquoi le +1 Serait ce à cause de la ligne de titre ? Merci encore. Cordialement
L'index du premier item dans un combobox ou un listbox est 0 (zéro)
la première ligne d'une feuille de calcul est 1
si on veut transférer à l'aide d'une même variable dans d'une routine
un élément d'un listbox vers une cellule, on doit tenir compte de ce
décalage de 1.
MichD
--------------------------------------------
"Alex" a écrit dans le message de groupe de discussion :
11cdcca8-b592-4325-b182-41d14ff776f3@o18g2000prh.googlegroups.com...
Bonjour Michel,
Merci pour ta réponse.
Je comprends bien celle-ci, mais peut m'expliquer malgré tout pourquoi
je dois mettre +1 si je corrige le 0 en 1. Pourquoi le +1 Serait ce à
cause de la ligne de titre ?
Merci encore.
Cordialement
L'index du premier item dans un combobox ou un listbox est 0 (zéro) la première ligne d'une feuille de calcul est 1 si on veut transférer à l'aide d'une même variable dans d'une routine un élément d'un listbox vers une cellule, on doit tenir compte de ce décalage de 1.
MichD -------------------------------------------- "Alex" a écrit dans le message de groupe de discussion :
Bonjour Michel,
Merci pour ta réponse. Je comprends bien celle-ci, mais peut m'expliquer malgré tout pourquoi je dois mettre +1 si je corrige le 0 en 1. Pourquoi le +1 Serait ce à cause de la ligne de titre ? Merci encore. Cordialement