Créer des copies de feuilles selon condition

Le
paruf1
Bonjour,

C'est la première fois que je poste ici, merci par avance pour votre
aide. D'ahbitude je trouve les réponses à mes questions parmi les
message existants, mais là j'avoue que je ne sais pas par où
commencer.

Voilà ce à quoi je voudrais arriver:

J'ai deux feuilles dans un classeur:
Une feuille contenant une liste de noms (A1:A50) : "liste_des_noms"
Une feuille à copier : "details_par_personne" (avec des formules)

J'aimerais créer une macro qui me permettrait de générer autant de
feuilles qu'il y a de noms dans la liste (de 1 à 50), avec en A2 de
chacune de ces feuilles, le nom de la liste correspondant (il faudrait
aussi que la feuille porte ce nom).
Exemple : si la liste dans la feuille "liste_des_noms" contient Jean
Dupont en A1 et Pierre Durant en A2, il faudrait que la macro crée
deux feuilles supplémentaires:
la feuille "Jean Dupont", copie de la feuille details_par_personne,
avec la valeur Jean Dupont en A2,
la feuille "Pierre Durant", copie de la feuille details_par_personne,
avec la valeur Pierre Durant en A2.

Comme les autres cellules de la liste sont vides, il n'y aura pas
d'autre feuilles créées.

Je vais un peu plus loin:
Comme l'opération va être lourde en termes de calcul, il faudrait que,
à chaque fois qu'une feuille est créée, la macro copie et colle la
feuille par valeur une fois les formules calculées.
Puis il faudrait qu'elle fasse un test sur les valeurs des premières
cellules de chaque ligne et chaque colonne et supprime la ligne et la
colonne si cette première cellule est égale à 0.
Par exemple, si A5=0, supprimer la ligne 5, si G1=0, supprimer la
colonne G.
Ceci avant de créer la feuille suivante.


J'ai des bouts de code pour ces opérations, mais je n'arrive pas du
tout à les faire marcher, en fait mon gros problème en tant que
débutant, c'est la création conditionnelle des feuilles en fonction de
la valeur de la cellule de la liste.

Merci pour votre aide si c'est possible,

P-Antoine
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4900361
Bonjour,

Sub genère()
For Each c In [liste_des_noms]
If c <> "" Then
On Error Resume Next
Application.DisplayAlerts = False
Sheets(c.Value).Delete
Sheets("details_par_personne").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = c.Value
[A2] = c.Value
End If
Next c
End Sub

http://cjoint.com/?hkm0MSc3u4

JB

On 10 juil, 12:28, wrote:
Bonjour,

C'est la première fois que je poste ici, merci par avance pour votre
aide. D'ahbitude je trouve les réponses à mes questions parmi les
message existants, mais là j'avoue que je ne sais pas par où
commencer.

Voilà ce à quoi je voudrais arriver:

J'ai deux feuilles dans un classeur:
Une feuille contenant une liste de noms (A1:A50) : "liste_des_noms"
Une feuille à copier : "details_par_personne" (avec des formules)

J'aimerais créer une macro qui me permettrait de générer autant de
feuilles qu'il y a de noms dans la liste (de 1 à 50), avec en A2 de
chacune de ces feuilles, le nom de la liste correspondant (il faudrait
aussi que la feuille porte ce nom).
Exemple : si la liste dans la feuille "liste_des_noms" contient Jean
Dupont en A1 et Pierre Durant en A2, il faudrait que la macro crée
deux feuilles supplémentaires:
la feuille "Jean Dupont", copie de la feuille details_par_personne,
avec la valeur Jean Dupont en A2,
la feuille "Pierre Durant", copie de la feuille details_par_personne,
avec la valeur Pierre Durant en A2.

Comme les autres cellules de la liste sont vides, il n'y aura pas
d'autre feuilles créées.

Je vais un peu plus loin:
Comme l'opération va être lourde en termes de calcul, il faudrait que,
à chaque fois qu'une feuille est créée, la macro copie et colle la
feuille par valeur une fois les formules calculées.
Puis il faudrait qu'elle fasse un test sur les valeurs des premières
cellules de chaque ligne et chaque colonne et supprime la ligne et la
colonne si cette première cellule est égale à 0.
Par exemple, si A5=0, supprimer la ligne 5, si G1=0, supprimer la
colonne G.
Ceci avant de créer la feuille suivante.

J'ai des bouts de code pour ces opérations, mais je n'arrive pas du
tout à les faire marcher, en fait mon gros problème en tant que
débutant, c'est la création conditionnelle des feuilles en fonction de
la valeur de la cellule de la liste.

Merci pour votre aide si c'est possible,

P-Antoine


paruf1
Le #4899801
On 10 juil, 12:52, JB
Bonjour,

Sub genère()
For Each c In [liste_des_noms]
If c <> "" Then
On Error Resume Next
Application.DisplayAlerts = False
Sheets(c.Value).Delete
Sheets("details_par_personne").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = c.Value
[A2] = c.Value
End If
Next c
End Sub

http://cjoint.com/?hkm0MSc3u4

JB

On 10 juil, 12:28, wrote:



Bonjour,

C'est la première fois que je poste ici, merci par avance pour votre
aide. D'ahbitude je trouve les réponses à mes questions parmi les
message existants, mais là j'avoue que je ne sais pas par où
commencer.

Voilà ce à quoi je voudrais arriver:

J'ai deux feuilles dans un classeur:
Une feuille contenant une liste de noms (A1:A50) : "liste_des_noms"
Une feuille à copier : "details_par_personne" (avec des formules)

J'aimerais créer une macro qui me permettrait de générer autant de
feuilles qu'il y a de noms dans la liste (de 1 à 50), avec en A2 de
chacune de ces feuilles, le nom de la liste correspondant (il faudrait
aussi que la feuille porte ce nom).
Exemple : si la liste dans la feuille "liste_des_noms" contient Jean
Dupont en A1 et Pierre Durant en A2, il faudrait que la macro crée
deux feuilles supplémentaires:
la feuille "Jean Dupont", copie de la feuille details_par_personne,
avec la valeur Jean Dupont en A2,
la feuille "Pierre Durant", copie de la feuille details_par_personne,
avec la valeur Pierre Durant en A2.

Comme les autres cellules de la liste sont vides, il n'y aura pas
d'autre feuilles créées.

Je vais un peu plus loin:
Comme l'opération va être lourde en termes de calcul, il faudrait q ue,
à chaque fois qu'une feuille est créée, la macro copie et colle la
feuille par valeur une fois les formules calculées.
Puis il faudrait qu'elle fasse un test sur les valeurs des premières
cellules de chaque ligne et chaque colonne et supprime la ligne et la
colonne si cette première cellule est égale à 0.
Par exemple, si A5=0, supprimer la ligne 5, si G1=0, supprimer la
colonne G.
Ceci avant de créer la feuille suivante.

J'ai des bouts de code pour ces opérations, mais je n'arrive pas du
tout à les faire marcher, en fait mon gros problème en tant que
débutant, c'est la création conditionnelle des feuilles en fonction de
la valeur de la cellule de la liste.

Merci pour votre aide si c'est possible,

P-Antoine- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Merci beaucoup c'est parfait!
:-)


Publicité
Poster une réponse
Anonyme