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

pb affichage après tri dans listbox

5 réponses
Avatar
Bomber
Bonjour le Forum



J'ai crée un USF avec une listbox qui reprend les donnés dans un tableau
situé dans une feuille excel.

Mes données sont insérées dans la listbox avec le code suivant :



tablo = Range("A1").CurrentRegion

affichedonnee.ColumnCount = 9

initlistbox



En double cliquant sur la ligne voulue dans ma listbox, les données s'affichent
dans des textbox afin de pouvoir les modifier puis en validant ma
modification ces données se corrigent dans ma feuille.

Extrait du code qui transfert les données du formulaire sur ma feuille



modifsaisie.modifdate.Value = affichedonnee.Column(0,
affichedonnee.ListIndex)

modifsaisie.modif1.Value = affichedonnee.Column(1, affichedonnee.ListIndex)

modifsaisie.modif2.Value = affichedonnee.Column(2, affichedonnee.ListIndex)

.



Le problème est que lorsque ma liste est triée (j'ai crée une fonction de
recherche par date) et que je double clic sur la ligne pour la modifier,
elle s'affiche bien dans mes textbox mais quand je valide ma modification,
ce n'est pas la bonne ligne qui est corrigé.

Par exemple si je clique sur la première ligne de ma listbox triée, c'est la
première ligne de mon tableau qui sera modifiée et non la ligne
correspondante.



Merci d'avance pour votre aide.



Bomber

5 réponses

Avatar
JLuc
*Bonjour Bomber*,
Il faudrait que tu en dise un peu plus sur ton code pour etre en mesure
de te donner un coup de main. Expliquer comme tu l'a fais, on ne peut
rien. Comment remplis tu le lisbox (donnees deja triees, donnees
completes...) et comment mets tu les donnees modifiees ?
Eventuelement, joins ton classeur via www.cjoint.com si tu veux que
l'on puisse comprendre ton soucis ;-)

Bonjour le Forum



J'ai crée un USF avec une listbox qui reprend les donnés dans un tableau
situé dans une feuille excel.

Mes données sont insérées dans la listbox avec le code suivant :



tablo = Range("A1").CurrentRegion

affichedonnee.ColumnCount = 9

initlistbox



En double cliquant sur la ligne voulue dans ma listbox, les données
s'affichent dans des textbox afin de pouvoir les modifier puis en validant ma
modification ces données se corrigent dans ma feuille.

Extrait du code qui transfert les données du formulaire sur ma feuille



modifsaisie.modifdate.Value = affichedonnee.Column(0,
affichedonnee.ListIndex)

modifsaisie.modif1.Value = affichedonnee.Column(1, affichedonnee.ListIndex)

modifsaisie.modif2.Value = affichedonnee.Column(2, affichedonnee.ListIndex)

.



Le problème est que lorsque ma liste est triée (j'ai crée une fonction de
recherche par date) et que je double clic sur la ligne pour la modifier, elle
s'affiche bien dans mes textbox mais quand je valide ma modification, ce
n'est pas la bonne ligne qui est corrigé.

Par exemple si je clique sur la première ligne de ma listbox triée, c'est la
première ligne de mon tableau qui sera modifiée et non la ligne
correspondante.



Merci d'avance pour votre aide.



Bomber



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
Youky
Le plus simple est de créer un textbox de plus, et d'écrire ce N°ligne du
tableau
lors du double clic qui renseigne tes textbox (puisque tu va bien trouver
les données tu dois connaitre ce N° ligne)
Met la propriété visibleúlse à ce nouveau textbox
Récupere ensuite ce N° au lieu de ListIndex
Youky
"Bomber" a écrit dans le message de news:

Bonjour le Forum



J'ai crée un USF avec une listbox qui reprend les donnés dans un tableau
situé dans une feuille excel.

Mes données sont insérées dans la listbox avec le code suivant :



tablo = Range("A1").CurrentRegion

affichedonnee.ColumnCount = 9

initlistbox



En double cliquant sur la ligne voulue dans ma listbox, les données
s'affichent dans des textbox afin de pouvoir les modifier puis en validant
ma modification ces données se corrigent dans ma feuille.

Extrait du code qui transfert les données du formulaire sur ma feuille



modifsaisie.modifdate.Value = affichedonnee.Column(0,
affichedonnee.ListIndex)

modifsaisie.modif1.Value = affichedonnee.Column(1,
affichedonnee.ListIndex)

modifsaisie.modif2.Value = affichedonnee.Column(2,
affichedonnee.ListIndex)

.



Le problème est que lorsque ma liste est triée (j'ai crée une fonction de
recherche par date) et que je double clic sur la ligne pour la modifier,
elle s'affiche bien dans mes textbox mais quand je valide ma modification,
ce n'est pas la bonne ligne qui est corrigé.

Par exemple si je clique sur la première ligne de ma listbox triée, c'est
la première ligne de mon tableau qui sera modifiée et non la ligne
correspondante.



Merci d'avance pour votre aide.



Bomber




Avatar
Bomber
Bonjour Youky

Pourrais-tu me dire qu'elle macro il faut utiliser pour afficher le numéro
de la ligne s'il te plait.

"Youky" a écrit dans le message de news:
43e4e13c$0$19705$
Le plus simple est de créer un textbox de plus, et d'écrire ce N°ligne du
tableau
lors du double clic qui renseigne tes textbox (puisque tu va bien trouver
les données tu dois connaitre ce N° ligne)
Met la propriété visibleúlse à ce nouveau textbox
Récupere ensuite ce N° au lieu de ListIndex
Youky
"Bomber" a écrit dans le message de news:

Bonjour le Forum



J'ai crée un USF avec une listbox qui reprend les donnés dans un tableau
situé dans une feuille excel.

Mes données sont insérées dans la listbox avec le code suivant :



tablo = Range("A1").CurrentRegion

affichedonnee.ColumnCount = 9

initlistbox



En double cliquant sur la ligne voulue dans ma listbox, les données
s'affichent dans des textbox afin de pouvoir les modifier puis en
validant ma modification ces données se corrigent dans ma feuille.

Extrait du code qui transfert les données du formulaire sur ma feuille



modifsaisie.modifdate.Value = affichedonnee.Column(0,
affichedonnee.ListIndex)

modifsaisie.modif1.Value = affichedonnee.Column(1,
affichedonnee.ListIndex)

modifsaisie.modif2.Value = affichedonnee.Column(2,
affichedonnee.ListIndex)

.



Le problème est que lorsque ma liste est triée (j'ai crée une fonction de
recherche par date) et que je double clic sur la ligne pour la modifier,
elle s'affiche bien dans mes textbox mais quand je valide ma
modification, ce n'est pas la bonne ligne qui est corrigé.

Par exemple si je clique sur la première ligne de ma listbox triée, c'est
la première ligne de mon tableau qui sera modifiée et non la ligne
correspondante.



Merci d'avance pour votre aide.



Bomber








Avatar
michdenis
Bonjour Bomber,

Pour mettre à jour les données dans une feuille de calcul,
Il te faut utiliser une colonne sur laquelle tu peux faire une
recherche. Cette colonne ne doit pas avoir de doublon afin
d'éviter toute méprise au sujet de la ligne à modifier.

Dès que tu sélectionnes une donnée dans la liste déroulante,
En plus de renseigner tes textbox, tu dois immédiatement effectuer
la recherche à savoir, sur quelle ligne se retrouve la valeur tu textbox de la
colonne que tu utilises à cet effet. Tu emmagazines cette information dans
une variable au niveau du module, et lorsque tu valides ton information,
tu utilises cette données (la ligne) pour retourner la valeur de tes textbox
vers ta feuille de calcul.

Un petit fichier exemple vite fait : http://cjoint.com/?ceuCDZXz6p


Salutations!





"Bomber" a écrit dans le message de news:
Bonjour le Forum



J'ai crée un USF avec une listbox qui reprend les donnés dans un tableau
situé dans une feuille excel.

Mes données sont insérées dans la listbox avec le code suivant :



tablo = Range("A1").CurrentRegion

affichedonnee.ColumnCount = 9

initlistbox



En double cliquant sur la ligne voulue dans ma listbox, les données s'affichent
dans des textbox afin de pouvoir les modifier puis en validant ma
modification ces données se corrigent dans ma feuille.

Extrait du code qui transfert les données du formulaire sur ma feuille



modifsaisie.modifdate.Value = affichedonnee.Column(0,
affichedonnee.ListIndex)

modifsaisie.modif1.Value = affichedonnee.Column(1, affichedonnee.ListIndex)

modifsaisie.modif2.Value = affichedonnee.Column(2, affichedonnee.ListIndex)

.



Le problème est que lorsque ma liste est triée (j'ai crée une fonction de
recherche par date) et que je double clic sur la ligne pour la modifier,
elle s'affiche bien dans mes textbox mais quand je valide ma modification,
ce n'est pas la bonne ligne qui est corrigé.

Par exemple si je clique sur la première ligne de ma listbox triée, c'est la
première ligne de mon tableau qui sera modifiée et non la ligne
correspondante.



Merci d'avance pour votre aide.



Bomber
Avatar
Bomber
Bonjour

Problème résolu, merci beaucoup pour votre aide.

"michdenis" a écrit dans le message de news:
ul$
Bonjour Bomber,

Pour mettre à jour les données dans une feuille de calcul,
Il te faut utiliser une colonne sur laquelle tu peux faire une
recherche. Cette colonne ne doit pas avoir de doublon afin
d'éviter toute méprise au sujet de la ligne à modifier.

Dès que tu sélectionnes une donnée dans la liste déroulante,
En plus de renseigner tes textbox, tu dois immédiatement effectuer
la recherche à savoir, sur quelle ligne se retrouve la valeur tu textbox
de la
colonne que tu utilises à cet effet. Tu emmagazines cette information dans
une variable au niveau du module, et lorsque tu valides ton information,
tu utilises cette données (la ligne) pour retourner la valeur de tes
textbox
vers ta feuille de calcul.

Un petit fichier exemple vite fait : http://cjoint.com/?ceuCDZXz6p


Salutations!





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

Bonjour le Forum



J'ai crée un USF avec une listbox qui reprend les donnés dans un tableau
situé dans une feuille excel.

Mes données sont insérées dans la listbox avec le code suivant :



tablo = Range("A1").CurrentRegion

affichedonnee.ColumnCount = 9

initlistbox



En double cliquant sur la ligne voulue dans ma listbox, les données
s'affichent
dans des textbox afin de pouvoir les modifier puis en validant ma
modification ces données se corrigent dans ma feuille.

Extrait du code qui transfert les données du formulaire sur ma feuille



modifsaisie.modifdate.Value = affichedonnee.Column(0,
affichedonnee.ListIndex)

modifsaisie.modif1.Value = affichedonnee.Column(1,
affichedonnee.ListIndex)

modifsaisie.modif2.Value = affichedonnee.Column(2,
affichedonnee.ListIndex)

.



Le problème est que lorsque ma liste est triée (j'ai crée une fonction de
recherche par date) et que je double clic sur la ligne pour la modifier,
elle s'affiche bien dans mes textbox mais quand je valide ma modification,
ce n'est pas la bonne ligne qui est corrigé.

Par exemple si je clique sur la première ligne de ma listbox triée, c'est
la
première ligne de mon tableau qui sera modifiée et non la ligne
correspondante.



Merci d'avance pour votre aide.



Bomber