Macro Spécifique à chaque onglet

Bonjour à tous,

J'ai besoin de votre aide pour résoudre un problème. J'ai un fichier Excel de tarifs qui se décline en une multitude d'onglets différents pour chaque client (soit une quarantaine).

Je dois régulièrement mettre à jour ces tarifs et les renvoyer au format PDF. Pour les MAJ pas de soucis, j'ai juste à modifier mon tarifs de base dans le premier onglet pour que cela se répercute sur tous les autres. En revanche j'aimerais qu'à chaque fois que j'exporte l'onglet d'un client au format PDF il aille s'enregistrer automatiquement dans le dossier spécifique de celui ci. Pour le moment à chaque fois que j'exporte un fichier en PDF je dois manuellement faire le chemin pour l'enregistrement.

Je suis persuadé qu'il y a une macro à trouver afin de gagner un temps considérable. Mais toutes celles que j'ai trouvé sur les forums et testé ne fonctionnent pas. Disons que je ne suis pas très doué pour modifier de la bonne manière les VBA.

Merci d'avance à ceux qui prendront le temps de se pencher sur le problème.

Bonjour,

Difficile de répondre avec précision sans fichier exemple et sans indication sur l'endroit d'enregistrement souhaité.

Tu auras sans doute besoin de déclarer en variable :

Chemin-enregistrement.

puis tu devras dire qu'il est = à C:\user........ \ & "nomdufournisseur"

Bonjour,

Voici un exemple du fichier en PJ.

Effectivement ce sera plus simple si je donne si je donne un cas concret. Dans ce fichier, le premier onglet est ma base de tarifs. Admettons que l'onglet "Base 1" soit un de mes clients. J'aimerais l'enregistrer automatiquement dans un fichier spécifique lorsque je l'exporte au fichier PDF : "C:\Users\Alan\Documents\Négoce\Distributeurs\Base1"

Pareil pour l'onglet "Base 2" qui représente un autre client et donc un chemin d'enregistrement différent :

"C:\Users\Alan\Documents\Négoce\Distributeurs\Base2"

Quel code faut-il écrire pour arriver à ce résultat ?

Re,

Voici les quelques lignes d'une macro adaptées à ton exemple.

Re,

Merci pour ton aide. Alors j'ai testé ta macro mais elle ne fonctionne pas. Ou en tout cas cela n'est pas exactement ce que j'aimerais en faire.

C'est bien l'export au format PDF d'un des onglets que je veux enregistrer dans un dossier spécifique.

Pas le fichier Excel en lui même. Avec ta macro quand je clique sur exporter je dois toujours aller chercher le chemin d'enregistrement de façon manuelle.

Et cela me met un message "Les fonctionnalités ne peuvent pas être enregistrées dans des classeurs sans macro" quand je clique pour simplement enregistrer le fichier Excel qui sert de base.

Re,

Si tu ajoutes la macro dans ton classeur d'origine est que tu continues à l'enregistrer au format xls … çà ne peut pas fonctionner.

Tu dois faire "enregistrer sous" et changer le "Format" en dessous du nom : XLSM classeur avec macro.

Ensuite quand tu lanceras la macro si il ne trouve pas le répertoire c'est qui il a une erreur de frappe dans le chemin indiqué

(je me suis contenté de recopier ce que tu avais écris ; je ne peux pas vérifier le chemin à ta place. )

Pour finir l'export d'un seul onglet fonctionne de mon coté la commande vba dans la macro indique bien le nomfeuille

il n'y à pas de raison qu'il exporte la totalité

Worksheets(nomfeuille).ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & nomfeuille & ".pdf" 

Avec une macro on ne clic pas sur exporter on clic sur macro lancer ou on fait un bouton pour y affecter la macro.

Bonjour à tous,

à tester:

Sub test()

    Dim i      As Integer
    Dim Fichier As String
    Dim Chemin As String
    Dim Client As String

    Chemin = "C:\Users\Alan\Documents\Négoce\Distributeurs\"

    Application.ScreenUpdating = False

   For i = 2 To ActiveWorkbook.Worksheets.Count 'Boucle sur tous les onglets à partir du deuxième

        Client = Sheets(i).Name
        Fichier = Chemin & Client & "\Tarif " & Client & ".pdf" ' Nom du fichier à adapter

        Sheets(i).ExportAsFixedFormat _
                                        Type:=xlTypePDF, _
                                        Filename:=Fichier, _
                                        Quality:=xlQualityStandard, _
                                        IncludeDocProperties:=True, _
                                        IgnorePrintAreas:=False, _
                                        OpenAfterPublish:=False

    Next i
    Application.ScreenUpdating = True

End Sub
Rechercher des sujets similaires à "macro specifique chaque onglet"