Mettre à jour données via formulaire VBA (formulaire -> Excel) [Résolu]

Messages postés
10
Date d'inscription
lundi 21 février 2011
Dernière intervention
24 février 2011
- - Dernière réponse : 4u4me4us
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 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.

Voici le fichier : http://cjoint.com/?0cwlBzzVUY

Par avance, merci.

Cordialement

Naz4
Afficher la suite 

Votre réponse

20/23 réponses

Meilleure réponse
Messages postés
10
Date d'inscription
lundi 21 février 2011
Dernière intervention
24 février 2011
3
Merci
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!

Cordialement

Naz4

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de naz4
Messages postés
36
Date d'inscription
lundi 29 janvier 2007
Dernière intervention
17 janvier 2017
0
Merci
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.

Cdlt

Jyb
Petit bidouilleur en excel (vba) ...
Commenter la réponse de Yous00
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
Hello, je voulais savoir si t'avait tjs besoin d'aide? Si oui je v mater soir. Si non je le materais pas .plus
Commenter la réponse de 4u4me4us
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
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.
Commenter la réponse de 4u4me4us
Messages postés
10
Date d'inscription
lundi 21 février 2011
Dernière intervention
24 février 2011
0
Merci
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!

merci pour votre aide!
Cordialement
Naz4
Commenter la réponse de naz4
Messages postés
10
Date d'inscription
lundi 21 février 2011
Dernière intervention
24 février 2011
0
Merci
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
Commenter la réponse de naz4
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
Élémentaire car c Sheets("site").(A1,c.Row) ou Sheets("site").(A1,Lig) qu'il faut mettre
Commenter la réponse de 4u4me4us
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
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

etc ... il faut que tu adapte mais c mon idée.
Commenter la réponse de 4u4me4us
Messages postés
36
Date d'inscription
lundi 29 janvier 2007
Dernière intervention
17 janvier 2017
0
Merci
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.


http://cjoint.com/?3cwuqjTlH7e


Cdlt

Jyb

Petit bidouilleur en excel (vba) ...
Commenter la réponse de Yous00
Messages postés
10
Date d'inscription
lundi 21 février 2011
Dernière intervention
24 février 2011
0
Merci
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".

Merci encore, vous êtes géniaux!

Cdt
Naz4
Commenter la réponse de naz4
Messages postés
36
Date d'inscription
lundi 29 janvier 2007
Dernière intervention
17 janvier 2017
0
Merci
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.

Cdlt
Jyb

Petit bidouilleur en excel (vba) ...
Commenter la réponse de Yous00
Messages postés
10
Date d'inscription
lundi 21 février 2011
Dernière intervention
24 février 2011
0
Merci
Quelqu'un pour m'aider svp, je crois que j'en ai besoin après ce que m'a dit Yous00?
Merci pour votre aide.
Cordialement
Naz4
Commenter la réponse de naz4
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
Naz4 suis busy là mais soir. Suis dés. mais je ne te laisse pas tombé.
Commenter la réponse de 4u4me4us
Messages postés
10
Date d'inscription
lundi 21 février 2011
Dernière intervention
24 février 2011
0
Merci
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?

Merci encore!
Naz4
Commenter la réponse de naz4
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
Suis content pour toi.

Et comme on dit par ici !!!BON CODE !!!
Commenter la réponse de 4u4me4us
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
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!

Merci de m'en dire plus.
Commenter la réponse de 4u4me4us
Messages postés
10
Date d'inscription
lundi 21 février 2011
Dernière intervention
24 février 2011
0
Merci
Ca m'a tout l'air d'être un bonne question car honnêtement je ne connaîs pas la différence entre des macros et du VB pure.
Peux-tu m'expliquer?
Commenter la réponse de naz4
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
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é.

Donc si tu peux m'en dire plus !?
Commenter la réponse de 4u4me4us
Messages postés
36
Date d'inscription
lundi 29 janvier 2007
Dernière intervention
17 janvier 2017
0
Merci
Slt naz4, cool et bonne continuiter ....

Cdlt

Jyb

Petit bidouilleur en excel (vba) ...
Commenter la réponse de Yous00
Messages postés
10
Date d'inscription
lundi 21 février 2011
Dernière intervention
24 février 2011
0
Merci
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?

Cdt
Naz4
Commenter la réponse de naz4

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.