naz4
Messages postés10Date d'inscriptionlundi 21 février 2011StatutMembreDernière intervention24 février 2011
-
22 févr. 2011 à 11:37
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 2013
-
24 févr. 2011 à 17:30
Bonjour,
J'ai cherché un peu partout sur le net, ai essayé de retourner le problème dans tous les sens mais je n'ai pas résolu mon problème.
J'ai effectué un formulaire sur vba. Les données sont récupérées dans une feuille excel ("Site").
Ensuite, je veux que les utilisateurs puissent modifier ces informations ou les mettre à jour.
J'ai réussi à restituer dans la feuille certaines infos (celles des textbox et des combobox) mais pas celles des option button et des checkboxes.
Donc premier problème :
- pourquoi je ne récupère pas les infos des checkbox et des option button?
- comment faire pour que lorsque j'enregistre une modification, elle soit remplacée dans la ligne concernée et non créer une nouvelle ligne?
(je sais que je dois modifier ma déclaration de ma variable "num" dans usfAffiche mais je ne sais pas comment).
Je vous serai vraiment reconnaissante si vous pouviez jeter un coup d'oeil à mon fichier et me donner ne serait-ce qu'une piste.
naz4
Messages postés10Date d'inscriptionlundi 21 février 2011StatutMembreDernière intervention24 février 2011 24 févr. 2011 à 10:51
Bonjour à tous,
J'ai officielement réglé mon problème, l'erreur venait du fait que je m'étais trompé de nom de usf dans usfAffiche quand je fesais appel aux frame!
Merci beaucoup pour votre aide, vous m'avez beaucoup appris!
Yous00
Messages postés36Date d'inscriptionlundi 29 janvier 2007StatutMembreDernière intervention17 janvier 2017 22 févr. 2011 à 14:11
Bonjour,
En ce qui concerne les infos des checkbox et des options button pour moi cela marche à moins que je n'est pas compris ton problème et en ce qui concerne les modifications, ta macro et identique a celle de la validation nouveau site il faut que tu fasse une recherche de ton site a modifier et ensuite tu démarre tes changements a ce niveau car dans ton cas tu recherche la dernière ligne vide (num = Sheets("Site").Range("A65536").End(xlUp).Row + 1) comme si tu rentrer un nouveau site.
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 22 févr. 2011 à 15:08
Ok! je crois avoir vu la faute quand tu veux fair d modif. De plus je pense que "Vous00" la vu aussi.
Dans ta fonction cmdValider du formulaire UsfAffiche tu commais celon moi des faute d'analyse. Tu commante toi même après '************FIN DE VALIDATION DES DONNEES*************************' tu recherche la dernière ligne. Celon moi c faut. Car si tu écris sur la dernière ligne cela s'affiche comme un nouvelle enregistrement.
Celon moi tu devrais utliser a ce moment preci la variable "c.Row", tu lui donne une valeur à Listsite_Click() dans le formulaire Usfselection. Car "c.Row" a exectement la ligne ou tu dois écrir les donnée modifiée ce qui entrénera l'écrasement des données donc un MAJ.
Voilà mon analyse je pense que c la bonne svp tien moi au courant et sorry pour les fautes de français.
Vous n’avez pas trouvé la réponse que vous recherchez ?
naz4
Messages postés10Date d'inscriptionlundi 21 février 2011StatutMembreDernière intervention24 février 2011 22 févr. 2011 à 15:10
Salut 4u4me4us, j'ai toujours besoin d'aide donc je veux bien que tu mates ce soir si tu peux!
Merci Yous00, je pense que tu n'as pas vu le pb.
Pour mettre à jour un site il faut : aller dans la feuille Site / Menu / Consulter un site/ cliquer sur un nom de site ( par exemple "TOUT" où tous les champs sont normalement sélectionnés) et tu verra que toutes les infos ne figurent pas dans le tableau excel après avoir clique sur "enregistrer les modifications"
J'ai réussi à récupérer les données au préalable entrées dans la feuille Site et à pré-remplir mon formulaire de modification d'un site. Le problème est donc quand je veux retransmettre ces données "MODIFIEES" ou pas dans le tableau Excel suite à la mise à jour. Cette dernière manip marche pour les textbox et la combobox mais pas pour les optbutton et les checkbox.
Pour le 2eme pb, je sais qu'il faut modifier la variable num mais je ne sais pas comment!
naz4
Messages postés10Date d'inscriptionlundi 21 février 2011StatutMembreDernière intervention24 février 2011 22 févr. 2011 à 15:53
4u4me4us, je pense avoir compris ce que tu me conseilles de faire mais je n'y arrive pas malheuresement.
J'ai essayé avec num = Sheets("site").c.Row ou en remplaçant c.row par Lig (car la variable Lig est publique) mais j'ai l'erreur "range objet non trouvable".
Aurais-tu une idée?
Merci
Naz4
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 22 févr. 2011 à 18:57
Oups je suis pas très claire sorry . Celon moi dans le moment préci que je t'ais indiqué dans le premier message, tu as deux solutions.
1)Tu crées un new enregistrement, ce que tu fait actelement.
2) Tu fais un modification, ce que tu n'arrives pas a faire pour le moment.
Donc, je pense qu'il faut maittre un if (ton code actuelle) et un else qui resemblerait a :
Sheets("site").(A1,c.Row) = Valeur modifier.
Celon moi Sheets("site").(A1,c.Row) doit te servir comme pointeur de ligne et nom comme une nouvelle source
(numSheets("site").(A1,c.Row) pas besoin) et depuis Sheets("site").(A1,c.Row) tu écris donc Sheets("site").(A1,c.Row) val 1
Sheets("site").(A1,c.Row +1) = val2
Yous00
Messages postés36Date d'inscriptionlundi 29 janvier 2007StatutMembreDernière intervention17 janvier 2017 22 févr. 2011 à 20:19
Slt,
J'ai modifié le fichier, pour moi sa fonctionne, dit moi ce que tu en pense ...
Pour l'autre problème il faut que tu fasses le point ligne par ligne de ce que tu a besoin, en cas dit moi je regarde demain.
naz4
Messages postés10Date d'inscriptionlundi 21 février 2011StatutMembreDernière intervention24 février 2011 23 févr. 2011 à 09:50
En effet, merci à tout les 2, cela marche très bien! premier pb : résolu!
Pour l'autre, en fait je ne comprends pas pourquoi après une modification d'un site, ça n'enregistre pas les résultats des checkbox et option button dans la feuille site. On obtient des cases vides quand on "enregistre des modifications".
Yous00
Messages postés36Date d'inscriptionlundi 29 janvier 2007StatutMembreDernière intervention17 janvier 2017 23 févr. 2011 à 13:56
Slt,
J'ai regarder ton deuxième problème, en faite cela commence à l'ouverture de l'userform "initialisation" n'est pas correcte (ex : quand tu viens de rentrer un nouveau site) il n'y a que les textbox qui sont à jours, en faite quand tu fait la manip à l'ouverture de ton fichier (ex tu ferme ton fichier excel et tu le re-ouvre) cela fonctionne, mais (désolé) quand tu enregistre les modifications cela ne fonctionne toujours pas (!?!) et pourtant la macro utiliser pour enregistrer les modifications et enregistrer un nouveau site et la même. Il faudrait refaire le fichier à partir d'un nouveau excel, j'ai essayer mais les macro ne fonctionnent plus du tout (???), je pense que cela dépasse mes petites compétence dans ce dommaine (sorry).
J'espère que quelqu'un pourras finir de t?aider.
naz4
Messages postés10Date d'inscriptionlundi 21 février 2011StatutMembreDernière intervention24 février 2011 23 févr. 2011 à 16:15
Cool merci!
Alors en attendant que tu te libères, j'explique où en est ma réflexion.
Je pense que le problème de restitution des chexkbox et option button vient du fait que au départ, quand j'ai entré les résultats des checkbox, j'ai pris en compte en frame. J'ai mis à chaque fois les chexk et option box dans des frames. Tu penses que c'est pour ça?
Et pour ce qu'a dit Yous00, je ne pense pas qu'il soit pourri le fichier car moi mon problème est toujours vraie même quand je viens de l'ouvrir.
Ca doit venir d'autre part non?
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 24 févr. 2011 à 11:48
Juste une question stp.
Ce n'est pas une question piège, ni pour te faire la morale, mais je me demandais pour quoi tu as fait ton projet avec des macros?
Je fais d marco excel 1/an, et ton projet je l'aurais fait en vb, donc qu'elles sont les intérêts de passer par des macros plus tôt que vb pure?
Y a t'il beaucoup de projet pour fichier xls ?
Je répète "Ce n'est pas une question piège, ni pour te faire la morale" mais juste un remise en question personnel car je réalise par exemple , qu'un projet fais de marcos n'a pas besoin de setup!
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 24 févr. 2011 à 12:30
On va tourner en rond !!!!
Comme je te le disais j'ai eu plusieurs projet ou les fichiers excel étaient concernés. J'ai tjs opérais en quatre temps.
1)créer un code VB pour les saisies.
2) Le code fait le calcul et autres.
3) Le code créer ou modif le fichier xls.
4) Le code ouvre le fichier
Donc le ficher xls n'est utiliser que pour l'affichage.
Mais ton projet ouvre le fichier xls et le fichier xls fais appelle au élément vb. Le fichier xls et le point de départ et l'affichage, du calcul, etc de ton projet.
Si bien que en t'aidant je me suis dis, tien il opère vraiment autrement que moi! Puis je me suis dis Tien avec ça méthode il n'y a pas besoin de setup! ET LA MAINTENANT JE RéALISE TIEN il n' y a pas besoin de faire un test pour savoir si l'utilisateur à excel(car si il ne l'a pas ou une version craquée il peu y avoir d beug).
Tu comprends, il y a un certain intérêt qui s'opère de mon coté.
naz4
Messages postés10Date d'inscriptionlundi 21 février 2011StatutMembreDernière intervention24 février 2011 24 févr. 2011 à 14:07
Ah très bien je comprends beaucoup mieux mais je ne vais malheuresement pas pouvoir t'aider beaucoup. En effet, je découvre en te lisant des choses que j'ignorais qui étaient possibles. J'ai commencé comme ça pour avoir une base de donnée visible et exploitable par moi ou une autre personne facilement. Mais à l'avenir, je devrais intégré cela à l'intranet donc je vais peut-être me diriger vers de la VB pure. Tu penses que ce serait mieux pour intégrer en tant qu'application intranet?