Copier un feuille et permettre de choisir le nouveau nom

Bonjour,

Je butte sur un problème.

J'ai une feuille ("ANALYSE") qui sert de masque pour remplir les données nécessaires.

Explications : pour analyser le produit "001", jusqu'à présent, la procédure est de copier "ANALYSE", de renommer la copie "001" et de compléter les données.

J'aimerai faire ça de manière plus automatique et pour cela, j'ai déjà réussi à copier "ANALYSE" après la dernière feuille du classeur et je peux aussi la renommer autrement que "ANALYSE (2)" en utilisant le code suivant :

Sub essai()rep = Sheets.CountSheets("ANALYSE").Copy after:=Sheets(rep)Sheets("ANALYSE (2)").SelectSheets("ANALYSE (2)").Name = "001"End Sub

Mon problème vient dès que j'ai le produit "002" à analyser. Si j'exécute ce code, je vais avoir une erreur car il voudra me renommer la copie en "001" qui existe déjà et moi, je voudrais que la copie s'appelle "002".

Mon idéal serait de pouvoir choisir le nom de ma copie par le biais par exemple d'une boîte de dialogue.

En poussant le vice, le top serait même d'exécuter le code à partir du texte de ma cellule "001" ou "002" dans ma feuille "liste-produits".

Si quelqu'un se sent de me venir en aide, j'accepte volontiers,

merci d'avance

Bonjour

Essayes cette macro à la place de la tienne

Option Explicit

Sub AjoutePage()
Dim I As Integer

  Sheets("Analyse").Copy after:=Sheets(Sheets.Count)
  On Error Resume Next
  Do
    I = I + 1
    Err.Clear
    ActiveSheet.Name = Format(I, "000")
    If Err.Number = 0 Then Exit Do
  Loop
End Sub

Salut,

super, ça marche au poil !!!

Mais maintenant, est-il possible de choisir le nom de la nouvelle feuille car pour simplifier mon exemple, j'ai nommé mes produits "001", "002", etc... mais dans la réalité, c'est plutôt du genre "M0954", "M0963", M1015" , ... les numéros ne se suivent pas forcément...

Mon idée serait de cliquer sur le n° de produit que je souhaite analyser dans ma liste de produit pour déclencher la macro qui créé la feuille directement avec le bon nom (explications : dans ma feuille "Liste_Produits", je clique sur la case "M1015" et il se créé une nouvelle feuille, copie de "ANALYSE" nommée "M1015"). Je ne sais pas si c'est possible.

Cela dit, c'est déjà pas mal comme ça.

Merci.

Bonjour

De fortes chances que cela soit possible

Un petit fichier représentatif serait le bienvenu

A te lire

Bonne idée que de mettre un exemple de fichier pour mieux comprendre.

Le voici donc :

  • Feuille "Liste_produits" : tableau de base servant à remplir les analyses
  • Feuille "ANALYSE" : masque de formulaire d'analyse qui reprend les données de la feuille ci-dessus avec ajout de commentaires
  • Feuille "M0855" : exemple d'une feuille d'analyse complétée pour le produit M0855
  • Feuille "001" : copie de la feuille "ANALYSE" obtenue avec le code de banzai un peu plus haut.

L'idée :

Sur la feuille "Liste_produits", je clique sur le n° de produit (ex : M1002). Cette action active la macro de copie de la feuille "ANALYSE" avec un renommage de la feuille en "M1002".

Défi supplémentaire : lorsque j'ai créé une copie appelée "M1002", la valeur "M1002" est aussi copiée dans la cellule D2 en en-tête de mon formulaire "ANALYSE"

Moi, je n'y arrive plus, pas assez de connaissances en la matière... merci de votre aide

Salut, merci Banzai, quelle réactivité !

Bon, je vois avec ton code qu'il est possible de renommer une feuille en fonction de la cellule sur laquelle je clique.

Cependant, dans ton code, la première condition est "if feuilleexiste" et du coup, il copie le nom sur la première feuille existante du classeur, à savoir "Liste_produits". Il renomme donc cette feuille "MXXXX" et copie la valeur "MXXXX" en D4 de la même feuille.

La condition sur la copie de "ANALYSE" n'est alors pas activée.

Enfin, c'est comme ça que j'interprète le code car dans les faits, mon fichier n'a plus qu'une feuille nommée du n° de produit choisi et le contenu est celui de "Liste_produits".

Merci tout de même, j'avance... petit à petit ...

Bonjour

heuuuuu

Fleabass39 a écrit :

Cependant, dans ton code, la première condition est "if feuilleexiste" et du coup, il copie le nom sur la première feuille existante du classeur, à savoir "Liste_produits". Il renomme donc cette feuille "MXXXX" et copie la valeur "MXXXX" en D4 de la même feuille.

La condition sur la copie de "ANALYSE" n'est alors pas activée.

Le fait de double cliquer sur le nom en colonne A

Vérifies si la page existe (Fonction FeuilleExiste)

  • --> Oui alors la sélectionne
  • --> Non fait une copie de la page (ANALYSE), renomme cette page,écrit le nom en cellule D2 de cette page et ensuite la rend visible
Je viens de re-tester et pas de soucis

Salut Banzai,

Je crois que je viens de comprendre : sur le fichier que tu m'as envoyé, la feuille "ANALYSE" est absente, le fichier ne contient plus que la feuille "Liste_produits". De ce fait, il ne risque pas de dupliquer la feuille "ANALYSE" ...

J'ai repris mon ficher de départ, j'ai collé ton code dans ma feuille "Liste_produtis" et ça fonctionne...

Merci, voilà qui va me faciliter la vie !!!

Bonjour

Dans le fichier que je t'ai envoyé

La page "Analyse" est présente mais masquée

Rechercher des sujets similaires à "copier feuille permettre choisir nouveau nom"