Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro création de feuilles auto suivant les références d'une feu il

6 réponses
Avatar
Françoise
bonjour à tous,

j'ai une feuille qui contient en col A toutes les références de mes articles
en stock (environ 300)
je voudrai générer automatiquement via une macro 1 feuille par ref qui
porterait le nom de la ref, ex : produitA
ensuite il me restera à faire un groupe de travail avec toutes les feuilles
afin de faire la mise en page et prévoir les formules de calcul

Quelqu'un peut il m'aider dans la mise en place de cette macro et me dire la
limite du nombre de feuilles possible dans un même classeur, car je souhaite
tout avoir dans un seul et même classeur

d'avance merci pour votre aide

6 réponses

Avatar
FFO
Salut Françoise

Soit la liste des références en colonne A à partir de la ligne 2 de Feuil1
Je te propose ce code :
i = 2
Do While i < Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0).Row
Sheets.Add.Name = Sheets("Feuil1").Range("A" & i)
i = i + 1
Loop

Sauf erreur de ma part le nombre de feuilles est tributaire de la capacité
de ton ordinateur

Fais des essais et dis moi !!!!!
Avatar
MichDenis
Soit la Feuil1 contenant tes références en Colonne A

sub Test()
'Déclaration des variables
Dim Rg As Range, Cell As Range, Sh as worksheet

With worksheets("Feuil1")
'Définir une variable objet Range qui contient toutes tes références
Set Rg = .range("a1:A" & .Range("A65536").end(xlup).row)
End With

'Tu ne dois pas avoir de doublons dans ta plage
'Tes cellules ne doivent pas contenir ces symboles car ils sont interdits
'dans le nom de la feuille. "" "/" ":" "*" "?" "[" "]"

'Boucle sur chaque cellules de la plage pour la création des feuilles.
'Création d'une feuille au nom de chaque contenu de cellules de la plage

For each Cell in Rg
'Ajout d'une feuille après la dernière feuille du classeur
Worksheets.Add after:=Sheets(Sheets.Count)
'Baptise la feuille du nom du contenu de la cellule
ActiveSheet.Name = Cell.Value
Next

'Pour créer un Groupe de travail :
'Pour chaque feuille du classseur
For each sh in Worksheets
'Sélection de la feuille, False permet d'ajouter
'la feuille à la sélection
Sh.Select False
Next

'Toutes les feuilles du classeur devrait être sélectionné.
End Sub





"Françoise" a écrit dans le message de groupe de
discussion :
bonjour à tous,

j'ai une feuille qui contient en col A toutes les références de mes articles
en stock (environ 300)
je voudrai générer automatiquement via une macro 1 feuille par ref qui
porterait le nom de la ref, ex : produitA
ensuite il me restera à faire un groupe de travail avec toutes les feuilles
afin de faire la mise en page et prévoir les formules de calcul

Quelqu'un peut il m'aider dans la mise en place de cette macro et me dire la
limite du nombre de feuilles possible dans un même classeur, car je souhaite
tout avoir dans un seul et même classeur

d'avance merci pour votre aide
Avatar
Françoise
ça marche impec ! merci
oui d'après ce que j'ai lu effectivement le nombre de feuilles est
tributaire de la puissance de l'ordi; là je n'ai aucun problème vu le nombre
======== par contre comment préciser que les feuilles à créer doivent se placer APRES
"feuil1" et non avant ?
======== encore merci !

"FFO" a écrit :

Salut Françoise

Soit la liste des références en colonne A à partir de la ligne 2 de Feuil1
Je te propose ce code :
i = 2
Do While i < Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0).Row
Sheets.Add.Name = Sheets("Feuil1").Range("A" & i)
i = i + 1
Loop

Sauf erreur de ma part le nombre de feuilles est tributaire de la capacité
de ton ordinateur

Fais des essais et dis moi !!!!!



Avatar
MichDenis
Tu peux utiliser ceci :

Feuil1 étant le nom de la feuille de référence
après laquelle chacune des feuilles vont s'ajouter

Worksheets.Add after:=Sheets("Feuil1")



"Françoise" a écrit dans le message de groupe de
discussion :
ça marche impec ! merci
oui d'après ce que j'ai lu effectivement le nombre de feuilles est
tributaire de la puissance de l'ordi; là je n'ai aucun problème vu le nombre
======== par contre comment préciser que les feuilles à créer doivent se placer APRES
"feuil1" et non avant ?
======== encore merci !

"FFO" a écrit :

Salut Françoise

Soit la liste des références en colonne A à partir de la ligne 2 de Feuil1
Je te propose ce code :
i = 2
Do While i < Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0).Row
Sheets.Add.Name = Sheets("Feuil1").Range("A" & i)
i = i + 1
Loop

Sauf erreur de ma part le nombre de feuilles est tributaire de la capacité
de ton ordinateur

Fais des essais et dis moi !!!!!



Avatar
FFO
Rebonjour Françoise

Pour mettre chaque nouvelle feuille aprés celles existantes je propose le
code modifié ainsi :

i = 2
Do While i < Sheets("Feuil3").Range("A65535").End(xlUp).Offset(1, 0).Row
Sheets.Add.Name = Sheets("Feuil3").Range("A" & i)
ActiveSheet.Move after:=Sheets(Sheets.Count)
i = i + 1
Loop

Celà devrait faire
Dis moi !!!!
Avatar
Françoise
Merci FFO et Michel,

tout fonctionne à merveille, y compris la sélection pour le groupe de travail
encore merci pour toutes vos explications claires précises et formatrices

bonne journée


"MichDenis" a écrit :

Soit la Feuil1 contenant tes références en Colonne A

sub Test()
'Déclaration des variables
Dim Rg As Range, Cell As Range, Sh as worksheet

With worksheets("Feuil1")
'Définir une variable objet Range qui contient toutes tes références
Set Rg = .range("a1:A" & .Range("A65536").end(xlup).row)
End With

'Tu ne dois pas avoir de doublons dans ta plage
'Tes cellules ne doivent pas contenir ces symboles car ils sont interdits
'dans le nom de la feuille. "" "/" ":" "*" "?" "[" "]"

'Boucle sur chaque cellules de la plage pour la création des feuilles.
'Création d'une feuille au nom de chaque contenu de cellules de la plage

For each Cell in Rg
'Ajout d'une feuille après la dernière feuille du classeur
Worksheets.Add after:=Sheets(Sheets.Count)
'Baptise la feuille du nom du contenu de la cellule
ActiveSheet.Name = Cell.Value
Next

'Pour créer un Groupe de travail :
'Pour chaque feuille du classseur
For each sh in Worksheets
'Sélection de la feuille, False permet d'ajouter
'la feuille à la sélection
Sh.Select False
Next

'Toutes les feuilles du classeur devrait être sélectionné.
End Sub





"Françoise" a écrit dans le message de groupe de
discussion :
bonjour à tous,

j'ai une feuille qui contient en col A toutes les références de mes articles
en stock (environ 300)
je voudrai générer automatiquement via une macro 1 feuille par ref qui
porterait le nom de la ref, ex : produitA
ensuite il me restera à faire un groupe de travail avec toutes les feuilles
afin de faire la mise en page et prévoir les formules de calcul

Quelqu'un peut il m'aider dans la mise en place de cette macro et me dire la
limite du nombre de feuilles possible dans un même classeur, car je souhaite
tout avoir dans un seul et même classeur

d'avance merci pour votre aide