Recuperer les données dans Workbook_Open() + simplification de macro

apicius46

XLDnaute Junior
Bonjour à tous,:D

Je suis débutant en macro. je cherchais donc a remplir un formulaire dans une boite a dialogue pour remplir toutes mes feuilles (13 a en tout). J' ai beaucoup cherché sur le net et j'ai réussi,modifié et adapté la macro ci dessous qui fonctionne:

Private Sub Workbook_Open()
ouverture
End Sub

Sub ouverture()

Dim nom As String
nom = InputBox("VOTRE NOM", "Formulaire d'identité", "Votre NOM")
prenom = InputBox("VOTRE PRENOM", "Formulaire d'identité", "Votre Prenom")
qualite = InputBox("Qualité", "Formulaire d'identité", "Votre Qualité")
marque = InputBox("MARQUE DU VEHICULE", "Formulaire d'identité", "Marque")
immat = InputBox("IMMATRICULATION", "Formulaire d'identité", "Immatriculation")
conso = InputBox("CARBURANT", "Formulaire d'identité", "Essence OU Diesel")
puisfisc = InputBox("PUISSANCE FISCALE", "Formulaire d'identité", " CV")
adresse = InputBox("VOTRE ADRESSE", "Formulaire d'identité", "Votre Adresse")
cpostal = InputBox("VOTRE CODE POSTAL", "Formulaire d'identité", "Votre Code Postal")
ville = InputBox("VOTRE VILLE", "Formulaire d'identité", "Votre Ville")
'Activation de la feuille 2

Sheets("Ja").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("Fé").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("Mar").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("Av").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("Mai").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("Juin").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("Juil").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("Ao").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("Sep").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("Oc").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("No").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("Dé").Activate
Range("G10").Value = nom
Range("G12").Value = prenom
Range("G14").Value = qualite
Range("O16").Value = marque
Range("O17").Value = immat
Range("O18").Value = conso
Range("O19").Value = puisfisc
Sheets("Année").Activate
Range("G9").Value = nom
Range("G11").Value = prenom
Range("G13").Value = qualite
Range("O15").Value = marque
Range("O16").Value = immat
Range("O17").Value = conso
Range("O18").Value = puisfisc
Sheets("Dem de frais").Activate
Range("C7").Value = adresse
Range("C8").Value = cpostal
Range("C9").Value = ville
End Sub

Pour résumer, une grande partie du questionnaire est pour les feuilles de 1 a 12. La 13ème feuille est "dem de frais " donc indépendante...
Donc ma demande:

1 est il possible de simplifier la macro??? car elle doit en faire bondir plus d'un ....désolé

2 Lorsque j'utilise le formulaire une deuxième fois, je souhaiterai modifier par exemple: le "Votre NOM" par "DURAND" qui a été enregistré par l'utilisateur la première fois...

Merci d'avance

apicius46
 
C

Compte Supprimé 979

Guest
Re : Recuperer les données dans Workbook_Open() + simplification de macro

Bonjour le fil
Salut papou-net

Je me suis permis quelques petites modifications à cause des #REF! du fichier
et j'ai modifié le code (je n'ai pas trop bien compris l'utilité !?)

A+
 

Pièces jointes

  • Acipius46_FraisDep2012.xls
    374.5 KB · Affichages: 67

Papou-net

XLDnaute Barbatruc
Re : Recuperer les données dans Workbook_Open() + simplification de macro

RE apicius46,

J'ai continué de travailler sur ton projet entretemps, mais je suis confronté à un problème :

Depuis que je l'ai modifié, j'ai un plantage à l'ouverture et je perds tout le code VBA. Je cherche la faille, mais je tenais à t'en informer.

Bonne soirée.

Cordialement.

PS : bonsoir à toi, Bruno.
 

apicius46

XLDnaute Junior
Re : Recuperer les données dans Workbook_Open() + simplification de macro

Salut la Dream Team,

Bon je vais d'abord répondre à BrunoM45:
Ce document me sert dans l'association de foot, pour nos bénévoles, cela leur permet de marquer tous leurs déplacements KM pour l'association(match, entrainement,réunion...) sur l'année. Puis on le ramène au barème kilométrique autorisé par les impôts. Cette somme ils en font le renoncement et le donne à l'association que nous convertissons en allègement pour leur déclaration d’impôts (pour info:66%du montant déclarer)...

Dans ce cadre légal cela permet a chacun d'avoir une preuve pour les impôts...Voili Voilou
Au fait concernant les #ref c'est rien d'important et j'ai modifié (c'est le classeur qu'une personne a faite et que j'améliore pour plus de facilité).
Dès qu'il sera finis je pourrais le diffuser complètement...

Du coups je réponds à Papou-net, effectivement c'est un classeur par bénévoles et ils l'auront toutes l'année pour qu'ils puissent le remplir au fils des semaines ou mois...De mon coté cela me permet de vérifier rapidement et d'avoir le moins d'erreur possible.
J'ai repris ton premier document que tu m'avais transmis sur le site. La macro ne fonctionnait pas sur moi pour les réenregistrement. Pourtant tout était enregistrer sur Feuil1.

Ce qui fonctionne c'est le formulaire... Si je peux émettre une hypothèse, dans 1er doc apicius46 rien n'apparait comme valeur au cellule précise dans Feuil1 donc il me semble qu'il ne peux y avoir d'enregistrement. Lorsqu'on
en registre il ne peux récupérer les éléments car ils ne sont pas inscrit "physiquement"...

Par ailleurs qu'elle est la ligne de macro pour récupérer les cellules existante d'une feuille vers le formulaire????

Voila, si j'ai pu vous donner quelques éléments de réponse...

Au fait, ce classeur est très important pour l'asso car il permet non pas de rétribuer un bénévole, mais que ses frais soit pris en compte et ne "lui coute que le moins possible". C'est déjà si dur d'avoir des bénévoles a l'heure actuelle!!!!
Leurs temps est forcement bénévoles (comme le miens et le votre...), c'est pour cela que vos éloges sont mérités. Par ailleurs je le vois aussi au quotidien...c'est très important pour nos jeunes de montrer que le bénévolat est important et que cela aide une société....

@pluche
Apicius46
 

Papou-net

XLDnaute Barbatruc
Re : Recuperer les données dans Workbook_Open() + simplification de macro

Bonsoir apicius46,

Après maints déboires dûs à des plantages d'Excel, j'ai été obligé de reprendre le code en grande partie.

Au vu de tes récentes explications, je crois qu le programme fonctionne correctement.

J'ai repris entièrement la feuille n°16 (Feuil1) qui enregistre les données de chaque membre. Tu te méfieras, j'ai prévu des cellules de test de changements effectués dans le formulaire. Ces cellules sont dans la plage E1:E10 et F1. Elles sont masquées par la zone de texte. Je pense que dans ta version définitive, tu aurais tout intérêt à masquer cette feuille également.

Pour les essais, j'ai prévu des données bidon. Au démarrage du fichier, le formulaire s'affiche : si tu appuies sur Continuer, il se ferme sans autre forme de procès. Si tu modifies ne serait-ce qu'un seule case, le clic sur le bouton Continuer affiche un message demandant de confirmer les changements. Le reste suit en fonction du bouton choisi dans ce msgbox.

Voilà, je pense avoir résumé les principales modifications apportées depuis la précédente édition.

Restant à ta disposition pour toute question supplémentaire, et te souhaitant une bonne nuit.

Cordialement.
 

Pièces jointes

  • Copie 02 de VIERGE NOM Prénom Déplacements Bénévoles Frais dep 2012exceld-1.xls
    384 KB · Affichages: 35

apicius46

XLDnaute Junior
Re : Recuperer les données dans Workbook_Open() + simplification de macro

Salut le forum,

Je suis désolé de n'avoir pas répondu plus rapidement, mais suite au dernier post de Papou-net, j'ai réussi a tout mettre en place, comprendre le système et l'adapter entièrement..... De la BOMBE.

J'en suis même rendu a remplir le formulaire "cerfa" pour les impôts. J'ai mis le document sur excel et il le remplis tout seul. Je donnerai le doc s'il y a des personnes interéssés.

Par contre j'ai forcément quelques interrogations.

  • Comment mettre en ligne le classeur fini qui fait 450ko alors que je suis limité à 293ko je crois..???? (J'ai bien trouvé une solution, c'est celle de la mettre sur mon serveur avec un lien, mais est ce que j'ai droit???)
  • Avec la macro je ne peux protéger les cellules inscrites , Je voudrais que seul le formulaire modifie les cellules,..
    Est ce possible???

Un grand merci à tous et surtout a caillou, BrunoM45, et Papou-net.
 

Papou-net

XLDnaute Barbatruc
Re : Recuperer les données dans Workbook_Open() + simplification de macro

Par contre j'ai forcément quelques interrogations.

  • Comment mettre en ligne le classeur fini qui fait 450ko alors que je suis limité à 293ko je crois..???? (J'ai bien trouvé une solution, c'est celle de la mettre sur mon serveur avec un lien, mais est ce que j'ai droit???)
  • Avec la macro je ne peux protéger les cellules inscrites , Je voudrais que seul le formulaire modifie les cellules,..
    Est ce possible???
Bonsoir le Forum, bonsoir apicius,

Pour répondre à la première solution, deux possibilités :

- zipper le fichier,

- Cliquer sur le lien suivant :Accueil de Cjoint.com (mais il en existe d'autres à dénicher sur le Web)

Quant au deuxième point, tu peux protéger tes feuilles contre les modifications opérées par l'intervenant mais les autoriser par les macros. Il suffit de paramétrer l'instruction comme suit :

Code:
ActiveSheet.Protect userinterfaceonly:=True

Par ailleurs, je suis heureux que tu aies réussi à tout mettre en place dans ton projet. Il est toujours valorisant de savoir qu'on a pu être utile quelque part.

En te souhaitant une bonne soirée.

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 845
Messages
2 092 771
Membres
105 531
dernier inscrit
Fidele Lebeni