VBA - Création de plusieurs fichiers et copie de feuilles

Bonjour à tous !

J'ai de nouveau un besoin assez particulier pour un fichier. Malgré mes bases en VBA et mes recherches, je m'embrouille et tourne en rond. Si vous avez des conseils et des pistes je suis preneuse ! Sinon vous trouverez un fichier joint avec exactement ce que je besoin, si mes explications ne sont pas claires.

Je m'explique :

J'ai un certain nombre de sites (lieux), un nombre qui varie à chaque période. J'ai également un nombre d'opérationnels (des responsables de sites), qui varie. J'aimerais créer 1 fichier excel par opérationnel, qui aurait dans son fichier une feuille par site qui lui est attribué. J'ai des mappings, des listes de sites avec leurs opérationnels. Et les feuilles à copier sont à créer via une page de calculs que j'ai.

J'ai fait un fichier assez simplifié et clair je l'espère pour que ma demande soit plus claire.

J'ai pas mal cherché mais je n'ai pas trouvé d'autres sujets assez similaires sur le forum, mais si vous en connaissez je suis aussi preneuse du lien :)

Merci pour votre temps !

Océane.

Bonjour Oceane,

Pour des sujets similaires, je pense que ta demande est trop spécifique pour la partie "Création des fichiers par opérationnels".
Pour la partie "Envoi des fichiers par mail", il y a bien le fichier partagé par Bruno Fichier Envoi de Mail.

A tester :

J'ai commencé par mettre toutes tes données sous forme de tableau structué nommé et modifié les données de la liste déroulante de la feuille "Par_site".

image

_________________________________________________________________________________

Création des fichiers par opérationnels (macro dans le module "M_Operationnels")

- On commence par creer un dossier a l'endroit ou se situe ton classeur nommé "Fichier Operateur".
- On recupere les données opérateur dans le mapping
- On creer un fichier grace a la feuille Intro sa version dépend du nomdre de fichier avec avec le meme nom dans ce dossier d'enregistrement
- On ajoute a ce fichier les feuilles "Par_site" correspondant a l'opérateur
-On sauvegarde et on passe a l'opérateur suivant.

image

_________________________________________________________________________________

Envoi des fichiers par mail (macro dans le module "M_Mail")
En partant du fichier de Bruno,

- On liste les Operateur a qui envoyer un mail
- On recupere les données opérateur dans le mapping
- On va chercher le dernier indice du fichier
- Si un fichier existe on le met en piece jointe et compte le mail comme "envoyé" sinon compter comme pas de mail envoyé
- On génére les mails (generer avec Display / envoi avec Send)

    .Display 'Save pour brouillon et Send => Pour envoi direct

- On boucle sur tout les opérateurs
- Message final pour les opérateurs qui ne vant pas recevoir de mail
- Message final pour savoir le nombres de mail envoyé

A+

J'essaie de bien lire et comprendre les macros, donc je ne sais pas encore comment mais ça fonctionne ! Mille mercis !! Je vais bosser pour peaufiner ça et bien sûr à l'adapter à mes gros fichiers :)

Merci encore !!

Bonne journée :D

J'aurais une petite question,

Quand je change le nom de mes onglets, j'ai une petite fenêtre qui s'ouvre, qu'est-ce que c'est ? Qu'elle est la raison ? Comment on fait ça ?

C'est pour mieux comprendre seulement. C'est pratique, d'habitude je dois changer le nom de la feuille dans mes macros :)

Merci encore !

Pas sûr d'avoir compris, "une petite fenêtre qui s'ouvre" ?

Tu peux appeler ta feuille de plusieurs façon exemple avec la Feuil2 / "Mapping" :

image

Si tu veux la cellule A1 tu peux ecrire :

Feuil2.Range("A1")
'ou
Sheets("Mapping").Range("A1")

Le premiere façon permet de renommer la feuille sans avoir besoin de changer la macro.

Oui ma formulation n'était pas claire mais j'ai eu ma réponse :)

Merci encore !

Rechercher des sujets similaires à "vba creation fichiers copie feuilles"