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 apicius46

Pour le point n°1 , la réponse est .... est .... bien sur que oui ;):D
voici le code
Code:
Sub ouverture()
  Dim Sht As Worksheet
  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")
  ' Remplissage des feuilles
  For Each Sht In Sheets(Array("Ja", "Fé", "Mar", "Av", "Mai", "Juin", "Juil", "Ao", "Sep", "Oc", "No", "Dé"))
    'Sht.Activate  ' N'est pas nécessaire
    Sht.Range("G10").Value = nom
    Sht.Range("G12").Value = prenom
    Sht.Range("G14").Value = qualite
    Sht.Range("O16").Value = marque
    Sht.Range("O17").Value = immat
    Sht.Range("O18").Value = conso
    Sht.Range("O19").Value = puisfisc
  Next Sht
  With 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
  End With
  With Sheets("Dem de frais")
    '.Activate
    .Range("C7").Value = adresse
    .Range("C8").Value = cpostal
    .Range("C9").Value = ville
  End With
End Sub
On pourrait faire encore plus concis en regroupant les variables de départ dans un tableau,
mais bon, n'allons pas trop loin pour commencer ;)

Pour le 1er et le second point, le mieux serait d'utiliser un USF
pour ça, tu as pleins d'exemples sur le forum, il suffit de chercher

A+
 

Caillou

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

Bonjour,

En gardant le même esprit de macro, tu remplaces la ligne :
Code:
Sheets("Ja").Activate
par
Code:
Sheets(Array("Ja", "Fe", "Ma")).Select
ce qui t'évites de répéter pour les 12 mois

Pour la valeur par défaut, remplaces la ligne
Code:
nom = InputBox("VOTRE NOM", "Formulaire d'identité", "Votre NOM")
par
Code:
nom = InputBox("VOTRE NOM", "Formulaire d'identité", Sheets("Ja").Range("G10").Value

Caillou
 

Papou-net

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

Bonjour apicius46, BrunoM45, Caillou, le Forum,

Je suis à la traîne, mais comme je l'ai fait, je le transmets.

Cordialement à tous.

PS : à la première ouverture du fichier, le formulaire est vierge. Pour les suivantes, il apparaît pré-rempli.
 

Pièces jointes

  • apicius46.xls
    63 KB · Affichages: 77
  • apicius46.xls
    63 KB · Affichages: 84
  • apicius46.xls
    63 KB · Affichages: 87
Dernière édition:
C

Compte Supprimé 979

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

Cocou Papou-net ;)

Tu es à la traîne, certes, mais avec tu as eu le temps de faire un joli USF a3_isa.gif
Alors tu es excusé a3quattros-line.gif rire.gif

A+
 

Pièces jointes

  • a3_isa.gif
    a3_isa.gif
    9.5 KB · Affichages: 130
  • a3_isa.gif
    a3_isa.gif
    9.5 KB · Affichages: 126
  • a3quattros-line.gif
    a3quattros-line.gif
    9.6 KB · Affichages: 253
  • a3quattros-line.gif
    a3quattros-line.gif
    9.6 KB · Affichages: 251
  • rire.gif
    rire.gif
    3.9 KB · Affichages: 235
  • rire.gif
    rire.gif
    3.9 KB · Affichages: 236

Papou-net

XLDnaute Barbatruc

apicius46

XLDnaute Junior
[reglé] Recuperer les données dans Workbook_Open() + simplification de macro

Re Bonjour le Forum, BrunoM45, Caillou, Papou-net

Tout d'abord merci à tous les trois de votre compétences et rapidité.

Avec vos différentes évolutions, j'ai compris sur la simplification de la macro.Je comprends vite mais il faut me l'expliquer longtemps.

Par exemple au début j'avais commencé comme caillou sauf que je savais pas qu'il/qu'on pouvait mettre un tableau a l'intérieur de Sheets()....

Du coup avec la macro de Bruno c'est déjà plus clair et facile a mettre en œuvre...et j'ai compris votre démarche à Bruno et Caillou

Par contre pour avoir regarder les explications sur le net et vu comment Papou-net avait réalisé la macro en 3 coups de souris... je suis bluffé. et il faut que je m'attarde a mieux comprendre et essayer de faire de même.

Petite question sur cette macro:

Vous vous servez jamais de ce type de macro avec excel, car je trouve cela super pratique??? convivial et rapide d’exécution...
je compte l'adapter a un ou deux classeur que j'ai sous le coude....
C'est vrai que je suis pas si doué que cela avec excel, mais comme utilisateur lambda, cela donne envie d'utiliser excel. Qu'en pensez vous???


Merci encore mille fois pour votre réponse rapide:cool::):cool:
 

apicius46

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

Message peut-être plus à l'attention de Papou-net qui a créer une super macro, voila.

Après avoir réussi a mettre la macro corrigé sur mon classeur, je souhaiterai compléter l'ensemble des données. En effet, cela fonctionne super bien pour les feuilles sur l'année, sauf que j'ai deux feuilles auquel j'ai besoin des mêmes caractéristiques sauf qu'elle ne sont pas dans les mêmes cases.

Donc comment fait on pour adapter le formulaire aux pages a modifier...

Si vous voulez je peux donner le classeur, mais en substance on le retrouve dans mon premier post et correspond pour l'exemple à:(c'est à la fin et "dem de frais" correspond au nom de page)

Sheets("Dem de frais").Activate
Range("C7").Value = adresse
Range("C8").Value = cpostal
Range("C9").Value = ville

merci d'avance
apicius46
 

Papou-net

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

Si vous voulez je peux donner le classeur, mais en substance on le retrouve dans mon premier post et correspond pour l'exemple àc'est à la fin et "dem de frais" correspond au nom de page)

RE apicius,

Oui, si tu veux bien mettre le classeur en PJ car je ne le trouve pas dans ton premier post. D'ailleurs ça me surprend, car si j'en crois la réponse de Bruno, il a bien vu les feuilles supplémentaires dont tu parles.

Dans cette attente.

Cordialement.
 

apicius46

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

Bonjour Papou-net,

Je vais te transmettre ci joint les deux classeurs:

- Le mien que j'ai essayé de modifier avec ta macro (euh je m'excuse d'avance mais j'ai essayé des trucs et tu verra c'est le souk).
- Le tiens pour information, qui ma servit de support.

Attention mon classeur était trop important pour le mettre sur le site. J'ai du supprimer les feuilles de juin juillet et aout (Juin,Ju, Ao)

Si t'as besoin de complément d'info, pas de souci

Merci d'avance

Cordialement
Apicius46
 

Pièces jointes

  • apicius46.xls
    63 KB · Affichages: 45
  • apicius46.xls
    63 KB · Affichages: 45
  • apicius46.xls
    63 KB · Affichages: 41
  • VIERGE NOM Prénom Déplacements Bénévoles Frais dep 2012exceld.xls
    292.5 KB · Affichages: 41

Papou-net

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

Bonsoir apicius46,

Désolé, j'ai besoin d'une confirmation de ta part.

Si j'ai bien compris, tu aimerais que l'appui sur le bouton "Continuer" du formulaire d'identité inscrive les données d'identité et du véhicule dans les cellules adjacentes des feuilles "Année" et "Dem de frais" ?

Dans l'attente de te lire.

Cordialement.
 

apicius46

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

C'est tout a fait cela. L'objectif est de le donner a tous mes dirigeants afin qu'ils remplissent les champs rapidement et que je puisse les récupérer et de pouvoir les valider tranquillement... c'est pour les impôts afin que les bénévoles puissent avoir une réduction d’impôts...

Si c'est pas trop abusé, si tu peux me fournir un petit "tutoriel "ou quelques explications, que je puisse l'adapter a mes futurs classeurs.
Comme une forme de routine que si une chèvre comme moi puisse appliquer.

Merci d'avance
 

Papou-net

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

RE apidicius46

Alors voici la version définitive, du moins si elle te convient.
J'ai effacé toutes les lignes de code inutiles et j'ai ajouté quelques commentaires en guise de "tutoriel".
Si tu as des questions particulières, je reste à ton écoute.

En te souhaitant une bonne nuit.

Cordialement.
 

Pièces jointes

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

apicius46

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

Bonjour,

Bon je ré edite mon message, j'ai pas du l'envoyer!!!!

Bref, Je dis whaouuu, cela me conviens parfaitement...

Avec les explications, je me sens capable de faire un copier coller adapter pour mes futurs classeurs...Trop fort.

Et maintenant, est il possible de rajouter une petite modif:

Actuellement lorsqu'on remplis et enregistrer une première fois le formulaire tout se positionne ---> ok. On enregistre et on ferme-->ok
Maintenant des qu'on re démarre excel, il faut re remplir le formulaire sous peine de tout effacer....
Peut on l'avoir déjà pré rempli au 2èmè démarrage???

Ca c'est la cerise sur le gâteau....d'excel...

Merci d'avance

Apicius46

Ps:Au fait excel downloads a vraiment de la chance d'avoir des pro comme Papou-net, BrunoM45, Caillou.

Tous mes bénévoles te remercient d'avance, cela vas vraiment aider...
 

Papou-net

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

Bonsoir apicius46,

Tout d'abord, merci beaucoup pour tes éloges, c'est la meilleure (et la seule) récompense que nous puissions espérer en tant que bénévoles. C'est une façon pour nous de nous rendre utiles à nos heures disponibles. Je parle au nom de tous, je ne pense pas qu'ils me contrediront.

Pour en revenir au sujet qui nous intéresse, j'ai une petite question à poser :

- Comment est utilisé le fichier :

Est-ce que chaque bénévole possède son propre fichier ou est-ce le même pour l'ensemble des membres ? Je penche pour un fichier dédié à chaque bénévole, sinon pourquoi enregistrer les données. Mais j'aimerais que tu me confirmes.

Encore une précision : je pense qu'il faut enregistrer ces données sur la feuille 1, comme ça semblait être le cas au début de ta demande ?

Dans l'attente de te lire.

Cordialement.
 

Discussions similaires

Statistiques des forums

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