Copier coller une feuille modèle et re initialiser la feuill

Bonjour,

Sur les conseils d'Efgé j'ouvre une nouvelle demande.

Je souhaiterais copier la feuille modèle et que le nouvel onglet prenne le nom de la cellule J3.

Et que les cellules non protégées de la feuille Modèle s'efface afin de pouvoir re créer une fiche et renouveler la manie.

J'ai mis en PJ ce que je souhaiterais et dis mis aussi des commentaires dans le code module1

Par avance merci

20ftv2.xlsm (591.12 Ko)

Bonjour,

à tester,

    
Sub CopieFeuilleModele()
Sheets("Modle").Copy After:=Sheets(3)
ActiveSheet.Name = Range("J3")
addr = "J3,L7:L17,J7:J17,M7:M17,O8:O17,O23:O32,M23:M32,L23:L32,O38:O47,M38:M47,C12:G16,F7:G7,F5,C20:G47,L38:L47"
Range(addr).ClearContents
ActiveSheet.Shapes.Range(Array("monImage")).Delete
ActiveWorkbook.Save
End Sub

Bonjour SabV,

Serait il possible de re-nommer "monImage" l'image de la feuille modèle car elle porte un autre nom et ne se supprime pas ?

Bonjour,

s'il n'y a qu'un seul object "image" sur la feuille, cette ligne pourrait fonctionner,

ActiveSheet.DrawingObjects.Delete

ou bien:

ActiveSheet.Shapes(1).Delete

Super merci ça fonctionne très bien.

Par contre lorsque une des feuilles deja crée porte le nom de la cellule J3, une fenêtre s'ouvre pour m'indiquer que le nom existe déjà MAIS ça copie quand meme une feuille nommée modèle2. Serait il possible de contourner le problème en m'indiquant toujours que ce nom existe déjà et dans ce cas là, rien ne se passe

Bonjour,

à tester,

Function FeuilExiste(F As String) As Boolean
    On Error Resume Next
    FeuilExiste = Not Sheets(F) Is Nothing
End Function

Sub Test()
Dim LaFeuille As String, addr  As String
    LaFeuille = Sheets("Modèle").Range("J3")
    If Not FeuilExiste(LaFeuille) Then
      Sheets("Modèle").Copy After:=Sheets(Sheets.Count)
      ActiveSheet.Name = Range("J3")
      addr = "J3,L7:L17,J7:J17,M7:M17,O8:O17,O23:O32,M23:M32,L23:L32,O38:O47,M38:M47,C12:G16,F7:G7,F5,C20:G47,L38:L47"
      Range(addr).ClearContents
      ActiveSheet.Shapes(1).Delete
      ActiveWorkbook.Save
    End If
End Sub

BRAVO !!! MAGNIFIQUE !!!

Une autre chose au vue de l'efficacité de vos réponses

Je souhaiterai numéroter chaque nouvelle feuille, je m'explique

En cellule F1 le numéro de la fiche technique, il s'incréments de 1 à chaque nouvelle copie

Ce qui donnerai : fiche technique1; fiche technique 2, fiche technique 3 ....

Est ce possible ?

une possibilité serait de créer un Nom dans le classeur et lui attribuer la valeur 1.

et à chaque copie, incrémenter ce nom.

par exemple si vous avez créer le nom: fiche

mettre le code suivant juste avant ActiveWorkbook.Save

ActiveWorkbook.Names("fiche").RefersTo = "=" & [fiche] + 1
ActiveSheet.Range("F1") = [fiche]
Rechercher des sujets similaires à "copier coller feuille modele initialiser feuill"