OVH Cloud OVH Cloud

Se positionner sur une liste

10 réponses
Avatar
Shnoulle
Bonjour à tous et merci d'avance,
Avec:

Activeshett.Shapes("lstTraitement").ControlFormat.ListFillRange
Je met à jour une liste,

Maintenant ce que j'aimerais , c'est que la liste se positionne sur le
dernier élément, j'arrive à sélectionner le dernier élément , mais si ma
zone de liste est trop courte , je suis obligé de descendre l'ascenceur
(???)

La question: y a t'il une possibilité pour afficher une zone de liste à un
endrit particulier

Merci tous !

A+
Shnoulle

10 réponses

Avatar
isabelle
bonjour Shnoulle,

With Sheets("Feuil1").ComboBox1
.ListIndex = .ListCount - 1
End With

isabelle


Bonjour à tous et merci d'avance,
Avec:

Activeshett.Shapes("lstTraitement").ControlFormat.ListFillRange
Je met à jour une liste,

Maintenant ce que j'aimerais , c'est que la liste se positionne sur le
dernier élément, j'arrive à sélectionner le dernier élément , mais si ma
zone de liste est trop courte , je suis obligé de descendre l'ascenceur
(???)

La question: y a t'il une possibilité pour afficher une zone de liste à un
endrit particulier

Merci tous !

A+
Shnoulle


Avatar
Shnoulle
Merci Isabelle,
Mais ca ne convient pas,
Pour sélectionner la ligne, j'utilise la cellule liées, donc j'ai bien la
bonne ligne sélectionnée,

Cependant cette ligne peut ne pas ètre affichée si (par exemple) j'ai mla
listeBox qui fait 20 ligne d'affichage et je suis à la 43ème ligne (ou 44ème
ou mème 33ème))

Je voudrait que gérer la première ligne (ou la dernière) ligne affichée dans
ma listBox.

Si j'enregistre la macro: le résultat est : rien du tou (macro vide)

Et je n'ais pas trouvé dans l'explorateur d'objet

Merci quand mème

A+
Shnoulle





De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 11:48:05 -0400
Objet : Re: Se positionner sur une liste

.ListIndex = .ListCount - 1


Avatar
isabelle
je ne comprend pas la question, je croyais que tu voulais sélectionner
le dernier item de la liste, pour un listbox c'est le même principe.

With Sheets("Feuil1").ListBox1
.ListIndex = .ListCount - 1
End With

isabelle


Merci Isabelle,
Mais ca ne convient pas,
Pour sélectionner la ligne, j'utilise la cellule liées, donc j'ai bien la
bonne ligne sélectionnée,

Cependant cette ligne peut ne pas ètre affichée si (par exemple) j'ai mla
listeBox qui fait 20 ligne d'affichage et je suis à la 43ème ligne (ou 44ème
ou mème 33ème))

Je voudrait que gérer la première ligne (ou la dernière) ligne affichée dans
ma listBox.

Si j'enregistre la macro: le résultat est : rien du tou (macro vide)

Et je n'ais pas trouvé dans l'explorateur d'objet

Merci quand mème

A+
Shnoulle

De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 11:48:05 -0400
Objet : Re: Se positionner sur une liste

.ListIndex = .ListCount - 1




Avatar
Shnoulle
Bonjour,

Oui Isabelle, ca sélectionne bien le dernier Item,

Mais ca ne l'affiche pas obligatoirement à l'écran si le contenu de ma
listbox à plus de ligne que le nombre de ligne affichée de cette mème liste.

Ce que je souhaiterais c'est l'équivalent d'une descente d'ascenceur ,
uniquement pour l'affichage et non pour la sélection.

Sur Excel 98 sous Macintosh, quand je sélectionne par ta méthode le deernier
item d'une liste de 50 items alors que la liste en affiche 20 , alors le
50ème est bien sélectionné mais la l'affichage de la liste rest sur les 20
premiers items.

Peut étre sur Windows cela fonctionne différement


Encore merci

A+
Shnoulle





De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 12:58:24 -0400
Objet : Re: Se positionner sur une liste

je ne comprend pas la question, je croyais que tu voulais sélectionner
le dernier item de la liste, pour un listbox c'est le même principe.

With Sheets("Feuil1").ListBox1
.ListIndex = .ListCount - 1
End With

isabelle


Merci Isabelle,
Mais ca ne convient pas,
Pour sélectionner la ligne, j'utilise la cellule liées, donc j'ai bien la
bonne ligne sélectionnée,

Cependant cette ligne peut ne pas ètre affichée si (par exemple) j'ai mla
listeBox qui fait 20 ligne d'affichage et je suis à la 43ème ligne (ou 44ème
ou mème 33ème))

Je voudrait que gérer la première ligne (ou la dernière) ligne affichée dans
ma listBox.

Si j'enregistre la macro: le résultat est : rien du tou (macro vide)

Et je n'ais pas trouvé dans l'explorateur d'objet

Merci quand mème

A+
Shnoulle

De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 11:48:05 -0400
Objet : Re: Se positionner sur une liste

.ListIndex = .ListCount - 1






Avatar
Michel Gaboly
Bonjour,

Comme toi, je suis avant tout un utilisateur Mac.

Je ne crois pas qu’il y ait de solution pour gérer l'ascenseur pour une
liste liée.

Au niveau des barres d'outils, la différence entre Mac et Windows est
que les versions Windows offrent 2 barres d'outils permettant de placer
des objets (liste, boutons, ...) sur la feuille, Formulaires et Contrôles.

Les objets créés avec la barre d'outils Contrôles offrent bien plus de pos-
sibilités, mais malheureusement sur Excel Mac, seule existe la barre
Formulaires.


La seule option possible, selon moi est d'abandonner la liste intégrée à la
feuille et d'associer à un événement quelconque l'affichage d'un UserForm
avec un ListBox; Tu disposes alors de la propriété TopIndex, qui permet
de gérer l'ascenseur en indiquant le premier élément devant être visible.

Mais je suppose que cette solution te paraîtra trop lourde.


Pour info, voici un exemple de code :

Private Sub UserForm_Initialize()
Dim i As Integer
With ListBox1
.List = Range("A1:A30").Value
.ListIndex = .ListCount - 1
.TopIndex = .ListCount
End With
End Sub



Bonjour,

Oui Isabelle, ca sélectionne bien le dernier Item,

Mais ca ne l'affiche pas obligatoirement à l'écran si le contenu de ma
listbox à plus de ligne que le nombre de ligne affichée de cette mème liste.

Ce que je souhaiterais c'est l'équivalent d'une descente d'ascenceur ,
uniquement pour l'affichage et non pour la sélection.

Sur Excel 98 sous Macintosh, quand je sélectionne par ta méthode le deernier
item d'une liste de 50 items alors que la liste en affiche 20 , alors le
50ème est bien sélectionné mais la l'affichage de la liste rest sur les 20
premiers items.

Peut étre sur Windows cela fonctionne différement

Encore merci

A+
Shnoulle

De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 12:58:24 -0400
Objet : Re: Se positionner sur une liste

je ne comprend pas la question, je croyais que tu voulais sélectionner
le dernier item de la liste, pour un listbox c'est le même principe.

With Sheets("Feuil1").ListBox1
.ListIndex = .ListCount - 1
End With

isabelle


Merci Isabelle,
Mais ca ne convient pas,
Pour sélectionner la ligne, j'utilise la cellule liées, donc j'ai bien la
bonne ligne sélectionnée,

Cependant cette ligne peut ne pas ètre affichée si (par exemple) j'ai mla
listeBox qui fait 20 ligne d'affichage et je suis à la 43ème ligne (ou 44ème
ou mème 33ème))

Je voudrait que gérer la première ligne (ou la dernière) ligne affichée dans
ma listBox.

Si j'enregistre la macro: le résultat est : rien du tou (macro vide)

Et je n'ais pas trouvé dans l'explorateur d'objet

Merci quand mème

A+
Shnoulle

De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 11:48:05 -0400
Objet : Re: Se positionner sur une liste

.ListIndex = .ListCount - 1





--
Cordialement,

Michel Gaboly
http://www.gaboly.com




Avatar
Shnoulle
Bonjour Michel,

COOL, merci

Tu sais la macro sous lequel je travaille est déjas trés lourde,

Donc on peut toujours l'alourdir,
par contre ca va me prendre pas mal de temps.
Je sais pas si j'aurais le courage

Je met tout de suite en archive pour la prochaine listbox que je voudrais
utiliser



Merci, merci



Ha non, j'ai relu, ca marche pas , il faudrait que Excel 98 gére les
userform non modale et ca non plus c'est pas possible .....



Merci Quand mème


A+
Shnoulle





De : Michel Gaboly
Répondre à :
Groupes : microsoft.public.fr.excel
Date : Tue, 20 Jul 2004 12:00:26 +0200
Objet : Re: Se positionner sur une liste

Bonjour,

Comme toi, je suis avant tout un utilisateur Mac.

Je ne crois pas qu’il y ait de solution pour gérer l'ascenseur pour une
liste liée.

Au niveau des barres d'outils, la différence entre Mac et Windows est
que les versions Windows offrent 2 barres d'outils permettant de placer
des objets (liste, boutons, ...) sur la feuille, Formulaires et Contrôles.

Les objets créés avec la barre d'outils Contrôles offrent bien plus de pos-
sibilités, mais malheureusement sur Excel Mac, seule existe la barre
Formulaires.


La seule option possible, selon moi est d'abandonner la liste intégrée à la
feuille et d'associer à un événement quelconque l'affichage d'un UserForm
avec un ListBox; Tu disposes alors de la propriété TopIndex, qui permet
de gérer l'ascenseur en indiquant le premier élément devant être visible.

Mais je suppose que cette solution te paraîtra trop lourde.


Pour info, voici un exemple de code :

Private Sub UserForm_Initialize()
Dim i As Integer
With ListBox1
.List = Range("A1:A30").Value
.ListIndex = .ListCount - 1
.TopIndex = .ListCount
End With
End Sub



Bonjour,

Oui Isabelle, ca sélectionne bien le dernier Item,

Mais ca ne l'affiche pas obligatoirement à l'écran si le contenu de ma
listbox à plus de ligne que le nombre de ligne affichée de cette mème liste.

Ce que je souhaiterais c'est l'équivalent d'une descente d'ascenceur ,
uniquement pour l'affichage et non pour la sélection.

Sur Excel 98 sous Macintosh, quand je sélectionne par ta méthode le deernier
item d'une liste de 50 items alors que la liste en affiche 20 , alors le
50ème est bien sélectionné mais la l'affichage de la liste rest sur les 20
premiers items.

Peut étre sur Windows cela fonctionne différement

Encore merci

A+
Shnoulle

De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 12:58:24 -0400
Objet : Re: Se positionner sur une liste

je ne comprend pas la question, je croyais que tu voulais sélectionner
le dernier item de la liste, pour un listbox c'est le même principe.

With Sheets("Feuil1").ListBox1
.ListIndex = .ListCount - 1
End With

isabelle


Merci Isabelle,
Mais ca ne convient pas,
Pour sélectionner la ligne, j'utilise la cellule liées, donc j'ai bien la
bonne ligne sélectionnée,

Cependant cette ligne peut ne pas ètre affichée si (par exemple) j'ai mla
listeBox qui fait 20 ligne d'affichage et je suis à la 43ème ligne (ou
44ème
ou mème 33ème))

Je voudrait que gérer la première ligne (ou la dernière) ligne affichée
dans
ma listBox.

Si j'enregistre la macro: le résultat est : rien du tou (macro vide)

Et je n'ais pas trouvé dans l'explorateur d'objet

Merci quand mème

A+
Shnoulle

De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 11:48:05 -0400
Objet : Re: Se positionner sur une liste

.ListIndex = .ListCount - 1





--
Cordialement,

Michel Gaboly
http://www.gaboly.com








Avatar
Michel Gaboly
Re,

De rien, ;-))

Aucune version sur Mac ne gère les UserForms non modaux ;-((
Je ne suis pas sur en ce qui concerne Excel 2004, mais cela m'éton-
nerait.

Il faut pour cela une version de VBA basée sur VB6.

Or, à ma connaissance toutes les versions Mac (depuis Excel 98)
sont basées sur VB5. Dans la mesure où VB n'existe pas sur Mac
cela m'étonnerait beaucoup que Microsoft fasse l'effort de sortir
un jour une version de VBA pour Mac reposant sur VB6.

Ceci dit, que fais-tu qui nécessite absolument un UserForm non
modal ? J’ai développé diverses applis dont certaines importantes,
et j'ai toujours réussi à m'en passer.



Bonjour Michel,

COOL, merci

Tu sais la macro sous lequel je travaille est déjas trés lourde,

Donc on peut toujours l'alourdir,
par contre ca va me prendre pas mal de temps.
Je sais pas si j'aurais le courage

Je met tout de suite en archive pour la prochaine listbox que je voudrais
utiliser

Merci, merci

Ha non, j'ai relu, ca marche pas , il faudrait que Excel 98 gére les
userform non modale et ca non plus c'est pas possible .....

Merci Quand mème

A+
Shnoulle

De : Michel Gaboly
Répondre à :
Groupes : microsoft.public.fr.excel
Date : Tue, 20 Jul 2004 12:00:26 +0200
Objet : Re: Se positionner sur une liste

Bonjour,

Comme toi, je suis avant tout un utilisateur Mac.

Je ne crois pas qu’il y ait de solution pour gérer l'ascenseur pour une
liste liée.

Au niveau des barres d'outils, la différence entre Mac et Windows est
que les versions Windows offrent 2 barres d'outils permettant de placer
des objets (liste, boutons, ...) sur la feuille, Formulaires et Contrôles.

Les objets créés avec la barre d'outils Contrôles offrent bien plus de pos-
sibilités, mais malheureusement sur Excel Mac, seule existe la barre
Formulaires.


La seule option possible, selon moi est d'abandonner la liste intégrée à la
feuille et d'associer à un événement quelconque l'affichage d'un UserForm
avec un ListBox; Tu disposes alors de la propriété TopIndex, qui permet
de gérer l'ascenseur en indiquant le premier élément devant être visible.

Mais je suppose que cette solution te paraîtra trop lourde.


Pour info, voici un exemple de code :

Private Sub UserForm_Initialize()
Dim i As Integer
With ListBox1
.List = Range("A1:A30").Value
.ListIndex = .ListCount - 1
.TopIndex = .ListCount
End With
End Sub



Bonjour,

Oui Isabelle, ca sélectionne bien le dernier Item,

Mais ca ne l'affiche pas obligatoirement à l'écran si le contenu de ma
listbox à plus de ligne que le nombre de ligne affichée de cette mème liste.

Ce que je souhaiterais c'est l'équivalent d'une descente d'ascenceur ,
uniquement pour l'affichage et non pour la sélection.

Sur Excel 98 sous Macintosh, quand je sélectionne par ta méthode le deernier
item d'une liste de 50 items alors que la liste en affiche 20 , alors le
50ème est bien sélectionné mais la l'affichage de la liste rest sur les 20
premiers items.

Peut étre sur Windows cela fonctionne différement

Encore merci

A+
Shnoulle

De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 12:58:24 -0400
Objet : Re: Se positionner sur une liste

je ne comprend pas la question, je croyais que tu voulais sélectionner
le dernier item de la liste, pour un listbox c'est le même principe.

With Sheets("Feuil1").ListBox1
.ListIndex = .ListCount - 1
End With

isabelle


Merci Isabelle,
Mais ca ne convient pas,
Pour sélectionner la ligne, j'utilise la cellule liées, donc j'ai bien la
bonne ligne sélectionnée,

Cependant cette ligne peut ne pas ètre affichée si (par exemple) j'ai mla
listeBox qui fait 20 ligne d'affichage et je suis à la 43ème ligne (ou
44ème
ou mème 33ème))

Je voudrait que gérer la première ligne (ou la dernière) ligne affichée
dans
ma listBox.

Si j'enregistre la macro: le résultat est : rien du tou (macro vide)

Et je n'ais pas trouvé dans l'explorateur d'objet

Merci quand mème

A+
Shnoulle

De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 11:48:05 -0400
Objet : Re: Se positionner sur une liste

.ListIndex = .ListCount - 1





--
Cordialement,

Michel Gaboly
http://www.gaboly.com





--
Cordialement,

Michel Gaboly
http://www.gaboly.com






Avatar
Shnoulle
Merci Michel,

Une userForm non modale, juste pour gérer le .TopIndex

Je vais peut étre m'en passer !!!





A+
Shnoulle





De : Michel Gaboly
Répondre à :
Groupes : microsoft.public.fr.excel
Date : Tue, 20 Jul 2004 12:35:31 +0200
Objet : Re: Se positionner sur une liste

Re,

De rien, ;-))

Aucune version sur Mac ne gère les UserForms non modaux ;-((
Je ne suis pas sur en ce qui concerne Excel 2004, mais cela m'éton-
nerait.

Il faut pour cela une version de VBA basée sur VB6.

Or, à ma connaissance toutes les versions Mac (depuis Excel 98)
sont basées sur VB5. Dans la mesure où VB n'existe pas sur Mac
cela m'étonnerait beaucoup que Microsoft fasse l'effort de sortir
un jour une version de VBA pour Mac reposant sur VB6.

Ceci dit, que fais-tu qui nécessite absolument un UserForm non
modal ? J’ai développé diverses applis dont certaines importantes,
et j'ai toujours réussi à m'en passer.



Bonjour Michel,

COOL, merci

Tu sais la macro sous lequel je travaille est déjas trés lourde,

Donc on peut toujours l'alourdir,
par contre ca va me prendre pas mal de temps.
Je sais pas si j'aurais le courage

Je met tout de suite en archive pour la prochaine listbox que je voudrais
utiliser

Merci, merci

Ha non, j'ai relu, ca marche pas , il faudrait que Excel 98 gére les
userform non modale et ca non plus c'est pas possible .....

Merci Quand mème

A+
Shnoulle

De : Michel Gaboly
Répondre à :
Groupes : microsoft.public.fr.excel
Date : Tue, 20 Jul 2004 12:00:26 +0200
Objet : Re: Se positionner sur une liste

Bonjour,

Comme toi, je suis avant tout un utilisateur Mac.

Je ne crois pas qu’il y ait de solution pour gérer l'ascenseur pour une
liste liée.

Au niveau des barres d'outils, la différence entre Mac et Windows est
que les versions Windows offrent 2 barres d'outils permettant de placer
des objets (liste, boutons, ...) sur la feuille, Formulaires et Contrôles.

Les objets créés avec la barre d'outils Contrôles offrent bien plus de pos-
sibilités, mais malheureusement sur Excel Mac, seule existe la barre
Formulaires.


La seule option possible, selon moi est d'abandonner la liste intégrée à la
feuille et d'associer à un événement quelconque l'affichage d'un UserForm
avec un ListBox; Tu disposes alors de la propriété TopIndex, qui permet
de gérer l'ascenseur en indiquant le premier élément devant être visible.

Mais je suppose que cette solution te paraîtra trop lourde.


Pour info, voici un exemple de code :

Private Sub UserForm_Initialize()
Dim i As Integer
With ListBox1
.List = Range("A1:A30").Value
.ListIndex = .ListCount - 1
.TopIndex = .ListCount
End With
End Sub



Bonjour,

Oui Isabelle, ca sélectionne bien le dernier Item,

Mais ca ne l'affiche pas obligatoirement à l'écran si le contenu de ma
listbox à plus de ligne que le nombre de ligne affichée de cette mème
liste.

Ce que je souhaiterais c'est l'équivalent d'une descente d'ascenceur ,
uniquement pour l'affichage et non pour la sélection.

Sur Excel 98 sous Macintosh, quand je sélectionne par ta méthode le
deernier
item d'une liste de 50 items alors que la liste en affiche 20 , alors le
50ème est bien sélectionné mais la l'affichage de la liste rest sur les 20
premiers items.

Peut étre sur Windows cela fonctionne différement

Encore merci

A+
Shnoulle

De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 12:58:24 -0400
Objet : Re: Se positionner sur une liste

je ne comprend pas la question, je croyais que tu voulais sélectionner
le dernier item de la liste, pour un listbox c'est le même principe.

With Sheets("Feuil1").ListBox1
.ListIndex = .ListCount - 1
End With

isabelle


Merci Isabelle,
Mais ca ne convient pas,
Pour sélectionner la ligne, j'utilise la cellule liées, donc j'ai bien la
bonne ligne sélectionnée,

Cependant cette ligne peut ne pas ètre affichée si (par exemple) j'ai mla
listeBox qui fait 20 ligne d'affichage et je suis à la 43ème ligne (ou
44ème
ou mème 33ème))

Je voudrait que gérer la première ligne (ou la dernière) ligne affichée
dans
ma listBox.

Si j'enregistre la macro: le résultat est : rien du tou (macro vide)

Et je n'ais pas trouvé dans l'explorateur d'objet

Merci quand mème

A+
Shnoulle

De : isabelle
Groupes : microsoft.public.fr.excel
Date : Mon, 19 Jul 2004 11:48:05 -0400
Objet : Re: Se positionner sur une liste

.ListIndex = .ListCount - 1





--
Cordialement,

Michel Gaboly
http://www.gaboly.com





--
Cordialement,

Michel Gaboly
http://www.gaboly.com










Avatar
isabelle
Sur Excel 98 sous Macintosh,

ha ! voilà le problème.

Peut étre sur Windows cela fonctionne différement


effectivement c'est différent, désolé je passe la main ne connaissant
pas mac.

isabelle

Avatar
Shnoulle
Désolée Isabelle , je n'avais pas testé sur PC et donc n'avait pas précisé,

Je vais donc suivre la phrase qui suit:
Avant de poser une question sur le forum, je test sur PC pour voir les
différences.

Bon shuis sur que la prochaine question que je pose je testerais, je vous
promet pas pour la deuxième !!!




A+
Shnoulle





De : isabelle
Groupes : microsoft.public.fr.excel
Date : Tue, 20 Jul 2004 09:59:10 -0400
Objet : Re: Se positionner sur une liste



Sur Excel 98 sous Macintosh,

ha ! voilà le problème.

Peut étre sur Windows cela fonctionne différement


effectivement c'est différent, désolé je passe la main ne connaissant
pas mac.

isabelle