Excel Downloads
Forum

Précédent   Excel Downloads Forums > Archives > Forum Excel Downloads - Archives

Advertisement

 
 
LinkBack Outils de la discussion
Vieux 17/11/2004, 10h14   #1 (permalink)
sauny
Guest
 
Messages: n/a
Par défaut création d'un formulaire a partir d'une base

Bonjour à tous
J'ai une base sous excel et je souhaiterais mettre les infos de chaque ligne dans un formulaire sur un nouvelle feuille

ma base:
nom n°adhérent voiture maison bateau
toto 12A oui non oui
titi 11B non non non
tete 54F oui oui oui

mon formulaire dans une nouvelle feuille renommeé "nom - n°adherent":
nom: toto
n°adherent: 11B

voiture: oui
maison: non
bateau: oui
...etc

Il faudrait que ce soit automatique : un bouton à cliquer et tous les formulaires sont crées à la suite...

Si vous aviez des pistes (assez précises, je suis un gros nullos...)

Je vous remercie
 
ANNONCES
Vieux 17/11/2004, 12h55   #2 (permalink)
K@d
Guest
 
Messages: n/a
Par défaut Re: création d'un formulaire a partir d'une base

Bonjour,

faire cette manipulation n'est pas très compliqué, ce qui l'est plus, c'est la mise en forme derrière...
Un bout de solution (il est nécessaire au préalable d'avoir nommé la plage de cellules contenant tous les NOMS en Liste_Noms)

Sub Create_Formulaires

Dim vcell as object
Dim StrNom as string
Dim StrNum as string
Dim StrVoiture as string
Dim StrMaison as string
Dim StrBateau as string

'pour chaque personne enregistrée
For each vcell in range('Liste_Noms")

's'il y a un nom
If vcell.value<>"" then

'on prend les différentes données de la ligne (colonne par colonne)
StrNom=vcell.value '''le nom de la personne
StrNum=vcell.offset(0,1).value '''son numéro adhérent
StrVoiture =vcell.offset(0,2).value '''voiture Oui/Non
StrMaison =vcell.offset(0,3).value '''maison Oui/Non
StrBateau =vcell.offset(0,4).value '''bateau Oui/Non

'on ajoute une nouvelle feuille
Sheets.Add

'on renomme la feuille
activesheet.name= StrNom & " - " & StrNum

'on met les intitulés
Range("A1").value="Nom :"
Range("A2").value="N° adhérent"
Range("A4").value="Voiture ?"
Range("A5").value="Maison ?"
Range("A6").value="Bateau ?"

'et les valeurs !
Range("B1").value=StrNom
Range("B2").value=StrNum
Range("B4").value=StrVoiture
Range("B5").value=StrMaison
Range("B6").value=StrBateau

endif

next Vcell

End Sub

J'espère avoir pu répondre en partie au problème ! Il ne reste plus qu'à insérer un bouton et y affecter cette macro sur la feuille comportant les noms. Je reste à disposition pour toute information supplémentaire...
Bon courage !!!

Clément

"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème."
 
Vieux 17/11/2004, 13h35   #3 (permalink)
sauny
Guest
 
Messages: n/a
Par défaut Re: création d'un formulaire a partir d'une base

Merci pour cette première réponse !!!

2 choses de +:

-j'ai un petit souci avec "For each vcell in range('Liste_Noms")": s'affiche soit en jaune, soit en rouge...(ça dépends des " ' () )

-j'ai déjà un formulaire de prêt:
->il faut donc que je spécifie pour chaque colonne l'emplacement dans le formulaire ???
 
Vieux 17/11/2004, 14h57   #4 (permalink)
K@d
Guest
 
Messages: n/a
Par défaut Re: création d'un formulaire a partir d'une base

Re,

oups, la synthaxe.... Quand on ne tape pas sous VBA, on ne voit pas le résultat !

Lire
For each vcell in range("Liste_Noms")
et non...
For each vcell in range('Liste_Noms") --> guillemets à utiliser

Si il y a un formulaire de prêt (appelons la feuille 'Formul' pour l'exemple):

1- Nommer les cellules cibles (ex : 'Nom','Adhérent'...)
2- Changer tout le code comme suit :

Sub Create_Formulaires

Dim vcell as object
Dim StrNom as string
Dim StrNum as string
Dim StrVoiture as string
Dim StrMaison as string
Dim StrBateau as string
Dim IntNbfeuilles as integer

'pour chaque personne enregistrée
For each vcell in range('Liste_Noms")

's'il y a un nom
If vcell.value<>"" then

'on prend les différentes données de la ligne (colonne par colonne)
StrNom=vcell.value '''le nom de la personne
StrNum=vcell.offset(0,1).value '''son numéro adhérent
StrVoiture =vcell.offset(0,2).value '''voiture Oui/Non
StrMaison =vcell.offset(0,3).value '''maison Oui/Non
StrBateau =vcell.offset(0,4).value '''bateau Oui/Non

'on active le formulaire
Sheets("Form").Select

IntNbfeuilles=thisworkbook.worksheets.count

'on la copie à la fin du classeur
Sheets("Form").Copy After:=Sheets(IntNbfeuilles)

'on renomme la feuille
activesheet.name= StrNom & " - " & StrNum

'on met les intitulés

'et les valeurs !
Range("Nom").value=StrNom
Range("Adherent").value=StrNum
Range("A_Voiture").value=StrVoiture
Range("A_Maison").value=StrMaison
Range("A_Bateau").value=StrBateau

endif

next Vcell

End Sub


'on sélectionne le formulaire existant
Sheets("Form").Select

'on renomme la feuille
activesheet.name= StrNom & " - " & StrNum

'on met les intitulés
Range("A1").value="Nom :"
Range("A2").value="N° adhérent"
Range("A4").value="Voiture ?"
Range("A5").value="Maison ?"
Range("A6").value="Bateau ?"

'et les valeurs !
Range("B1").value=StrNom
Range("B2").value=StrNum
Range("B4").value=StrVoiture
Range("B5").value=StrMaison
Range("B6").value=StrBateau

endif

next Vcell

End Sub

*-------------------------------------*

Bonne continuation !!!

Clément

"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème."
 
Vieux 17/11/2004, 15h03   #5 (permalink)
K@d
Guest
 
Messages: n/a
Par défaut Re: création d'un formulaire a partir d'une base

Problème de copier - coller :

- bien lire Sheets("Formul") et non "Form"
- bien arrêter la reprise du code au premier End Sub...
- Lire For each vcell in range("Liste_Noms") --> même erreur

Désolé... :0(

Clément
 
Vieux 17/11/2004, 19h06   #6 (permalink)
sauny
Guest
 
Messages: n/a
Par défaut Re: création d'un formulaire a partir d'une base

je regarde tout ça et je reviens vers toi si j'ai des soucis...
vu la facilité avec laquelle tu me réponds, il me viens d'autres idées pour améliorer mon petit fichier mais chaque chose en son temps...

Merci à toi pour ton aide !!!!
 
Vieux 22/11/2004, 15h54   #7 (permalink)
sauny
Guest
 
Messages: n/a
Par défaut Re: création d'un formulaire a partir d'une base

Salut à tous
Ca y est !!!
J'ai réussi à faire ce que je voulais et j'ai meme rajouté d'autres petites choses à l'interieur

Merci beaucoup Clément, tes lignes de code m'ont beaucoup aidé...

Mais il me vient une autre idée: sur mon formulaire, en fonction des réponses données (oui,non,...), il y a un système de notation avec un total en fin de formulaire.
Je souhaiterais maintenant récupérer dans un fichier tous les totaux de toutes les feuilles créées afin d'avoir une vue globale.

merci
 
ANNONCES
 

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 05h19.


(C) 2006 Excel Downloads