Transfert de donnée d'un Userform à un autre

piwwwa

XLDnaute Junior
Bonjour le forum,

Je rencontre des problèmes pour finaliser mon projet de gestion de la formation, en effet j’ai quelque souci dans le passage de mes donner d’un usf a un autre, alors je me tourne vers vos grande connaissances !

Mais problèmes sont les suivants :
- Dans le cas d’une remonté multiple de ligne par le biais de l’usf recherche (sélection Libellé 1), quatre des cinq onglet ce remplisse à la perfection, mais j’ai encore un problèmes avec le cinquième, l’onglet formateur interne, qui se remplit mais avec parfois des décalages de colonnes et certaines info qui ne remonte pas du tout.
- Le deuxième est que quand la listbox de l’usf recherche ne devrait afficher qu’une ligne (sélection libellé 5), une erreur d’exécution 9, l’indice n’appartient pas à la sélection apparait.
- Et enfin j’ai un problème en cas de double clic sur une ligne du listBox, à savoir que tout marche très bien pour trois page du multiform (logistique, formation, éléments annexes). Mais pour la page stagiaire au lieu de n’avoir qu’une ligne de rempli en totalité les éléments se disperse sur plusieurs lignes.

Le fichier: (c) CJoint.com, 2012

Un grand merci à tous les courageux qui lancheront sur mon problème.
 

Paritec

XLDnaute Barbatruc
Re : Transfert de donnée d'un Userform à un autre

Bonjour piwwa le forum
Un grand merci à tous les courageux qui plancheront sur mon problème.
Oui quand on voit tes codes il faut être courageux, voir même très courageux !!!!
Aucune explications dans le fichier, des codes qui sentent le bricolage ou du moins la recopie, l'initialyse du Userform 10 par exemple
Pour le problème avec modification, tu as simplement un tableau de 1 ligne que tu veux transposer et cela ne marche pas.
a+
Papou:eek:

PS: changer dans ta macro Initailyse Userform10 par exemple, en remplacement des remplissages de combobox 8 à 74
ce code fait la même chose en un peu plus court
Code:
With Sheets("Extract ADP")
        aa = .Range("K2:K" & .Range("K65536").End(xlUp).Row)
        For i = 8 To 74       
        If i = 21 Then i = 67
            Controls("Combobox" & i).List = aa
        Next i
    End With
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Transfert de donnée d'un Userform à un autre

bonjour Piwwa,Paritec
déclarer i et j as long(integer est changé en long par le système)
exemple pour textbox 554 à 561
Code:
If Me.ListBox1.List(mes_valeurs_listbox1, 37) = "O" Then
.Controls("TextBox" & 554 + i).Value = Me.ListBox1.List(mes_valeurs_listbox1, 21)
i = i + 1
End If

un autre pour textbox 562 à 569
If Me.ListBox1.List(mes_valeurs_listbox1, 37) = "O" Then
.Controls("TextBox" & 562 + J).Value = Me.ListBox1.List(mes_valeurs_listbox1, 22)
J = J + 1
End If
en plus tu as des nombres qui sont du texte,des dates qui n'en sont,etc
tu devrais un peu revoir tout çà
 

piwwwa

XLDnaute Junior
Re : Transfert de donnée d'un Userform à un autre

Bonjour Bebere, Paritec et le forum,

Déjà un grand merci pour votre aide.

Oui les codes sont du pur bricolage, mais malheureusement quand c’est la première foi qu’on se lance dans un projet avec des usf on se débrouille comme on peut ^^ !

J’ai pu étendre ton code Bebere et sa marche parfaitement quand je passe par le bouton modifier (cf fichier ci-joint). En ce qui concerne les valeurs et le texte j’ai des problèmes avec les formats texte ou nombre pacque si je mets un code comme sa :

Code:
.Cells(li, 18).Value = CDbl(TextBox200.Value)

Si la TextBox ou la combobox est vide sa bloque l’enregistrement.

Maintenant si je pouvais profiter à nouveau de ton aide, car je ne comprends par le problème avec le double clic sur l’usf de modif qui ramène des choses bizard dans l’onglet stagiaire et sa c’est sans avoir configurer avec le cas des formateurs internes.

Et j’ai beau continuer à chercher je ne comprends toujours pas pourquoi j’ai une erreur d’exécution 9 quand je sélectionne par exemple le libellé 5 dans la première ComboBox.

Après sa je n’aurais plus qu’à trouver comment enregistrer c’est modif et mon projet sera enfin fini.

Le fichier modifié :(c) CJoint.com, 2012

Encore un grand merci pour votre aide.
 

Paritec

XLDnaute Barbatruc
Re : Transfert de donnée d'un Userform à un autre

Re Piwwwaa Bébére le forum
Code:
Et j’ai beau continuer à chercher je ne comprends toujours pas pourquoi  j’ai une erreur d’exécution 9 quand je sélectionne par exemple le  libellé 5 dans la première ComboBox.
C'est pas de notre faute si tu ne lis pas les réponses que l'on te fait !!!
Je t'ai dis pourquoi tu avais le défaut.
voilà ton fichier avec la modification qu'il faut faire Pour le bouton Modifier et libélé5
a+
Papou:eek:
 

Pièces jointes

  • Piwwwwaaa V3.xlsm
    222.4 KB · Affichages: 77
Dernière édition:

piwwwa

XLDnaute Junior
Re : Transfert de donnée d'un Userform à un autre

Re bonjour Bebere et le forum,

Encore un grand merci.

Oui maintenant que je le vois c’est pourtant évident ^^ ! Mais connaissance sont vraiment faible en vba.

Est-ce que je pourrai encore profiter de t’es connaissance pour mes autre problème.

Merci d’avance.
 

piwwwa

XLDnaute Junior
Re : Transfert de donnée d'un Userform à un autre

Bonjour Bebere, Paritec et le forum,

J’avais bien lu ton message Paritec, mais je cherchais encore à l’adapter, un grand merci pour ton aide, sa marche à la perfection !!! Un problème de moins sa soulage, même si il en reste encore^^ !

Merci
 

piwwwa

XLDnaute Junior
Re : Transfert de donnée d'un Userform à un autre

Merci Bebere,

Avec l’aide de Paritec, ou plutôt paritec à réussi à résoudre ce problème d’erreur d’exécution (cf. fichier ci-joint).

Par contre je cherche encore comment résoudre ce problème de double clic ^^ ! Puis je n’aurais plus qua me pencher sur comment enregistrer les modif ^^ !

le fichier modifié : (c) CJoint.com, 2012

Encore merci pour ton aide.
 

Paritec

XLDnaute Barbatruc
Re : Transfert de donnée d'un Userform à un autre

Bonjour Piwwwaa Bébére le forum
bon alors on va parler un peu de ton (fichier pour toi) si tu veux bien.
à quoi sert donc ta feuille Stagiaire dans le multipage????? à rien sans doute puisque de toutes façons tu n'as pas la possibilité de remplir plus que 72 cases comprise toutes celle de la feuille Formation!!!
dans la feuille Stagiaire, tu as tous les comboboxs de la colonne de Gauche qui ont la valeur tag = 20 ????????????
Et c'est pareil pour tous les autres textboxs des 13 lignes, alors explique déjà le pourquoi de tes tags multiples avec la même valeur ??
Alors que tu utilises une boucle sur les tags pour remplir les combobox et textboxs!!!!
Dis moi quelle est la différence entre tag 20 et tag 20 ???? Bah à mon avis excel aussi doit se poser des questions.
Cela c'est pour les tags, mais maintenant quand tu choisis un libellé dans le combobox 1 de l'userform recherche, ton double clique ne concerne bien qu'une seule personne?? alors pourquoi avoir créé 13 lignes ???
En clair si on savait ce que tu veux obtenir ce serait plus simple de t'aider, mais une certitude tu es mal parti, et plus tu vas avancer plus ton fichier sera tordu.
Déjà expliques nous ta feuille Stagiaire, à quoi elle doit servir? et comment tu l'utilises?
Je viens de trouver je pense, comment tu veux utiliser la feuille Stagiaire, mais là encore je tombe par terre, si tu as plus de 13 personnes ton programme est incapable de les gérer !!!! ??? au lieu de 525 textboxs tu aurais simplement une listbox ou listview avec en dessous 10 ou 12 textboxs, sur un double cliques sur une ligne tu remplis les textboxs, tu modifies tu valides, cela revient au même de toutes façons toi avec tes 13 lignes tu ne peux modifier qu'une case à la fois !!
Tu ajoutes une feuille à ton fichier et tu nous expliques dedans comment tu veux obtenir tes résultats, mais a mon avis il vas falloir changer ton fusil d'épaule.
a+
papou:eek:

PS: en plus on te fait des modifications de macro pour gagner en temps et en fiabilité et tu ne les ajoutes même pas à ton fichier !!!!!!
 
Dernière édition:

piwwwa

XLDnaute Junior
Re : Transfert de donnée d'un Userform à un autre

Bonjour Paritec,

Merci pour votre coup de main.
La feuille stagiaire de mon multiform sert à noter les personnes qui ont suivi la formation et à les enregistrer dans l’onglet base, quand je passe par le bouton saisie, ou à pouvoir les modifier les infos contenu sur eux dans la feuille base quand je passe par l’usf de modification.

Concernent les Tag je voie encore que mais faible connaissance m’on jouer des tours, parce que je pensais que c’était comme ça que je devais procéder, mais maintenant que je te lis sa parait effectivement bête, je suppose que du coup je ne dois tager qu’une ligne ? Mais tu as bien compris c’est bien dans la listbox que je cherche à mettre la possibilité de double clic !

L’existence à la fois de pouvoir double clic pour ramener une ligne et le fait de pouvoir sélectionner dans la combobox 1 pour ramener 13 lignes et dû au fait qu’il y aura par la suite deux usf de modif. L’un des usf de modif (celui actuel) va me permettre de modifier les infos contenu dans l’onglet base en accèdent à l’intégralité des infos d’une session (jusqu’à 13 stagiaire et 8 formateur interne), pour pouvoir par exemple modifier en une seul fois des infos pour tous (exemple la formation et marqué non en imputable puis devient oui). Le deuxième usf de modif sera une copie de celui-là mais il me permettra de sélectionner les infos contenu dans la feuille base prév, les modifier, et enregistrer la ou les lignes dans la feuille base tout en les suppriment de l’onglet base prév.

Le programme ce limite a 13 stagiaire car nous n’en avons jamais plus de 13 par session (en moyenne 6 ou 7), et je trouver que cette interface était plus simple pour les futurs utilisateurs, qui connaisse encore moins Excel que moi ^^ !

J’espére que c’est plus clair ?

Encore un grand merci pour ton aide.
 

Paritec

XLDnaute Barbatruc
Re : Transfert de donnée d'un Userform à un autre

re Piwwaa le forum
OK bien compris mais alors tu parles de préserver tes collègues des erreurs, mais là tu provoques la possibilité d'erreurs justement.
Si tu cliques sur modifications et que tu charges 10 lignes, et que maintenant tu cliques sur un combobox, tu as la possibilité de changer de nom simplement en cliquant et en ne faisant pas gaffe, tu sais si tu mets ta sourie sur un nom, un clique c'est vite fait.
Surtout que lors de l'initialyse tu charges les listes de noms dans chaque combobox !!!!!
Bref moi je ferais bien différemment, un seul userform, avec à gauche les infos contenu dans Formation, et la partie de droite avec une listbox et 10 textbox en dessous et un bouton valider
Et systématiquement à chaque changement d'une ligne la modification dans la base. et là tu verrais immédiatement dans ta listbox les résultats et modifications.
Si tu veux essayer cela tu me fais un Userform avec les tags qui vont bien et je te ponds le code pour la listbox associé, et les validations dans la base.
à te relire, à+
Papou:eek:
 
Dernière édition:

piwwwa

XLDnaute Junior
Re : Transfert de donnée d'un Userform à un autre

Re Paritec et le forum,

L’avantage que je trouvais a la solution que j’ai fait, en dehors qu’il a fallu négocier avec tous les futurs utilisateurs pour être d’accord, c’est qu’elle me permettait de saisir qu’une action pour plusieurs personnes (un libéle de formation pour 13 personne par exemple) sans avoir 13 saisie à faire.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 323
Membres
103 516
dernier inscrit
René Rivoli Monin