VBA enregistrer un classeur sous plusieurs noms

  • Initiateur de la discussion Initiateur de la discussion AMIS94
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

AMIS94

XLDnaute Nouveau
Bonjour à tous,
J'ai un classeur excel (origine) que je dois envoyer chaque semaine à 50 personnes. Sur 1 deuxième classeur (destinataires) se trouve la plage intitulée "name" (correspondant à la liste des destinataires). Celle-ci est évolutive.
Actuellement, j'enregistre plus de 50 fois le classeur (origine) avec 50 noms de destinataires différents.
Je souhaite créer une macro enregistrant le classeur (origine) autant de fois que de destinataires avec leurs noms.
merci
 
Re : VBA enregistrer un classeur sous plusieurs noms

Bonjour,
essaie peut être ceci nom feuille à adapter et suppose une plage nommée dans le classeur en question :
Code:
Option Explicit
Sub test()
Dim c As Range
For Each c In Workbooks("destinataire.xls").Sheets("Feuil1").Range("name")
    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & c
Next c
End Sub
bon après midi
@+

Edition : bonjour Robert🙂
 
Dernière édition:
Re : VBA enregistrer un classeur sous plusieurs noms

Bonjour Amis, bonjour le forum,

Comme tu ne donnes pas toutes les données du problème une macro (à adapter) à placer dans le classeur origine :

Code:
Sub Macro1()
Dim co As Workbook 'déclare la variable co (Classeur Origine)
Dim cs As workbbok 'déclare la variable cs (Classeur Source)
Dim ch As String 'déclare la variable ch (CHemin d'accès)
Dim cel As Range 'déclare la variable cel (CELlule)

Set co = ThisWorkbook 'définit le classeur origine co
Set cs = Workbooks("destinataires.xlsx") 'définit le classeur source cs (à adapter au niveau de l'extention, xls, xlsm...)
ch = co.Path & "\" 'définit le chemin d'accès ch
For Each cel In cs.Range("name") 'boucle sur toutes les cellules cel de la plage nommée "name" du classeur source
    co.SaveAs (ch & cel.Value) 'enregiste le classeur origine co sous le nom indiqué dans la cellule cel et dans le chemin ch
        'co.SaveAs (ch & cel.Value & ".xlsm")'si le nom ne contient pas d'extension
Next cel 'prochaine cellule de la boucle
End Sub

[Édition]
Bonjour Pierrot... on s'est... bla bla bla comme d'hab...
 
Re : VBA enregistrer un classeur sous plusieurs noms

Bonjour PIERROT93
Je te remercie de ta réponse. Mercredi, au travail, j’intègrerai ta solution dans ma macro.
Je te joins un extrait de mon fichier pour mieux illustrer ma question.
Mais à 59 ans il est dure avec l'intelligence qu'il me reste d'apprendre et surtout de porter un jugement. 😛
Je pensais pouvoir t'envoyer une piece jointe, mais celà me semble impossible, ou ?
A bientôt. Merci beaucoup, bon week-end
AMIS 94
 

Pièces jointes

Re : VBA enregistrer un classeur sous plusieurs noms

Bonjour Robert
Je te remercie de ta réponse. Mercredi, au travail, j’intègrerai ta solution dans ma macro. Je te joins un extrait de mon fichier pour mieux illustrer ma question. 😛
A bientôt. Merci beaucoup, bon week-end 😎
AMIS 94
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
1 K
Retour