VBA EXCEL créer bouton d'impression
beachboy84
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai une base de donnée sous excel comprenant deux onglets: un onglet 1 avec une base de donnée de client et les champs de celles-ci (Nom, prénoms...).
Un deuxième onglet 2 me servant à faire l'impression.
En effet, pour pouvoir imprimer une personne de ma base de donnée sur une feuille A4 et qu'elle apparaisse en colonne, je sélectionne actuellement la ligne voulue dans l'onglet 1, et fait un copy-Paste transposé sur l'onglet 2. (J'ai 30 champs par client)
Ma question est la suivante: Plutôt que de faire cette manipulation à chaque fois et pour gagner du temps, serait-il possible de créer dans l'onglet 1 un bouton impression qui m'imprime automatiquement la ligne que je souhaite(soit parce que je la sélectionne, soit car j'indique son numéro...) via un code VBA sur une feuille A4 classiquement avec les infos en colonnes?
Ou bien serait-il possible d'imprimer simplement le formulaire se référant au tableau?(CF données -formulaire)
Par avance, merci de votre réponse.
N'hésitez pas à me poser des questions si je me suis mal exprimé ou bien si je n'ai pas décrit assez clairement mon problème.
Cordialement.
J'ai une base de donnée sous excel comprenant deux onglets: un onglet 1 avec une base de donnée de client et les champs de celles-ci (Nom, prénoms...).
Un deuxième onglet 2 me servant à faire l'impression.
En effet, pour pouvoir imprimer une personne de ma base de donnée sur une feuille A4 et qu'elle apparaisse en colonne, je sélectionne actuellement la ligne voulue dans l'onglet 1, et fait un copy-Paste transposé sur l'onglet 2. (J'ai 30 champs par client)
Ma question est la suivante: Plutôt que de faire cette manipulation à chaque fois et pour gagner du temps, serait-il possible de créer dans l'onglet 1 un bouton impression qui m'imprime automatiquement la ligne que je souhaite(soit parce que je la sélectionne, soit car j'indique son numéro...) via un code VBA sur une feuille A4 classiquement avec les infos en colonnes?
Ou bien serait-il possible d'imprimer simplement le formulaire se référant au tableau?(CF données -formulaire)
Par avance, merci de votre réponse.
N'hésitez pas à me poser des questions si je me suis mal exprimé ou bien si je n'ai pas décrit assez clairement mon problème.
Cordialement.
A voir également:
- VBA EXCEL créer bouton d'impression
- Spouleur d'impression - Guide
- Créer liste déroulante excel - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Impression livret a5 - Guide
3 réponses
bonjour
As-tu essayé d'enregistrer une macro lorsque tu fais cela manuellement ?
Cela serait une bonne base de départ et ensuite tu nous postes la macro obtenue et on l'adapte à une utilisation banalisée sur le client sélectionné.
As-tu essayé d'enregistrer une macro lorsque tu fais cela manuellement ?
Cela serait une bonne base de départ et ensuite tu nous postes la macro obtenue et on l'adapte à une utilisation banalisée sur le client sélectionné.
Merci beaucoup gbinforme et excuse-moi de te répondre si tardivement.
Voilà ma macro
Sub imprimer_entree()
'Atteindre le formulaire et mémoriser les données
Sheets("Base de données").Select
ActiveCell.EntireRow.Select
Selection.Copy
'Test pour déterminer ou coller ds tableau
Sheets("Impression-Enregistrement").Select
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
'Imprimer
Sheets("Impression-Enregistrement").Select
ActiveSheet.PageSetup.PrintArea = Zone_Imp("A1", "B", 32)
End Sub
J'ai deux problèmes: Tout d'abord la macro ne marche pas car il me semble que je me suis trompé quelque part dans la zone d'impression.Je pense que j'ai fait une faute dans l'écriture de la séléction de la zone.
Mon deuxième problème est le suivant: Est-il possible de ne pas copier entièrement la ligne que je sélectionne dans le feuiille dite "base de données", mais plutot cette ligne sur 32 colonnes. En réalité je pense que mon principal soucis est un problème de sélection de zones que ce soit d'impression ou de sélection.
NB: J'ai pensé à une autre solution: peut-on séléctionner via une macro, après un tri automatique, la ligne qui s'affiche?
Je suis désolé j'ai juste comencé à manipuler VBA depuis 3 jours dans le cadre de mon job, et ce que je fais n'est ni plus ni moins que du copier-coller appliqué à mon cas de ce que j'ai trouvé sur différents sites!pas très pro j'avoue.
Merci encore de votre aide.
Voilà ma macro
Sub imprimer_entree()
'Atteindre le formulaire et mémoriser les données
Sheets("Base de données").Select
ActiveCell.EntireRow.Select
Selection.Copy
'Test pour déterminer ou coller ds tableau
Sheets("Impression-Enregistrement").Select
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
'Imprimer
Sheets("Impression-Enregistrement").Select
ActiveSheet.PageSetup.PrintArea = Zone_Imp("A1", "B", 32)
End Sub
J'ai deux problèmes: Tout d'abord la macro ne marche pas car il me semble que je me suis trompé quelque part dans la zone d'impression.Je pense que j'ai fait une faute dans l'écriture de la séléction de la zone.
Mon deuxième problème est le suivant: Est-il possible de ne pas copier entièrement la ligne que je sélectionne dans le feuiille dite "base de données", mais plutot cette ligne sur 32 colonnes. En réalité je pense que mon principal soucis est un problème de sélection de zones que ce soit d'impression ou de sélection.
NB: J'ai pensé à une autre solution: peut-on séléctionner via une macro, après un tri automatique, la ligne qui s'affiche?
Je suis désolé j'ai juste comencé à manipuler VBA depuis 3 jours dans le cadre de mon job, et ce que je fais n'est ni plus ni moins que du copier-coller appliqué à mon cas de ce que j'ai trouvé sur différents sites!pas très pro j'avoue.
Merci encore de votre aide.
bonjour
Est-il possible de ne pas copier entièrement la ligne : tout à fait il suffit de donner le nombre.
peut-on séléctionner via une macro, après un tri automatique, la ligne qui s'affiche?
C'est possible aussi et je t'ai mis la sélection : il suffit de cliquer sur la bonne ligne et de valider.
Est-il possible de ne pas copier entièrement la ligne : tout à fait il suffit de donner le nombre.
peut-on séléctionner via une macro, après un tri automatique, la ligne qui s'affiche?
C'est possible aussi et je t'ai mis la sélection : il suffit de cliquer sur la bonne ligne et de valider.
Sub imprimer_entree() 'Atteindre le formulaire et mémoriser les données Dim sel As Variant Sheets("Base de données").Activate Set sel = Application.InputBox("Choisissez le client à imprimer", "Choix client", "Base de données!A1", 160, 50, , , 8) Sheets("Base de données").Cells(sel.Row, 1).Resize(1, 32).Copy 'Test pour déterminer ou coller ds tableau Sheets("Impression-Enregistrement").Range("B1").PasteSpecial _ Paste:=xlPasteAllExceptBorders, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=True 'Imprimer Sheets("Impression-Enregistrement").PageSetup.PrintArea = [A1:B32] Sheets("Impression-Enregistrement").PrintOut Copies:=1, Collate:=True End Sub