Créer des copies de feuilles selon condition

Le
paruf1
Bonjour,

C'est la premire fois que je poste ici, merci par avance pour votre
aide. D'ahbitude je trouve les rponses 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 crer une macro qui me permettrait de gnrer 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 cre
deux feuilles supplmentaires:
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 cres.

Je vais un peu plus loin:
Comme l'opration va tre lourde en termes de calcul, il faudrait que,
chaque fois qu'une feuille est cre, la macro copie et colle la
feuille par valeur une fois les formules calcules.
Puis il faudrait qu'elle fasse un test sur les valeurs des premires
cellules de chaque ligne et chaque colonne et supprime la ligne et la
colonne si cette premire cellule est gale 0.
Par exemple, si A5=0, supprimer la ligne 5, si G1=0, supprimer la
colonne G.
Ceci avant de crer la feuille suivante.


J'ai des bouts de code pour ces oprations, mais je n'arrive pas du
tout les faire marcher, en fait mon gros problme en tant que
dbutant, c'est la cration conditionnelle des feuilles en fonction de
la valeur de la cellule de la liste.

Merci pour votre aide si c'est possible,

P-Antoine
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