Cells(x, y).Select

Le
DoMi
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 !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #23895701
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 !
MichD
Le #23895741
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 !
MichD
Le #23895731
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
------------------------------------------
Jacky
Le #23895811
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"
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 !
DoMi
Le #23898921
On 23 oct, 13:00, DanielCo
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 !
Jacquouille
Le #23900021
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
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 !
Publicité
Poster une réponse
Anonyme