OVH Cloud OVH Cloud

Déplacement d'éléments ds 1 Listbox

8 réponses
Avatar
La Rota
Bonjour à tous,

J'ai trouvé sous excelabo
(http://www.excelabo.net/xl/controles.php#deplacementliste) la solution
permettant de déplacer les éléments d'un listbox.
En ajoutant les éléments dans ce listbox par ".additem", cela fonctionne.
Mais quand on rempli ce listbox par ".rowsource", ca ne marche plus...
Le message d'erreur suivant apparaît : "Impossible de définir la propriété
List. Accès refusé."
Quelqu'un aurait il la solution ?

Merci et bon dimanche.

8 réponses

Avatar
anonymousA
Bonjour,

c'est parceque quand on définit la source d'un listbox par rowsource, la
structure du listbox est indéfectiblement liée à celle de la plage
source. En conséquence , bouger les items de la listbox ne peut être
réalisé. Il faut soit utiliser additem ou alors bouger les items du
rowsource avec uen proc du genre suivant à adpater
With Me.ListBox1
Set cinit = Range(.RowSource).Cells(.ListIndex + 1)
Set cdest = Range(.RowSource).Cells(.ListIndex + 2)
cdest.Copy cdest.Offset(0, 1)
cinit.Copy cdest
With cdest.Offset(0, 1)
.Copy cinit
.Clear
End With
End With

A+



Bonjour à tous,

J'ai trouvé sous excelabo
(http://www.excelabo.net/xl/controles.php#deplacementliste) la solution
permettant de déplacer les éléments d'un listbox.
En ajoutant les éléments dans ce listbox par ".additem", cela fonctionne.
Mais quand on rempli ce listbox par ".rowsource", ca ne marche plus...
Le message d'erreur suivant apparaît : "Impossible de définir la propriété
List. Accès refusé."
Quelqu'un aurait il la solution ?

Merci et bon dimanche.




Avatar
La Rota
Bonsoir,
Merci pour ta réponse "AnonymousA" mais j'ai un petit souci....
Je n'arrive pas à exploiter ta procédure.... Il y a bien un changement dans
la liste mais pas le résultat attendu.
Pourrais tu me donner un coup de main...
Merci

"anonymousA" a écrit dans le message de news:
43491746$0$457$
Bonjour,

c'est parceque quand on définit la source d'un listbox par rowsource, la
structure du listbox est indéfectiblement liée à celle de la plage source.
En conséquence , bouger les items de la listbox ne peut être réalisé. Il
faut soit utiliser additem ou alors bouger les items du rowsource avec uen
proc du genre suivant à adpater
With Me.ListBox1
Set cinit = Range(.RowSource).Cells(.ListIndex + 1)
Set cdest = Range(.RowSource).Cells(.ListIndex + 2)
cdest.Copy cdest.Offset(0, 1)
cinit.Copy cdest
With cdest.Offset(0, 1)
.Copy cinit
.Clear
End With
End With

A+



Bonjour à tous,

J'ai trouvé sous excelabo
(http://www.excelabo.net/xl/controles.php#deplacementliste) la solution
permettant de déplacer les éléments d'un listbox.
En ajoutant les éléments dans ce listbox par ".additem", cela fonctionne.
Mais quand on rempli ce listbox par ".rowsource", ca ne marche plus...
Le message d'erreur suivant apparaît : "Impossible de définir la
propriété List. Accès refusé."
Quelqu'un aurait il la solution ?

Merci et bon dimanche.





Avatar
anonymousA
pour le coup de main c'est bien sur possible mais je viens de refaire
l'essai de la proc que je t'ai envoyéeet celle-ci fonctionne en tout
point, pour peu que tu ne veuilles pas déplacer vers le haut le 1er
élément ni vers le bas le dernier car je n'ai pas inclus dans cette proc
de verrouillage pour ces cas de figure.

Les conditions de mon test sont les suivantes:

J'ai crée un listbox sur un UF avec 2 boutons de commandes ( un pour
monter , Bhaut et l'autre pour descendre , Bbas). J'ai déclaré dans les
propriétés du listbox à la propriété Rowsource le texte A1:A5.
J'ai entré des valeurs dans la plage A1:A5 de la feuille active au
moment de l'apparition du userform contenant le listbox.
Sous ces conditions, cette proc fonctionne sans difficulté aux réserves
près indiquées en début de ma réponse.

A ta dispo si tu n'y arrives pas mais il faudra que tu donnes un peu
plus d'éléments.

A+


Bonsoir,
Merci pour ta réponse "AnonymousA" mais j'ai un petit souci....
Je n'arrive pas à exploiter ta procédure.... Il y a bien un changement dans
la liste mais pas le résultat attendu.
Pourrais tu me donner un coup de main...
Merci

"anonymousA" a écrit dans le message de news:
43491746$0$457$

Bonjour,

c'est parceque quand on définit la source d'un listbox par rowsource, la
structure du listbox est indéfectiblement liée à celle de la plage source.
En conséquence , bouger les items de la listbox ne peut être réalisé. Il
faut soit utiliser additem ou alors bouger les items du rowsource avec uen
proc du genre suivant à adpater
With Me.ListBox1
Set cinit = Range(.RowSource).Cells(.ListIndex + 1)
Set cdest = Range(.RowSource).Cells(.ListIndex + 2)
cdest.Copy cdest.Offset(0, 1)
cinit.Copy cdest
With cdest.Offset(0, 1)
.Copy cinit
.Clear
End With
End With

A+




Bonjour à tous,

J'ai trouvé sous excelabo
(http://www.excelabo.net/xl/controles.php#deplacementliste) la solution
permettant de déplacer les éléments d'un listbox.
En ajoutant les éléments dans ce listbox par ".additem", cela fonctionne.
Mais quand on rempli ce listbox par ".rowsource", ca ne marche plus...
Le message d'erreur suivant apparaît : "Impossible de définir la
propriété List. Accès refusé."
Quelqu'un aurait il la solution ?

Merci et bon dimanche.









Avatar
La Rota
A ANONYMOUSA
Ta procédure fonctionne très bien. Merci
C'est juste que je ne t'ai pas donné tout les éléments.
Il va falloir que j'apprenne à poser mes questions, désolé :-(
Si je peux me permettre je vais corser la chose....
En fait ma Rowsource provient d'une plage de cellules nommé "PERSONNEL" et
cette dernière est composée ainsi :
Colonne A : des numéro de 1 à x
Colonne B : des Noms
Colonne C : des Prénoms
Colonne D : des dates de Naissance
J'ai donc dans mon listbox des données qui se présente ainsi : exemple : 1
DUPONT Bernard 30/11/48, 2 DURAND Marcel 12/04/52, 3 DUCHNOC Henri
21/09/45....)
Question :
Je voudrais pouvoir monter ou descendre les Noms, Prénoms et date de
naissance de chacun et ceci sans toucher au Numéro (exemple : 1 DURAND
Marcel 12/04/52, 2 DUCHNOC Henri 21/09/45, 3 DUCHNOC Henri 21/09/45, ...)

Voilà, j'espère que ce n'est pas trop compliqué.
Merci d'avance.


"anonymousA" a écrit dans le message de news:
43493d5e$0$451$
pour le coup de main c'est bien sur possible mais je viens de refaire
l'essai de la proc que je t'ai envoyéeet celle-ci fonctionne en tout
point, pour peu que tu ne veuilles pas déplacer vers le haut le 1er
élément ni vers le bas le dernier car je n'ai pas inclus dans cette proc
de verrouillage pour ces cas de figure.

Les conditions de mon test sont les suivantes:

J'ai crée un listbox sur un UF avec 2 boutons de commandes ( un pour
monter , Bhaut et l'autre pour descendre , Bbas). J'ai déclaré dans les
propriétés du listbox à la propriété Rowsource le texte A1:A5.
J'ai entré des valeurs dans la plage A1:A5 de la feuille active au moment
de l'apparition du userform contenant le listbox.
Sous ces conditions, cette proc fonctionne sans difficulté aux réserves
près indiquées en début de ma réponse.

A ta dispo si tu n'y arrives pas mais il faudra que tu donnes un peu plus
d'éléments.

A+


Bonsoir,
Merci pour ta réponse "AnonymousA" mais j'ai un petit souci....
Je n'arrive pas à exploiter ta procédure.... Il y a bien un changement
dans la liste mais pas le résultat attendu.
Pourrais tu me donner un coup de main...
Merci

"anonymousA" a écrit dans le message de news:
43491746$0$457$

Bonjour,

c'est parceque quand on définit la source d'un listbox par rowsource, la
structure du listbox est indéfectiblement liée à celle de la plage
source. En conséquence , bouger les items de la listbox ne peut être
réalisé. Il faut soit utiliser additem ou alors bouger les items du
rowsource avec uen proc du genre suivant à adpater
With Me.ListBox1
Set cinit = Range(.RowSource).Cells(.ListIndex + 1)
Set cdest = Range(.RowSource).Cells(.ListIndex + 2)
cdest.Copy cdest.Offset(0, 1)
cinit.Copy cdest
With cdest.Offset(0, 1)
.Copy cinit
.Clear
End With
End With

A+




Bonjour à tous,

J'ai trouvé sous excelabo
(http://www.excelabo.net/xl/controles.php#deplacementliste) la solution
permettant de déplacer les éléments d'un listbox.
En ajoutant les éléments dans ce listbox par ".additem", cela
fonctionne.
Mais quand on rempli ce listbox par ".rowsource", ca ne marche plus...
Le message d'erreur suivant apparaît : "Impossible de définir la
propriété List. Accès refusé."
Quelqu'un aurait il la solution ?

Merci et bon dimanche.










Avatar
anonymousA
je te réponds demain midi. là pas trop le temps.

a+

A ANONYMOUSA
Ta procédure fonctionne très bien. Merci
C'est juste que je ne t'ai pas donné tout les éléments.
Il va falloir que j'apprenne à poser mes questions, désolé :-(
Si je peux me permettre je vais corser la chose....
En fait ma Rowsource provient d'une plage de cellules nommé "PERSONNEL" et
cette dernière est composée ainsi :
Colonne A : des numéro de 1 à x
Colonne B : des Noms
Colonne C : des Prénoms
Colonne D : des dates de Naissance
J'ai donc dans mon listbox des données qui se présente ainsi : exemple : 1
DUPONT Bernard 30/11/48, 2 DURAND Marcel 12/04/52, 3 DUCHNOC Henri
21/09/45....)
Question :
Je voudrais pouvoir monter ou descendre les Noms, Prénoms et date de
naissance de chacun et ceci sans toucher au Numéro (exemple : 1 DURAND
Marcel 12/04/52, 2 DUCHNOC Henri 21/09/45, 3 DUCHNOC Henri 21/09/45, ...)

Voilà, j'espère que ce n'est pas trop compliqué.
Merci d'avance.


"anonymousA" a écrit dans le message de news:
43493d5e$0$451$

pour le coup de main c'est bien sur possible mais je viens de refaire
l'essai de la proc que je t'ai envoyéeet celle-ci fonctionne en tout
point, pour peu que tu ne veuilles pas déplacer vers le haut le 1er
élément ni vers le bas le dernier car je n'ai pas inclus dans cette proc
de verrouillage pour ces cas de figure.

Les conditions de mon test sont les suivantes:

J'ai crée un listbox sur un UF avec 2 boutons de commandes ( un pour
monter , Bhaut et l'autre pour descendre , Bbas). J'ai déclaré dans les
propriétés du listbox à la propriété Rowsource le texte A1:A5.
J'ai entré des valeurs dans la plage A1:A5 de la feuille active au moment
de l'apparition du userform contenant le listbox.
Sous ces conditions, cette proc fonctionne sans difficulté aux réserves
près indiquées en début de ma réponse.

A ta dispo si tu n'y arrives pas mais il faudra que tu donnes un peu plus
d'éléments.

A+



Bonsoir,
Merci pour ta réponse "AnonymousA" mais j'ai un petit souci....
Je n'arrive pas à exploiter ta procédure.... Il y a bien un changement
dans la liste mais pas le résultat attendu.
Pourrais tu me donner un coup de main...
Merci

"anonymousA" a écrit dans le message de news:
43491746$0$457$


Bonjour,

c'est parceque quand on définit la source d'un listbox par rowsource, la
structure du listbox est indéfectiblement liée à celle de la plage
source. En conséquence , bouger les items de la listbox ne peut être
réalisé. Il faut soit utiliser additem ou alors bouger les items du
rowsource avec uen proc du genre suivant à adpater
With Me.ListBox1
Set cinit = Range(.RowSource).Cells(.ListIndex + 1)
Set cdest = Range(.RowSource).Cells(.ListIndex + 2)
cdest.Copy cdest.Offset(0, 1)
cinit.Copy cdest
With cdest.Offset(0, 1)
.Copy cinit
.Clear
End With
End With

A+





Bonjour à tous,

J'ai trouvé sous excelabo
(http://www.excelabo.net/xl/controles.php#deplacementliste) la solution
permettant de déplacer les éléments d'un listbox.
En ajoutant les éléments dans ce listbox par ".additem", cela
fonctionne.
Mais quand on rempli ce listbox par ".rowsource", ca ne marche plus...
Le message d'erreur suivant apparaît : "Impossible de définir la
propriété List. Accès refusé."
Quelqu'un aurait il la solution ?

Merci et bon dimanche.













Avatar
Starwing
Bonjour La Rota,

Je voudrais pouvoir monter ou descendre les Noms, Prénoms et date de
naissance de chacun et ceci sans toucher au Numéro



Un petit exemple là....

http://cjoint.com/?kjvd6nxyMA

Starwing


Avatar
La Rota
MERCI CA FONCTIONNE A MERVEILLE !!!!!


"Starwing" a écrit dans le message de news:
e$
Bonjour La Rota,

Je voudrais pouvoir monter ou descendre les Noms, Prénoms et date de
naissance de chacun et ceci sans toucher au Numéro



Un petit exemple là....

http://cjoint.com/?kjvd6nxyMA

Starwing






Avatar
La Rota
Bonjour

Je vais être un pénible mais j'ai besoin d'une aide supplémentaire quant à
ma dernière demande.
Le dernier userform transmis par starwing (que je remercie encore au
passage) fonctionne très bien.
Mes données, qui sont les suivantes :
B11 = N° et B12=1, B13=2 etc.
C11 = NOM et C12=DUPONT, C13=DURAND etc.
D11 = PRENOM et D12=JACQUES, D13=PIERRE etc.
E11 = AGE et E12E, E13$ etc.
F11 = PORTEFEUILLE et F12= 154, F13= 547
etc...
donc ces données (nommées "Personnel" en feuil1) sont triés par le userform
sans que le N° (colonne B) ne change (jusque là tout va bien et c'est cool)
Seulement voilà, les données de la colonne B, C et D (soit le N°, le Nom et
Prénom) servent de référence à d'autres tableaux....J'avais oublié :-(
Ces tableaux, au nombre de 12, sont répartis dans 12 feuilles (tableau1 en
feuil2, tableau2 en feuil3, etc...)
Tous les tableaux sont identiques et sont conçus ainsi :
B11 = N° et B12þuil1!B12, B13þuil1!B13
C11 = NOM et C12þuil1!C12, C13þuil1!C13 etc
D11 = PRENOM et D12þuil1!D12, D13þuil1!D13 etc
de E11 à BB11 différentes étiquettes
de E12 à BB51 des données saisies par les utilisateurs.
Ce qui donne par exemple dans le tableau1:
Ligne 12 : 1 DUPONT Jacques et 50 saisies
Ligne 13 : 2 DURANT Pierre et 50 saisies
etc...

Mes questions :
- Est il possible de trier mes 12 tableaux par le userform en même temps que
mes données "Personnel" de la feuil1 (puisque dans le cas contraire, seules
les colonnes C et D qui font référence à la feuille1 seront triées et les
données de E12 à BB51 n'appartiendront plus à la bonne personne) ?
- Est il possible de rajouter, toujours dans le userform, un bouton
"supprimer" qui enlèverait une personne des 12 tableaux mais aussi de la
liste du Personnel (en mettant à jour les numéros) ?


J'espère que j'ai été assez explicite et pas trop tordu !!!!
Dans l'attente, merci à tous pour le mal que vous vous êtes donné à me
lire....

Merci encore et à bientôt




"Starwing" a écrit dans le message de news:
e$
Bonjour La Rota,

Je voudrais pouvoir monter ou descendre les Noms, Prénoms et date de
naissance de chacun et ceci sans toucher au Numéro



Un petit exemple là....

http://cjoint.com/?kjvd6nxyMA

Starwing