Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Cells(x, y).Select

6 réponses
Avatar
DoMi
Bonjour,

Je suis en retraite depuis fin octobre 2009, et voil=E0 que je me suis
remis =E0 VBA sous Excel.
J'avais oubli=E9 comme c'=E9tait passionnant !
J'ai oubli=E9 aussi beaucoup de choses, mais =E7a revient vite...
Je n'ai pas oubli=E9, par contre, qu'on trouve plein de r=E9ponses aux
questions qu'on se pose sur le Forum.

Mais je n'ai pas trouv=E9 de r=E9ponse au probl=E8me suivant:
J'ai un tableau qui contient : colonne A des noms, colonne B des
pr=E9noms, colonne C la concat=E9nation nom + " " + pr=E9nom, et les
colonnes suivantes plein d'autre choses. Pourquoi concat=E9ner nom et
pr=E9nom ? Parce que cette colonne me sert de RowSource pour une
ComboBox1 qui me permet de choisir la personne, sachant que je peux
avoir des personnes avec m=EAme nom mais pr=E9nom diff=E9rent, le choix ne
peut donc pas se faire sur la colonne des noms.
Dans la Sub ComboBox1_Change, j'ai mis un Cells(1, 3).Select pour
aller en premi=E8re ligne de la colonne C, puis un Cell.Find pour aller
=E0 la ligne contenant NomPrenom.
Malheureusement, pour je ne sais quelle raison, la cellule active
reste A1, et j'ai beau essayer un If ActiveCell.Address <> "$C$1"
Then... rien =E0 faire, si bien que je n'atteins pas la ligne qui
m'int=E9resse.

Quelqu'un aurait une id=E9e sur ce comportement ?
Merci !

6 réponses

Avatar
DanielCo
Bonjour,
et bienvenue sur le forum !

Tu peux utiliser la propriété "ListIndex" qui correspond à la valeur du
combobox, 0 corresppondant à la première valeur de rowsource. Tu peux
donc utiliser :

Private Sub ComboBox1_Change()
With Me.ComboBox1
Cells(.ListIndex + 1, 3).Select
End With
End Sub

pour te positionner sur la cellule.
De plus, tu peux faire apparaître plusieurs colonness dan le combobox
en utilisant la propriété ColumnCount pour spécifier le nombre de
colonnes à afficher. La propriété "BoundColumn définit la colonne qui
fournira la valeur de la combobox.
Cordialement.
Daniel


Bonjour,

Je suis en retraite depuis fin octobre 2009, et voilà que je me suis
remis à VBA sous Excel.
J'avais oublié comme c'était passionnant !
J'ai oublié aussi beaucoup de choses, mais ça revient vite...
Je n'ai pas oublié, par contre, qu'on trouve plein de réponses aux
questions qu'on se pose sur le Forum.

Mais je n'ai pas trouvé de réponse au problème suivant:
J'ai un tableau qui contient : colonne A des noms, colonne B des
prénoms, colonne C la concaténation nom + " " + prénom, et les
colonnes suivantes plein d'autre choses. Pourquoi concaténer nom et
prénom ? Parce que cette colonne me sert de RowSource pour une
ComboBox1 qui me permet de choisir la personne, sachant que je peux
avoir des personnes avec même nom mais prénom différent, le choix ne
peut donc pas se faire sur la colonne des noms.
Dans la Sub ComboBox1_Change, j'ai mis un Cells(1, 3).Select pour
aller en première ligne de la colonne C, puis un Cell.Find pour aller
à la ligne contenant NomPrenom.
Malheureusement, pour je ne sais quelle raison, la cellule active
reste A1, et j'ai beau essayer un If ActiveCell.Address <> "$C$1"
Then... rien à faire, si bien que je n'atteins pas la ligne qui
m'intéresse.

Quelqu'un aurait une idée sur ce comportement ?
Merci !
Avatar
MichD
Bonjour,

Dans ton formulaire, pour sélectionner le nom & prénom de la plage source de
la feuille de calcul que l'usager à choisi dans le combobox, tu fais comme ceci

En supposant que tu as utilisé la propriété RowSource du Combobox pour définir
la plage de cellules sources à afficher. Tu dois adapter le nom de l'onglet de la
feuille dans la procédure pour celle de ton application.

'----------------------------
Private Sub ComboBox1_Change()

With Me.ComboBox1
Worksheets("Feuil1").Range(.RowSource)(.ListIndex + 1).Select
End With

End Sub
'----------------------------


MichD
------------------------------------------
"DoMi" a écrit dans le message de groupe de discussion :


Bonjour,

Je suis en retraite depuis fin octobre 2009, et voilà que je me suis
remis à VBA sous Excel.
J'avais oublié comme c'était passionnant !
J'ai oublié aussi beaucoup de choses, mais ça revient vite...
Je n'ai pas oublié, par contre, qu'on trouve plein de réponses aux
questions qu'on se pose sur le Forum.

Mais je n'ai pas trouvé de réponse au problème suivant:
J'ai un tableau qui contient : colonne A des noms, colonne B des
prénoms, colonne C la concaténation nom + " " + prénom, et les
colonnes suivantes plein d'autre choses. Pourquoi concaténer nom et
prénom ? Parce que cette colonne me sert de RowSource pour une
ComboBox1 qui me permet de choisir la personne, sachant que je peux
avoir des personnes avec même nom mais prénom différent, le choix ne
peut donc pas se faire sur la colonne des noms.
Dans la Sub ComboBox1_Change, j'ai mis un Cells(1, 3).Select pour
aller en première ligne de la colonne C, puis un Cell.Find pour aller
à la ligne contenant NomPrenom.
Malheureusement, pour je ne sais quelle raison, la cellule active
reste A1, et j'ai beau essayer un If ActiveCell.Address <> "$C$1"
Then... rien à faire, si bien que je n'atteins pas la ligne qui
m'intéresse.

Quelqu'un aurait une idée sur ce comportement ?
Merci !
Avatar
MichD
J'ai omis une ligne de code... Pour sélectionner une cellule sur une feuille particulière,
on doit s'assurer que cette feuille est celle qui est active au moment de la sélection.

'----------------------------
Private Sub ComboBox1_Change()

With Me.ComboBox1
Range(.RowSource).Parent.Select
Range(.RowSource)(.ListIndex + 1).Select
End With

End Sub
'----------------------------

MichD
------------------------------------------
Avatar
Jacky
Bonjour,

Si le but de la manouvre est de récupérer les infos suivantes de la feuille dans des "textbox", il y a aussi
ceci
'------------
Private Sub ComboBox1_Change()
With Feuil1
Me.TextBox1.Value = .Cells(Me.ComboBox1.ListIndex + 2, 4)
Me.TextBox2.Value = .Cells(Me.ComboBox1.ListIndex + 2, 5)
End With
End Sub
'---------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201110/cijTuBQTlI.xls


--
Salutations
JJ


"DoMi" a écrit dans le message de news:

Bonjour,

Je suis en retraite depuis fin octobre 2009, et voilà que je me suis
remis à VBA sous Excel.
J'avais oublié comme c'était passionnant !
J'ai oublié aussi beaucoup de choses, mais ça revient vite...
Je n'ai pas oublié, par contre, qu'on trouve plein de réponses aux
questions qu'on se pose sur le Forum.

Mais je n'ai pas trouvé de réponse au problème suivant:
J'ai un tableau qui contient : colonne A des noms, colonne B des
prénoms, colonne C la concaténation nom + " " + prénom, et les
colonnes suivantes plein d'autre choses. Pourquoi concaténer nom et
prénom ? Parce que cette colonne me sert de RowSource pour une
ComboBox1 qui me permet de choisir la personne, sachant que je peux
avoir des personnes avec même nom mais prénom différent, le choix ne
peut donc pas se faire sur la colonne des noms.
Dans la Sub ComboBox1_Change, j'ai mis un Cells(1, 3).Select pour
aller en première ligne de la colonne C, puis un Cell.Find pour aller
à la ligne contenant NomPrenom.
Malheureusement, pour je ne sais quelle raison, la cellule active
reste A1, et j'ai beau essayer un If ActiveCell.Address <> "$C$1"
Then... rien à faire, si bien que je n'atteins pas la ligne qui
m'intéresse.

Quelqu'un aurait une idée sur ce comportement ?
Merci !
Avatar
DoMi
On 23 oct, 13:00, DanielCo wrote:
Bonjour,
et bienvenue sur le forum !

Tu peux utiliser la propriété "ListIndex" qui correspond à la valeu r du
combobox, 0 corresppondant à la première valeur de rowsource. Tu peux
donc utiliser :

Private Sub ComboBox1_Change()
    With Me.ComboBox1
        Cells(.ListIndex + 1, 3).Select
    End With
End Sub

pour te positionner sur la cellule.
De plus, tu peux faire apparaître plusieurs colonness dan le combobox
en utilisant la propriété ColumnCount pour spécifier le nombre de
colonnes à afficher. La propriété "BoundColumn définit la colonne qui
fournira la valeur de la combobox.
Cordialement.
Daniel



> Bonjour,

> Je suis en retraite depuis fin octobre 2009, et voilà que je me suis
> remis à VBA sous Excel.
> J'avais oublié comme c'était passionnant !
> J'ai oublié aussi beaucoup de choses, mais ça revient vite...
> Je n'ai pas oublié, par contre, qu'on trouve plein de réponses aux
> questions qu'on se pose sur le Forum.

> Mais je n'ai pas trouvé de réponse au problème suivant:
> J'ai un tableau qui contient : colonne A des noms, colonne B des
> prénoms, colonne C la concaténation nom + " " + prénom, et les
> colonnes suivantes plein d'autre choses. Pourquoi concaténer nom et
> prénom ? Parce que cette colonne me sert de RowSource pour une
> ComboBox1 qui me permet de choisir la personne, sachant que je peux
> avoir des personnes avec même nom mais prénom différent, le choix ne
> peut donc pas se faire sur la colonne des noms.
> Dans la Sub ComboBox1_Change, j'ai mis un Cells(1, 3).Select pour
> aller en première ligne de la colonne C, puis un Cell.Find pour aller
> à la ligne contenant NomPrenom.
> Malheureusement, pour je ne sais quelle raison, la cellule active
> reste A1, et j'ai beau essayer un If ActiveCell.Address <> "$C$1"
> Then... rien à faire, si bien que je n'atteins pas la ligne qui
> m'intéresse.

> Quelqu'un aurait une idée sur ce comportement ?
> Merci !- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour,

et merci pour ce message de bienvenue, mais je ne suis pas nouveau
ici : j'y suis avec le profil actuel depuis août 2008, et auparavant
depuis plusieurs années avec mon adresse mail dans une grande
entreprise, mais un jour on nous a interdit d'utiliser notre adresse
mail professionnelle sur les forums, d'où mon changement en 2008.

En tous cas, merci à vous trois (DanielCo MichD et Jacky) de m'avoir
rappelé la propriété ListIndex !
Avatar
Jacquouille
Bonsoir
J'ai connu un Doumi qui venait aux soupers du MPFE .....jadis



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"DoMi" a écrit dans le message de groupe de discussion :


On 23 oct, 13:00, DanielCo wrote:
Bonjour,
et bienvenue sur le forum !

Tu peux utiliser la propriété "ListIndex" qui correspond à la valeur du
combobox, 0 corresppondant à la première valeur de rowsource. Tu peux
donc utiliser :

Private Sub ComboBox1_Change()
With Me.ComboBox1
Cells(.ListIndex + 1, 3).Select
End With
End Sub

pour te positionner sur la cellule.
De plus, tu peux faire apparaître plusieurs colonness dan le combobox
en utilisant la propriété ColumnCount pour spécifier le nombre de
colonnes à afficher. La propriété "BoundColumn définit la colonne qui
fournira la valeur de la combobox.
Cordialement.
Daniel



> Bonjour,

> Je suis en retraite depuis fin octobre 2009, et voilà que je me suis
> remis à VBA sous Excel.
> J'avais oublié comme c'était passionnant !
> J'ai oublié aussi beaucoup de choses, mais ça revient vite...
> Je n'ai pas oublié, par contre, qu'on trouve plein de réponses aux
> questions qu'on se pose sur le Forum.

> Mais je n'ai pas trouvé de réponse au problème suivant:
> J'ai un tableau qui contient : colonne A des noms, colonne B des
> prénoms, colonne C la concaténation nom + " " + prénom, et les
> colonnes suivantes plein d'autre choses. Pourquoi concaténer nom et
> prénom ? Parce que cette colonne me sert de RowSource pour une
> ComboBox1 qui me permet de choisir la personne, sachant que je peux
> avoir des personnes avec même nom mais prénom différent, le choix ne
> peut donc pas se faire sur la colonne des noms.
> Dans la Sub ComboBox1_Change, j'ai mis un Cells(1, 3).Select pour
> aller en première ligne de la colonne C, puis un Cell.Find pour aller
> à la ligne contenant NomPrenom.
> Malheureusement, pour je ne sais quelle raison, la cellule active
> reste A1, et j'ai beau essayer un If ActiveCell.Address <> "$C$1"
> Then... rien à faire, si bien que je n'atteins pas la ligne qui
> m'intéresse.

> Quelqu'un aurait une idée sur ce comportement ?
> Merci !- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour,

et merci pour ce message de bienvenue, mais je ne suis pas nouveau
ici : j'y suis avec le profil actuel depuis août 2008, et auparavant
depuis plusieurs années avec mon adresse mail dans une grande
entreprise, mais un jour on nous a interdit d'utiliser notre adresse
mail professionnelle sur les forums, d'où mon changement en 2008.

En tous cas, merci à vous trois (DanielCo MichD et Jacky) de m'avoir
rappelé la propriété ListIndex !