Exécuter une macro sur une autre feuille

Bonjour,

J'ai la macro suivante dans l'onglet "Packing List",

Sub Enregistre_Packing_List()

Dim Repertoire As FileDialog

Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)

Repertoire.Show

CheminDossier = Repertoire.SelectedItems(1)

If CheminDossier = "" Then Exit Sub

Debug.Print CheminDossier

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

CheminDossier & "\Packing List_" & Range("G6").Value & ".pdf", quality:= _

xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _

from:=1, to:=1, openafterpublish:=False

End Sub

je souhaite pouvoir l'exécuter avec un bouton dans l'onglet "Facture"............ est-ce que c'est possible, et si oui, j'ai besoins d'aide.

capture 5

Je ne suis pas sûr d'être assez clair..............

Bonjour,

1- identifier dans l'éditeur VBA la feuille objet correspondant à l'onglet "Packing List" , qui pourrait être par exemple "Feuil1"

2- La procédure publique "Enregistre_Packing_Lis" est une méthode de cette feuille objet. L'instruction pour appeler la procédure est donc :

Call Feuil1.Enregistre_Packing_Lis

Si vous tapez juste "Call Feuil1.", vous allez voir apparaitre les propriétés et méthodes disponibles pour l'objet "Feuil1" et vous devez y trouver votre procédure.

Hello,

N'étant pas d'un grand niveau sur VBA.......... Je dirais même néophyte...

Je ne vois pas ou placer : Call feuil8.

capture

Cdt

Christophe

Bonjour,

Ta macro n'est-elle pas dans un "module" plutôt que dans un onglet ?

Pour savoir ou placer la commande ; avec un peu de logique, puisque tu souhaites un bouton dans ta feuille facture alors ce sera

lors de l'événement commandButton1_click()

Faudrait commencer dans l'ordre par la création du bouton :

Sur l'onglet "Facture" options développeur tu insères un "Bouton de commande" ( contrôle active x )

Ensuite dans l'éditeur VBA de ta feuille "Facture" à la place de "général" tu selectionnes "CommandButton1"

Tu verras apparaître les lignes suivantes :

Private Sub CommandButton1_Click()

End Sub

Tu n'as plus qu'a y insérer l'appel de ta macro :

Private Sub CommandButton1_Click()

Enregistre_Packing_List

End Sub

Bonjour,

Si j'ai bien compris le problème, il faudrait remplacer :

ActiveSheet.ExportAsFixedFormat '...
'Par :
Sheets("Packing List").ExportAsFixedFormat 

Hello,

Exacte c'est dans un module

Inexpérience......... quand tu nous tiens........

Je regarde et te dis le résutat

Merci

Bonjour,

Comment cette macro située dans un module et non dans l'onglet ""Packing List" est-elle exécutée dans cet onglet ?

Par ailleurs, je suppose que si voulez l'exécuter depuis l'onglet "Facture", vous souhaitez une exportation de cet onglet en PDF.

il faudrait donc déjà plutôt modifier votre macro ainsi :

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
CheminDossier & "\" & ActiveSheet.Name & "_" & Range("G6").Value & ".pdf", quality:= _
xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
from:=1, to:=1, openafterpublish:=False

Hi,

Ça marche...........

Et ce n'est pas un miracle,

Merci beaucoup

Cdt

Christophe

Hi,

Désolé de revenir sur ce sujet......... J'ai certainement dû m’emmêler les pinceaux dans mes versions et cette macro ne fonctionne plus.

Je souhaite enregistrer en format PDF la feuille "Packing List" avec un bouton situé dans la feuille "facture". Pour info, ce sont des feuilles protégées. Ci-joint le fichier, si ça peut aider.

Sub Enregistre_Packing_List()

Dim Repertoire As FileDialog

Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)

Repertoire.Show

CheminDossier = Repertoire.SelectedItems(1)

If CheminDossier = "" Then Exit Sub

Debug.Print CheminDossier

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

CheminDossier & "\" & ActiveSheet.Name & "_" & Range("G6").Value & ".pdf", quality:= _

xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _

from:=1, to:=1, openafterpublish:=False

End Sub

Cdt

Christophe

Bonjour,

Si j'ai bien compris le problème, il faudrait remplacer :

ActiveSheet.ExportAsFixedFormat '...
'Par :
Sheets("Packing List").ExportAsFixedFormat 

1- remplacer alors ActiveSheet par Feuil8

Feuil8.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
CheminDossier & "\" & Feuil8.Name & "_" & Range("G6").Value & ".pdf", quality:= _
xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
from:=1, to:=1, openafterpublish:=False

2- copier le bouton de commande sur la feuille "Facture"

Hi,

Il enregistre bien La Packing List cette fois. Par contre le titre est "Facture" et non pas "Packin List" et il ne met pas non plus dans le titre le n° en case (G6), indispensable pour archivage.

Désolé

Cdt

Christophe

De plus il n'a enregistré qu'une page sur les deux.....................

Cette modif devrait résoudre le problème

Feuil8.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
CheminDossier & "\" & Feuil8.Name & "_" & Feuil8.Range("G6").Value & ".pdf", quality:= _
xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
from:=1, to:=2, openafterpublish:=False

Yesssssssssssssssssssssssss

Merci pour tout

Cdt

Christophe

Rechercher des sujets similaires à "executer macro feuille"