générer une feuille par macro

P

patrick

Guest
Bonjour,

Mon problème est simple (heu...pas pour moi!!!)

j'ai une feuille ( récap vente)ou je récapitule tous les éléments nécessaire pour l'édition d'une facture.

en cliquant sur un bouton je souhaite générer une facture.

mon problème c'est que ce bouton génère la facture de la dernière ligne (de récap vente).

ma facture est une autre feuille mais je penses plus tactique de créer un modèle.

Merci pour votre aide
 
S

sylsyl

Guest
Salut Patrick,

pour ajouter une feuille la methode est "AddSheet"

mais pour ton probleme, pour creer un modele, la facon la plus simple est de loin d'utiliser l'enregistreur de macro (Outils>macro>enregistrer une macro).

Lance l'enregistreur, cree une nouvele feuille, fais ta mise en page puis arrete l'enregistreur. Et voila !! ta procedure est ecrite...

Un joli copier/coller (ou renomage), qques modifs et c'est termine.

Si ce n'est pas ce que tu voulais redemande (sur ce meme fil).

A++, Sylsyl.
 
P

patrick

Guest
Merci pour ta réponse mais mon problème est à un autre niveau.

une feuille récap vente : toutes les ventes ( 1 par ligne)
une feuille facture : modèle de facture

je souhaite une macro (bouton sur récap vente) qui génère une facture.
Cette facture reprendra les éléments de la dernière ligne de Récap Vente.

Comment "dire à la macro" tu prends les éléments de la dernière ligne?
Si il n'y avais qu'une seule ligne : facile (les cellules de facture se remplissent via récap vente), le problème c'est qu'il y a plusieurs lignes. Il me faut donc prendre uniquement la dernière.

merci pour ton aide

patrick
 
S

sylsyl

Guest
Re,

Alors si cette fois-ci j'ai bien compris, c'est pas complique...

Si par exemple le nom du client est dans la colonne "A" et son adresse en "B".

"B10" est la cellule de la feuille "Facture" dans laquelle tu veux mettre le nom et "D12", son adresse.

Creer la macro ci-dessus qui se lancera avec le bouton et ajoute


Sheets("Facture").Range("B10") = Sheets("Recap Vente").Range("A65536").End(xlUp).Value

Sheets("Facture").Range("D12") = Sheets("Recap Vente").Range("B65536").End(xlUp).Value

Explication:
Range("A65536").End(xlUp) permet de trouver la derniere cellule de la colonne A

"Facture" est le nom de la feuille modele.

/!\ il faut que la ligne de Recap Vente soit entierement remplie. Si ce n'est ps le cas, utilise End(xlUp) sur une colonne qui est toujours remplie et utilise End(xlUp).Offset(...,...).

Tiens moi au courant.

A+, Sylsyl.
 
P

patrick

Guest
super tu es géniale ça marche comme sur des roulettes.
Bien évidemment ommme tout dévelopement maintenant que ça marche je me rends compte des problèmes liés au cas particuliers si j'ai plusieurs ventes pour une même facture!!!!)

Mais bon je pars sur le principe que pour ces cas de figures je completerai par copier/coller.

En attendant un grand merci et bravo.

j'aimerai beaucoup te rendre la pareille mais tu l'auras compris certainement pas avec excel (plus côté multimédia, web, image...)

merci beaucoup
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz