Créer des onglets à partir de listes et champs nommés

Résolu/Fermé
Seven - 7 déc. 2020 à 18:15
 Seven - 7 déc. 2020 à 21:50
Bonjour,

Dans une feuille j'ai fait plusieurs listes, dans différentes colonnes, et j'ai nommé les plages. ex : colonne A = liste_1, colonne B = liste_2... Ces listes contiennent des valeurs, ex : cdpf1, cdpf2...

Dans une autre feuille, Paramètre, j'ai une liste déroulante avec les plages nommées.

Puis une dernière feuille, avec un tableau, qui doit être recopié autant de fois qu'il y a de valeurs dans une liste.

Dans ma macro j'ai le code suivant :

Sub ajout_onglet()

Dim Nom As String, c As Range

For Each c In Names(Range("C4").Value)

Nom = c.Value

If Nom <> "" Then

Sheets("Exemple").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Nom
ActiveSheet.Range("C2") = c.Value

End If

Next c

Mais bien sûr cela ne fonctionne pas.. Quelqu'un pourrait-il m'aider ?

Merci d'avance

Configuration: Windows / Chrome 86.0.4240.198
A voir également:

2 réponses

ptitpanda Messages postés 65 Date d'inscription dimanche 5 août 2012 Statut Membre Dernière intervention 8 avril 2023 8
7 déc. 2020 à 21:09
Bizarre cela fonctionne très bien chez moi. As tu bien enlever le ".value" à la fin ainsi que le "name" ?
1
Ah oui pardon, erreur de ma part !

Sa fonctionne bien merci beaucoup :)
0
ptitpanda Messages postés 65 Date d'inscription dimanche 5 août 2012 Statut Membre Dernière intervention 8 avril 2023 8
7 déc. 2020 à 19:43
Bonjour,

For Each c In Names(Range("C4").Value) 


Si j'ai bien compris,en C4 se trouve le nom de ta liste? si c'est le cas il faut doubler ton range c'est à dire essaye comme cela :

For Each c In Range(range("C4"))


Bonne soirée
0
Merci pour ta réponse !

Oui c’est bien ça. Je viens d’essayer le code mais ça ne fonctionne pas. La méthode range de l’objet global a échoué..
0