XL 2010 Macro de création d'onglet et remplissage de cellule

user999

XLDnaute Nouveau
Bonjour,

J'ai un fichier récapitulatif qui comporte plusieurs feuilles liées entre elles par des formules dont :
- 1 feuille intitulée "Modèle"
- 1 feuille comportant en colonne une liste de codes de référence sous forme de nombres (près de 1000).

Je souhaiterais créer une macro qui effectue le déroulé suivant autant de fois qu'il y a de codes de référence dans ma liste :
1/ créer une copie de la feuille "Modèle"
2/ nommer cette feuille avec la valeur du code de référence
3/ inscrire en B1 la valeur du code de référence (la feuille comporte des formules qui remplissent les autres champs automatiquement).

Malheureusement, je n'y connais absolument rien en langage macro. Mes essais avec la création de macro en fonction des gestes effectués ne donne rien d'utilisable, aussi je me tourne vers vous. Aujourd'hui, j'en suis réduis à effectuer ces actions manuellement... 1000 fois...

Quelqu'un aurait-il déjà créé ce type de macro ?

Merci beaucoup par avance et bon we !

Arnaud
 

user999

XLDnaute Nouveau
Merci pour vos retours.

Je comprends bien votre étonnement, mais pour l'avoir fait une fois, le fichier pèse 8Mo et reste utilisable, et chaque onglet est réutilisé dans un autre fichiers pour effectuer des calculs. Mon soucis est que je vais devoir reproduire dans le temps la manipulation et que comme vous vous en doutez, c'est particulièrement chronophage et pas spécialement passionnant ;)

En fait je cherche un modèle de macro ou je pourrais remplacer "simplement" les noms et référence de cellules et onlget par ceux de mon fichier. Je n'ai pas uploadé de fichier car n'importe quel fichier excel avec des codes (peu importe le format) en colonne sur une feuille ferait l'affaire, la feuille modèle pouvant être vierge.

Bonne soirée,

Arnaud
 

Staple1600

XLDnaute Barbatruc
Bonsoir à tous

user999 (bienvenue sur le forum)
Il a raison le petit nouveau!
Depuis quand c'est au demandeur de prendre le temps de créer un fichier exemple.
Le demandeur il a d'autres choses à faire.
C'est quoi ces "mous du genoux" de répondeurs qui sont pas capable de créer un fichier exemple!
C'est inouï ça!
Non mais!
En plus c'est écrit noir sur blanc dans la charte du forum.
Mais si les répondeurs lisaient la charte, ça se saurait !!
 

chris

XLDnaute Barbatruc
Bonjour
Code:
Sub Demultiplier()
Dim cellule As Range
Dim place As Worksheet

Set place = Feuil1

With Feuil1
    For Each cellule In .Range(.Cells(2, 1), .Cells(.UsedRange.Rows.Count, 1)).Cells
        Sheets("Modèle").Copy After:=place
        ActiveSheet.Name = cellule.Value
        Set place= ActiveSheet
        ActiveSheet.Cells(1, 2) = cellule.Value
    Next cellule
    End With
End Sub

A noter que les erreurs possibles ne sont pas gérées dans ce code :
  • longueur du nom dépassant la limite pour le nom de l'onglet ou caractères interdits
  • code en double
  • ligne vide
  • ...
 
Dernière édition:

Paf

XLDnaute Barbatruc
Bonjour à tous

une autre version, avec les mêmes limites ( plus celle de ne pas vérifier que la feuille existe déjà)

Code:
Sub CopyFeuilles()
Application.ScreenUpdating = False
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
    Worksheets("Modèle").Copy After:=Worksheets(Worksheets.Count)
    Worksheets(Worksheets.Count).Name = Cells(i, 1)
    ActiveSheet.Range("B1") = Cells(i, 1)
Next
Application.ScreenUpdating = True
End Sub

A+
 

user999

XLDnaute Nouveau
Bonjour Chris, bonjour Paf,

Je viens de tester vos solutions : la première fonctionne et la deuxième pas totalement car elle s'arrête "en route" (mais peut-être est-ce moi qui ai fait une mauvaise manip).

En tous cas, un très grand MERCI à tous les deux pour le temps que vous avez consacré à mon problème !!!

Je penserai à vous lundi ;)

Très bon we,

Arnaud
P.S : je me permettrai éventuellement de revenir vers vous si j'ai une question sur la mise en œuvre en situation réelle...
 

Discussions similaires

Statistiques des forums

Discussions
312 833
Messages
2 092 608
Membres
105 466
dernier inscrit
Jsquare