Je vous souhaite avant tout une excellente année 2019 à tous !
J'ai un soucis de duplication de Feuil, je m'explique
- J'ai dans une feuil nommé Ref une liste en colonne A d'environ 180
Reference
- J'ai une autre Feuil nommé Modèle stock
Je souhaiterais avoir un bouton qui crée autant de feuil que de ref avec
comme nom de feuil le nom de chacune des ref mais que chaque feuil soit
identique à la Feuil Modèle stock
En revanche si il y a un changement lors de ma prochaine importation de ref
dans ma feuil Ref, je souhaiterais qu'il ne touche jamais aux feuil déjà
créer mais qu'il ajoute les nouvelles feuil des nouvelles ref et si possible
les trier en croissant.
J'espère avoir été assez clair...
On m'avait déjà donné cela et qui m'est très utile mais qui ne colle pas
avec mon nouveau besoin
Sub ajout_feuilles()
Dim nom, c
For Each c In Range("liste")
nom = c.Value
Sheets.Add Count:=1, after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = nom
Next c
End Sub
Merci
Manu
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Bonjour, Tu as 2 variables à définir + le nom de la feuille et la plage de cellules où est la liste des feuilles à créer. '----------------------------------------------- Sub Creation_Feuilles() Dim Rg As Range, T(), Elt As Variant Dim Sh As Worksheet, A As Long Dim Sht As Worksheet '***********Variables à définir************* 'Remplace "Modèle" par le nom de ta feuille modèle Set Sht = Worksheets("Modèle") 'L'index de la première feuille d'où doivent s'insérer 'les autres feuilles semblables au modèle A = 1 '******************************************** With Sht ' Worksheets("NomFeuilleOÙestLaListeDesFeuilles") 'Définir la plage de cellules Set Rg = .Range("A1:A" & .Range("A" & _ .Rows.Count).End(xlUp).Row) T = Rg.Value Tri_Croissant_Noms_Feuille T End With T = Tri_Croissant_Noms_Feuille(T) Application.ScreenUpdating = False On Error Resume Next For Each Elt In T Set Sh = Worksheets(Elt) If Err <> 0 Then Err = 0 With Sht .Copy After:=Worksheets(Worksheets(A).Index) Worksheets(Worksheets(A + 1).Index).Name = Elt A = A + 1 End With End If Next Application.ScreenUpdating = True End Sub '----------------------------------------------- Function Tri_Croissant_Noms_Feuille(T As Variant) _ As Variant First = LBound(T, 1) Last = UBound(T, 1) For i = First To Last - 1 For j = i + 1 To Last If T(i, 1) > T(j, 1) Then Temp = T(j, 1) T(j, 1) = T(i, 1) T(i, 1) = Temp End If Next j Next i Tri_Croissant_Noms_Feuille = T End Function '----------------------------------------------- MichD
Bonjour,
Tu as 2 variables à définir + le nom de la feuille et la plage de
cellules où est la liste des feuilles à créer.
'-----------------------------------------------
Sub Creation_Feuilles()
Dim Rg As Range, T(), Elt As Variant
Dim Sh As Worksheet, A As Long
Dim Sht As Worksheet
'***********Variables à définir*************
'Remplace "Modèle" par le nom de ta feuille modèle
Set Sht = Worksheets("Modèle")
'L'index de la première feuille d'où doivent s'insérer
'les autres feuilles semblables au modèle
A = 1
'********************************************
With Sht ' Worksheets("NomFeuilleOÙestLaListeDesFeuilles")
'Définir la plage de cellules
Set Rg = .Range("A1:A" & .Range("A" & _
.Rows.Count).End(xlUp).Row)
T = Rg.Value
Tri_Croissant_Noms_Feuille T
End With
T = Tri_Croissant_Noms_Feuille(T)
Application.ScreenUpdating = False
On Error Resume Next
For Each Elt In T
Set Sh = Worksheets(Elt)
If Err <> 0 Then
Err = 0
With Sht
.Copy After:=Worksheets(Worksheets(A).Index)
Worksheets(Worksheets(A + 1).Index).Name = Elt
A = A + 1
End With
End If
Next
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------
Function Tri_Croissant_Noms_Feuille(T As Variant) _
As Variant
First = LBound(T, 1)
Last = UBound(T, 1)
For i = First To Last - 1
For j = i + 1 To Last
If T(i, 1) > T(j, 1) Then
Temp = T(j, 1)
T(j, 1) = T(i, 1)
T(i, 1) = Temp
End If
Next j
Next i
Tri_Croissant_Noms_Feuille = T
End Function
'-----------------------------------------------
Bonjour, Tu as 2 variables à définir + le nom de la feuille et la plage de cellules où est la liste des feuilles à créer. '----------------------------------------------- Sub Creation_Feuilles() Dim Rg As Range, T(), Elt As Variant Dim Sh As Worksheet, A As Long Dim Sht As Worksheet '***********Variables à définir************* 'Remplace "Modèle" par le nom de ta feuille modèle Set Sht = Worksheets("Modèle") 'L'index de la première feuille d'où doivent s'insérer 'les autres feuilles semblables au modèle A = 1 '******************************************** With Sht ' Worksheets("NomFeuilleOÙestLaListeDesFeuilles") 'Définir la plage de cellules Set Rg = .Range("A1:A" & .Range("A" & _ .Rows.Count).End(xlUp).Row) T = Rg.Value Tri_Croissant_Noms_Feuille T End With T = Tri_Croissant_Noms_Feuille(T) Application.ScreenUpdating = False On Error Resume Next For Each Elt In T Set Sh = Worksheets(Elt) If Err <> 0 Then Err = 0 With Sht .Copy After:=Worksheets(Worksheets(A).Index) Worksheets(Worksheets(A + 1).Index).Name = Elt A = A + 1 End With End If Next Application.ScreenUpdating = True End Sub '----------------------------------------------- Function Tri_Croissant_Noms_Feuille(T As Variant) _ As Variant First = LBound(T, 1) Last = UBound(T, 1) For i = First To Last - 1 For j = i + 1 To Last If T(i, 1) > T(j, 1) Then Temp = T(j, 1) T(j, 1) = T(i, 1) T(i, 1) = Temp End If Next j Next i Tri_Croissant_Noms_Feuille = T End Function '----------------------------------------------- MichD
MichD
Le 18/janv./2019 à 12:47, MichD a écrit :
With Sht ' Worksheets("NomFeuilleOÙestLaListeDesFeuilles")
Attention, cette ligne devrait : With Worksheets("NomFeuilleOÙestLaListeDesFeuilles") MichD
Le 18/janv./2019 à 12:47, MichD a écrit :
With Sht ' Worksheets("NomFeuilleOÙestLaListeDesFeuilles")
Attention, cette ligne devrait :
With Worksheets("NomFeuilleOÙestLaListeDesFeuilles")
With Sht ' Worksheets("NomFeuilleOÙestLaListeDesFeuilles")
Attention, cette ligne devrait : With Worksheets("NomFeuilleOÙestLaListeDesFeuilles") MichD
Manu
Bonjour C'est nickel Mich, merci beaucoup, ca va vraiment m'être très utile. Manu "MichD" a écrit dans le message de groupe de discussion : q1t3ro$1ob3$ Le 18/janv./2019 à 12:47, MichD a écrit :
With Sht ' Worksheets("NomFeuilleOÙestLaListeDesFeuilles")
Attention, cette ligne devrait : With Worksheets("NomFeuilleOÙestLaListeDesFeuilles") MichD --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Bonjour
C'est nickel Mich, merci beaucoup, ca va vraiment m'être très utile.
Manu
"MichD" a écrit dans le message de groupe de discussion :
q1t3ro$1ob3$1@gioia.aioe.org...
Le 18/janv./2019 à 12:47, MichD a écrit :
With Sht ' Worksheets("NomFeuilleOÙestLaListeDesFeuilles")
Attention, cette ligne devrait :
With Worksheets("NomFeuilleOÙestLaListeDesFeuilles")
MichD
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Bonjour C'est nickel Mich, merci beaucoup, ca va vraiment m'être très utile. Manu "MichD" a écrit dans le message de groupe de discussion : q1t3ro$1ob3$ Le 18/janv./2019 à 12:47, MichD a écrit :
With Sht ' Worksheets("NomFeuilleOÙestLaListeDesFeuilles")
Attention, cette ligne devrait : With Worksheets("NomFeuilleOÙestLaListeDesFeuilles") MichD --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
MichD
Juste un rappel : Ces caractères ne sont pas admissibles dans le nom de l'onglet d'une feuille de calcul : * / ? : [ ] Le nombre total de caractères dans le nom de l'onglet d'une feuille de calcul est de 31. La procédure ne traite pas explicitement ces 2 éléments dans la procédure. Si l'un de noms répond à l'un de ces critères, la feuille va se créer, mais elle portera un nom du type "Feuil1", appellation par défaut. Tu peux appeler la procédure plus d'une fois, seuls les nouveaux noms de la liste provoqueront la création d'une nouvelle feuille de calcul. MichD
Juste un rappel :
Ces caractères ne sont pas admissibles dans le nom de l'onglet d'une
feuille de calcul : * / ? : [ ]
Le nombre total de caractères dans le nom de l'onglet d'une feuille de
calcul est de 31.
La procédure ne traite pas explicitement ces 2 éléments dans la
procédure. Si l'un de noms répond à l'un de ces critères, la feuille va
se créer, mais elle portera un nom du type "Feuil1", appellation par défaut.
Tu peux appeler la procédure plus d'une fois, seuls les nouveaux noms de
la liste provoqueront la création d'une nouvelle feuille de calcul.
Juste un rappel : Ces caractères ne sont pas admissibles dans le nom de l'onglet d'une feuille de calcul : * / ? : [ ] Le nombre total de caractères dans le nom de l'onglet d'une feuille de calcul est de 31. La procédure ne traite pas explicitement ces 2 éléments dans la procédure. Si l'un de noms répond à l'un de ces critères, la feuille va se créer, mais elle portera un nom du type "Feuil1", appellation par défaut. Tu peux appeler la procédure plus d'une fois, seuls les nouveaux noms de la liste provoqueront la création d'une nouvelle feuille de calcul. MichD
Manu
Oui, j'ai testé et effectivement seuls les nouveaux noms se fabriquent et c'est exactement ce qu'il me faut, j'essaie toutefois de modifier ta procédure sans succès pour que le tri des feuil se fasse même après avoir recliqué sur le bouton. Manu "MichD" a écrit dans le message de groupe de discussion : Juste un rappel : Ces caractères ne sont pas admissibles dans le nom de l'onglet d'une feuille de calcul : * / ? : [ ] Le nombre total de caractères dans le nom de l'onglet d'une feuille de calcul est de 31. La procédure ne traite pas explicitement ces 2 éléments dans la procédure. Si l'un de noms répond à l'un de ces critères, la feuille va se créer, mais elle portera un nom du type "Feuil1", appellation par défaut. Tu peux appeler la procédure plus d'une fois, seuls les nouveaux noms de la liste provoqueront la création d'une nouvelle feuille de calcul. MichD --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Oui, j'ai testé et effectivement seuls les nouveaux noms se fabriquent et
c'est exactement ce qu'il me faut, j'essaie toutefois de modifier ta
procédure sans succès pour que le tri des feuil se fasse même après avoir
recliqué sur le bouton.
Manu
"MichD" a écrit dans le message de groupe de discussion :
a79a50f0-9a5b-0073-0105-22b677ab6643@Hotmail.com...
Juste un rappel :
Ces caractères ne sont pas admissibles dans le nom de l'onglet d'une
feuille de calcul : * / ? : [ ]
Le nombre total de caractères dans le nom de l'onglet d'une feuille de
calcul est de 31.
La procédure ne traite pas explicitement ces 2 éléments dans la
procédure. Si l'un de noms répond à l'un de ces critères, la feuille va
se créer, mais elle portera un nom du type "Feuil1", appellation par défaut.
Tu peux appeler la procédure plus d'une fois, seuls les nouveaux noms de
la liste provoqueront la création d'une nouvelle feuille de calcul.
MichD
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Oui, j'ai testé et effectivement seuls les nouveaux noms se fabriquent et c'est exactement ce qu'il me faut, j'essaie toutefois de modifier ta procédure sans succès pour que le tri des feuil se fasse même après avoir recliqué sur le bouton. Manu "MichD" a écrit dans le message de groupe de discussion : Juste un rappel : Ces caractères ne sont pas admissibles dans le nom de l'onglet d'une feuille de calcul : * / ? : [ ] Le nombre total de caractères dans le nom de l'onglet d'une feuille de calcul est de 31. La procédure ne traite pas explicitement ces 2 éléments dans la procédure. Si l'un de noms répond à l'un de ces critères, la feuille va se créer, mais elle portera un nom du type "Feuil1", appellation par défaut. Tu peux appeler la procédure plus d'une fois, seuls les nouveaux noms de la liste provoqueront la création d'une nouvelle feuille de calcul. MichD --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
MichD
pour que le tri des feuils se fasse même après
avoir recliqué sur le bouton.
Pour obtenir un tri des feuilles qui soit indépendant de la création de ces dernières, tu as un exemple complet du tri des feuilles dans un classeur. https://www.cjoint.com/c/IAtnzctmSuC MichD
pour que le tri des feuils se fasse même après
avoir recliqué sur le bouton.
Pour obtenir un tri des feuilles qui soit indépendant de la création de
ces dernières, tu as un exemple complet du tri des feuilles dans un
classeur.
Pour obtenir un tri des feuilles qui soit indépendant de la création de ces dernières, tu as un exemple complet du tri des feuilles dans un classeur. https://www.cjoint.com/c/IAtnzctmSuC MichD
Manu
Impec !!! Merci Mich "MichD" a écrit dans le message de groupe de discussion : pour que le tri des feuils se fasse même après
avoir recliqué sur le bouton.
Pour obtenir un tri des feuilles qui soit indépendant de la création de ces dernières, tu as un exemple complet du tri des feuilles dans un classeur. https://www.cjoint.com/c/IAtnzctmSuC MichD --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Impec !!!
Merci Mich
"MichD" a écrit dans le message de groupe de discussion :
51efa5b0-0a23-d0f0-3dd6-3cbcb82f437f@Hotmail.com...
pour que le tri des feuils se fasse même après
avoir recliqué sur le bouton.
Pour obtenir un tri des feuilles qui soit indépendant de la création de
ces dernières, tu as un exemple complet du tri des feuilles dans un
classeur.
https://www.cjoint.com/c/IAtnzctmSuC
MichD
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Impec !!! Merci Mich "MichD" a écrit dans le message de groupe de discussion : pour que le tri des feuils se fasse même après
avoir recliqué sur le bouton.
Pour obtenir un tri des feuilles qui soit indépendant de la création de ces dernières, tu as un exemple complet du tri des feuilles dans un classeur. https://www.cjoint.com/c/IAtnzctmSuC MichD --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Manu
Bonjour, Mich m'a donné ce code qui permet de dupliquer et créer des feuil avec des noms qui se trouvent en colonne A de la feuil "950" et qui prend comme modèle de Feuil, la Feuil "02 modèle". Le soucis c'est que ca me duplique également la Feuil "02 modèle" soit en parfois une seule copie soit parfois en autant de copies qu'il y a de noms dans la colonne A de la feuil "950". Je souhaiterais qu'il ne copie jamais cette feuil "02 modèle". Sub Creation_Feuilles() Dim Rg As Range, T(), Elt As Variant Dim Sh As Worksheet, A As Long Dim Sht As Worksheet '***********Variables à définir************* 'Remplace "Modèle" par le nom de ta feuille modèle Set Sht = Worksheets("02 Modèle") 'L'index de la première feuille d'où doivent s'insérer 'les autres feuilles semblables au modèle A = 1 '******************************************** With Worksheets("950") 'Définir la plage de cellules Set Rg = .Range("A1:A" & .Range("A" & _ .Rows.Count).End(xlUp).Row) T = Rg.Value Tri_Croissant_Noms_Feuille T End With T = Tri_Croissant_Noms_Feuille(T) Application.ScreenUpdating = False On Error Resume Next For Each Elt In T Set Sh = Worksheets(Elt) If Err <> 0 Then Err = 0 With Sht .Copy After:=Worksheets(Worksheets(A).Index) Worksheets(Worksheets(A + 1).Index).Name = Elt A = A + 1 End With End If Next Application.ScreenUpdating = True End Sub Encore Merci Manu "Manu" a écrit dans le message de groupe de discussion : q1vm1b$qfj$ Impec !!! Merci Mich "MichD" a écrit dans le message de groupe de discussion : pour que le tri des feuils se fasse même après
avoir recliqué sur le bouton.
Pour obtenir un tri des feuilles qui soit indépendant de la création de ces dernières, tu as un exemple complet du tri des feuilles dans un classeur. https://www.cjoint.com/c/IAtnzctmSuC MichD --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Bonjour,
Mich m'a donné ce code qui permet de dupliquer et créer des feuil avec des
noms qui se trouvent en colonne A de la feuil "950" et qui prend comme
modèle de Feuil, la Feuil "02 modèle". Le soucis c'est que ca me duplique
également la Feuil "02 modèle" soit en parfois une seule copie soit parfois
en autant de copies qu'il y a de noms dans la colonne A de la feuil "950".
Je souhaiterais qu'il ne copie jamais cette feuil "02 modèle".
Sub Creation_Feuilles()
Dim Rg As Range, T(), Elt As Variant
Dim Sh As Worksheet, A As Long
Dim Sht As Worksheet
'***********Variables à définir*************
'Remplace "Modèle" par le nom de ta feuille modèle
Set Sht = Worksheets("02 Modèle")
'L'index de la première feuille d'où doivent s'insérer
'les autres feuilles semblables au modèle
A = 1
'********************************************
With Worksheets("950")
'Définir la plage de cellules
Set Rg = .Range("A1:A" & .Range("A" & _
.Rows.Count).End(xlUp).Row)
T = Rg.Value
Tri_Croissant_Noms_Feuille T
End With
T = Tri_Croissant_Noms_Feuille(T)
Application.ScreenUpdating = False
On Error Resume Next
For Each Elt In T
Set Sh = Worksheets(Elt)
If Err <> 0 Then
Err = 0
With Sht
.Copy After:=Worksheets(Worksheets(A).Index)
Worksheets(Worksheets(A + 1).Index).Name = Elt
A = A + 1
End With
End If
Next
Application.ScreenUpdating = True
End Sub
Encore Merci
Manu
"Manu" a écrit dans le message de groupe de discussion :
q1vm1b$qfj$1@gioia.aioe.org...
Impec !!!
Merci Mich
"MichD" a écrit dans le message de groupe de discussion :
51efa5b0-0a23-d0f0-3dd6-3cbcb82f437f@Hotmail.com...
pour que le tri des feuils se fasse même après
avoir recliqué sur le bouton.
Pour obtenir un tri des feuilles qui soit indépendant de la création de
ces dernières, tu as un exemple complet du tri des feuilles dans un
classeur.
https://www.cjoint.com/c/IAtnzctmSuC
MichD
---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Bonjour, Mich m'a donné ce code qui permet de dupliquer et créer des feuil avec des noms qui se trouvent en colonne A de la feuil "950" et qui prend comme modèle de Feuil, la Feuil "02 modèle". Le soucis c'est que ca me duplique également la Feuil "02 modèle" soit en parfois une seule copie soit parfois en autant de copies qu'il y a de noms dans la colonne A de la feuil "950". Je souhaiterais qu'il ne copie jamais cette feuil "02 modèle". Sub Creation_Feuilles() Dim Rg As Range, T(), Elt As Variant Dim Sh As Worksheet, A As Long Dim Sht As Worksheet '***********Variables à définir************* 'Remplace "Modèle" par le nom de ta feuille modèle Set Sht = Worksheets("02 Modèle") 'L'index de la première feuille d'où doivent s'insérer 'les autres feuilles semblables au modèle A = 1 '******************************************** With Worksheets("950") 'Définir la plage de cellules Set Rg = .Range("A1:A" & .Range("A" & _ .Rows.Count).End(xlUp).Row) T = Rg.Value Tri_Croissant_Noms_Feuille T End With T = Tri_Croissant_Noms_Feuille(T) Application.ScreenUpdating = False On Error Resume Next For Each Elt In T Set Sh = Worksheets(Elt) If Err <> 0 Then Err = 0 With Sht .Copy After:=Worksheets(Worksheets(A).Index) Worksheets(Worksheets(A + 1).Index).Name = Elt A = A + 1 End With End If Next Application.ScreenUpdating = True End Sub Encore Merci Manu "Manu" a écrit dans le message de groupe de discussion : q1vm1b$qfj$ Impec !!! Merci Mich "MichD" a écrit dans le message de groupe de discussion : pour que le tri des feuils se fasse même après
avoir recliqué sur le bouton.
Pour obtenir un tri des feuilles qui soit indépendant de la création de ces dernières, tu as un exemple complet du tri des feuilles dans un classeur. https://www.cjoint.com/c/IAtnzctmSuC MichD --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
MichD
Bonjour, Essaie comme ceci : '------------------------------------- Sub Creation_Feuilles() Dim Rg As Range, T(), Elt As Variant Dim Sh As Worksheet, A As Long Dim Sht As Worksheet, FMmodel As String '***********Variables à définir************* 'Remplace "Modèle" par le nom de ta feuille modèle Set Sht = Worksheets("02 Modèle") 'L'index de la première feuille d'où doivent s'insérer 'les autres feuilles semblables au modèle A = 1 '******************************************** With Worksheets("950") 'Définir la plage de cellules Set Rg = .Range("A1:A" & .Range("A" & _ .Rows.Count).End(xlUp).Row) T = Rg.Value Tri_Croissant_Noms_Feuille T End With T = Tri_Croissant_Noms_Feuille(T) Application.ScreenUpdating = False On Error Resume Next For Each Elt In T If Elt <> Sht.Name Then Set Sh = Worksheets(Elt) If Err <> 0 Then Err = 0 With Sht .Copy After:=Worksheets(Worksheets(A).Index) Worksheets(Worksheets(A + 1).Index).Name = Elt A = A + 1 End With End If End If Next Application.ScreenUpdating = True End Sub '------------------------------------- MichD
Bonjour,
Essaie comme ceci :
'-------------------------------------
Sub Creation_Feuilles()
Dim Rg As Range, T(), Elt As Variant
Dim Sh As Worksheet, A As Long
Dim Sht As Worksheet, FMmodel As String
'***********Variables à définir*************
'Remplace "Modèle" par le nom de ta feuille modèle
Set Sht = Worksheets("02 Modèle")
'L'index de la première feuille d'où doivent s'insérer
'les autres feuilles semblables au modèle
A = 1
'********************************************
With Worksheets("950")
'Définir la plage de cellules
Set Rg = .Range("A1:A" & .Range("A" & _
.Rows.Count).End(xlUp).Row)
T = Rg.Value
Tri_Croissant_Noms_Feuille T
End With
T = Tri_Croissant_Noms_Feuille(T)
Application.ScreenUpdating = False
On Error Resume Next
For Each Elt In T
If Elt <> Sht.Name Then
Set Sh = Worksheets(Elt)
If Err <> 0 Then
Err = 0
With Sht
.Copy After:=Worksheets(Worksheets(A).Index)
Worksheets(Worksheets(A + 1).Index).Name = Elt
A = A + 1
End With
End If
End If
Next
Application.ScreenUpdating = True
End Sub
'-------------------------------------
Bonjour, Essaie comme ceci : '------------------------------------- Sub Creation_Feuilles() Dim Rg As Range, T(), Elt As Variant Dim Sh As Worksheet, A As Long Dim Sht As Worksheet, FMmodel As String '***********Variables à définir************* 'Remplace "Modèle" par le nom de ta feuille modèle Set Sht = Worksheets("02 Modèle") 'L'index de la première feuille d'où doivent s'insérer 'les autres feuilles semblables au modèle A = 1 '******************************************** With Worksheets("950") 'Définir la plage de cellules Set Rg = .Range("A1:A" & .Range("A" & _ .Rows.Count).End(xlUp).Row) T = Rg.Value Tri_Croissant_Noms_Feuille T End With T = Tri_Croissant_Noms_Feuille(T) Application.ScreenUpdating = False On Error Resume Next For Each Elt In T If Elt <> Sht.Name Then Set Sh = Worksheets(Elt) If Err <> 0 Then Err = 0 With Sht .Copy After:=Worksheets(Worksheets(A).Index) Worksheets(Worksheets(A + 1).Index).Name = Elt A = A + 1 End With End If End If Next Application.ScreenUpdating = True End Sub '------------------------------------- MichD
Manu
Pareil qu'avec l'autre code, Voici ce qu'il se passe : Je clic une fois sur le bouton, la macro s'exécute parfaitement et fabrique autant de Feuil de ce que comporte la Col A de la feuil "950" (110 feuil) mais fabrique en plus une copie de la Feuil "02 Modèle" Je supprime cette feuille puis pour tester je change un nom de la col A de la feuil "950" Je reclic sur le bouton, et là il m'ajoute bien le nouveau nom dans les feuil mais me copie 110 fois la Feuil "02 modèle" Manu Bonjour, Essaie comme ceci : '------------------------------------- Sub Creation_Feuilles() Dim Rg As Range, T(), Elt As Variant Dim Sh As Worksheet, A As Long Dim Sht As Worksheet, FMmodel As String '***********Variables à définir************* 'Remplace "Modèle" par le nom de ta feuille modèle Set Sht = Worksheets("02 Modèle") 'L'index de la première feuille d'où doivent s'insérer 'les autres feuilles semblables au modèle A = 1 '******************************************** With Worksheets("950") 'Définir la plage de cellules Set Rg = .Range("A1:A" & .Range("A" & _ .Rows.Count).End(xlUp).Row) T = Rg.Value Tri_Croissant_Noms_Feuille T End With T = Tri_Croissant_Noms_Feuille(T) Application.ScreenUpdating = False On Error Resume Next For Each Elt In T If Elt <> Sht.Name Then Set Sh = Worksheets(Elt) If Err <> 0 Then Err = 0 With Sht .Copy After:=Worksheets(Worksheets(A).Index) Worksheets(Worksheets(A + 1).Index).Name = Elt A = A + 1 End With End If End If Next Application.ScreenUpdating = True End Sub '------------------------------------- MichD --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Pareil qu'avec l'autre code, Voici ce qu'il se passe :
Je clic une fois sur le bouton, la macro s'exécute parfaitement et fabrique
autant de Feuil de ce que comporte la Col A de la feuil "950" (110 feuil)
mais fabrique en plus une copie de la Feuil "02 Modèle"
Je supprime cette feuille puis pour tester je change un nom de la col A de
la feuil "950"
Je reclic sur le bouton, et là il m'ajoute bien le nouveau nom dans les
feuil mais me copie 110 fois la Feuil "02 modèle"
Manu
Bonjour,
Essaie comme ceci :
'-------------------------------------
Sub Creation_Feuilles()
Dim Rg As Range, T(), Elt As Variant
Dim Sh As Worksheet, A As Long
Dim Sht As Worksheet, FMmodel As String
'***********Variables à définir*************
'Remplace "Modèle" par le nom de ta feuille modèle
Set Sht = Worksheets("02 Modèle")
'L'index de la première feuille d'où doivent s'insérer
'les autres feuilles semblables au modèle
A = 1
'********************************************
With Worksheets("950")
'Définir la plage de cellules
Set Rg = .Range("A1:A" & .Range("A" & _
.Rows.Count).End(xlUp).Row)
T = Rg.Value
Tri_Croissant_Noms_Feuille T
End With
T = Tri_Croissant_Noms_Feuille(T)
Application.ScreenUpdating = False
On Error Resume Next
For Each Elt In T
If Elt <> Sht.Name Then
Set Sh = Worksheets(Elt)
If Err <> 0 Then
Err = 0
With Sht
.Copy After:=Worksheets(Worksheets(A).Index)
Worksheets(Worksheets(A + 1).Index).Name = Elt
A = A + 1
End With
End If
End If
Next
Application.ScreenUpdating = True
End Sub
'-------------------------------------
MichD
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Pareil qu'avec l'autre code, Voici ce qu'il se passe : Je clic une fois sur le bouton, la macro s'exécute parfaitement et fabrique autant de Feuil de ce que comporte la Col A de la feuil "950" (110 feuil) mais fabrique en plus une copie de la Feuil "02 Modèle" Je supprime cette feuille puis pour tester je change un nom de la col A de la feuil "950" Je reclic sur le bouton, et là il m'ajoute bien le nouveau nom dans les feuil mais me copie 110 fois la Feuil "02 modèle" Manu Bonjour, Essaie comme ceci : '------------------------------------- Sub Creation_Feuilles() Dim Rg As Range, T(), Elt As Variant Dim Sh As Worksheet, A As Long Dim Sht As Worksheet, FMmodel As String '***********Variables à définir************* 'Remplace "Modèle" par le nom de ta feuille modèle Set Sht = Worksheets("02 Modèle") 'L'index de la première feuille d'où doivent s'insérer 'les autres feuilles semblables au modèle A = 1 '******************************************** With Worksheets("950") 'Définir la plage de cellules Set Rg = .Range("A1:A" & .Range("A" & _ .Rows.Count).End(xlUp).Row) T = Rg.Value Tri_Croissant_Noms_Feuille T End With T = Tri_Croissant_Noms_Feuille(T) Application.ScreenUpdating = False On Error Resume Next For Each Elt In T If Elt <> Sht.Name Then Set Sh = Worksheets(Elt) If Err <> 0 Then Err = 0 With Sht .Copy After:=Worksheets(Worksheets(A).Index) Worksheets(Worksheets(A + 1).Index).Name = Elt A = A + 1 End With End If End If Next Application.ScreenUpdating = True End Sub '------------------------------------- MichD --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus