copy d'une feuille modele avec un bouton

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : copy d'une feuille modele avec un bouton

re merci pour ta réponse Lone-wolf

je ne vois pas comment appliquer ta solution

je veux que lorsque je créer une nouvelle immat dans ma feuille création deux feuille soit creer selon les modele "saisi go model " et "ventil modele"
saisi GO + immat
ventil + immat

merci

yanncik
 
Re : copy d'une feuille modele avec un bouton

Bonsoir yblotiere,

ce n'est pas vraiment le résultat escompté, mais voici le code .
A mettre dans la feuille Creation.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Worksheet, w As Worksheet, sh As Worksheet, cel As Range
On Error Resume Next

If Not Intersect(Target, [A5:A10]) Is Nothing Then
cel = Range("A5", Range("A10").End(xlDown)).Value

For x = 1 To 1
x = 1

Set ws = Sheets("Creation")
Set w = Sheets("ventil Modele")
w.Copy After:=Sheets(1): w.Name = w.Name & cel

Next x

Set sh = Sheets("Saisi Go Modele")
sh.Copy After:=Sheets(1): sh.Name = w.Name & cel
End If
End Sub

Bonne nuit - A+ 😎
 
Re : copy d'une feuille modele avec un bouton

Bonsoir yblotière,


Une autre macro adaptée d'après la macro de mon fichier joint, à inserer dans la feuille Création.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Ws As Worksheet
Sheets("Creation").Activate
If Not Application.Intersect(Target, Range("A5:A10")) Is Nothing Then
If Selection = "" Then Exit Sub
For Each Ws In Worksheets
If Ws.Name = Target Then: Exit Sub
Next Ws
Set Ws = Sheets("Saisi GO MODELE")
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "Saisi: GO GO GO" & Target

Set Ws = Sheets("ventil MODELE")
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "Ventil A TORT " & Target
End If
End Sub


A+ : cool
 
Dernière édition:
Re : copy d'une feuille modele avec un bouton

Bonjour yblotière,

suite à un petit problème avec ton classeur, j'ai réécrit le code dans un nouveau classeur.
Le test a été concluant.


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Worksheet, sh As Worksheet
Application.ScreenUpdating = False
If Not Intersect(Target, [A2:A8]) Is Nothing Then
On Error Resume Next
With Sheets("Feuil1")
 lig = .[A65536].End(xlUp).Row
 If lig = 2 Then
 nom = Target
 Else
 lig = .Cells(lig - 1, 1) + 1
 End If
Set ws = Sheets("Avant")
ws.Copy After:=Sheets(4): ws.Name = "OFFICE " & "|| " & Target
Set sh = Sheets("Après")
sh.Copy After:=Sheets(4): sh.Name = "MODELE " & "|| " & Target
End With
End If
End Sub

Je te laisse modifier le nom des feuilles et en PJ le classeur démo si tu veux voir le résultat.
Dans celui-ci, crée deux feuilles. Une fois créées, déplace les feuilles comme ceci:

Avant (2) après Feuil1, ensuite Après (2) puis Feuil4; ensuite enlève les (2), puis tu recrée deux autres nouvelles feuiles.


A+ 😎
 

Pièces jointes

Dernière édition:
Re : copy d'une feuille modele avec un bouton

Bonjour le fil,
Salut Assassin 😉

Yblotière, voici le code qui va bien pour créer des feuilles
VB:
Sub Creer_Feuilles()
  Dim DLig As Long, Lig As Long, sImmat As String
  Dim MySheet As Worksheet
  ' Avec la feuille création
  With Sheets("Creation")
    ' Trouver la dernière ligne du tableau
    DLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne à partir de la 5ème
    For Lig = 5 To DLig
      ' Mémoriser l'immatriculation
      sImmat = .Range("A" & Lig).Value
      ' Si l'immatriculation n'est pas vide
      If sImmat <> "" Then
        ' Empêche l'arrêt suite à une erreur
        On Error Resume Next
        ' Tenter de définir la nouvelle feuille Saisi Go
        Set MySheet = Sheets("Saisi Go " & sImmat)
        If Err.Number <> 0 Then
          ' Si erreur = feuille inexistante, on créé la nouvelle
          Sheets("Saisi Go Modele").Copy After:=Sheets(1)
          ' Elle est active, on la renomme
          ActiveSheet.Name = "Saisi Go " & sImmat
          Err.Clear
        End If
        ' Même chose pour la feuille Ventil
        Set MySheet = Sheets("Ventil " & sImmat)
        If Err.Number <> 0 Then
          Sheets("Ventil MODELE").Copy After:=Sheets(1)
          ActiveSheet.Name = "Ventil " & sImmat
          Err.Clear
        End If
        ' On oublie pas de remettre la gestion d'erreur à la normale
        On Error GoTo 0
      End If
    Next Lig
  End With
End Sub

A+
 
Dernière modification par un modérateur:
Re : copy d'une feuille modele avec un bouton

Re Bruno,

je vien de faire un test de ta macro, elle copie une fois puis elle bloque.

J'ai vu qu'elle enlevais le (2), et c'est là qu' il y a problème. Dans mon fichier de la feuille à dupliquer, j'ai mis ceci: ActiveSheet.Name = "Avant" et Excel m'as gentiment dit : ON NE PEUT PAS AVOIR DEUX FEUILLES DU MÊME NOM MONSIEUR. Malgré que la feuille aie été rennomée OFFICE.

Faudrait lui vider la mémoire à celui-là, pour ne pas se rappeler que OFFICE s'appellait AVANT.


A+ 😎
 
Re : copy d'une feuille modele avec un bouton

Re,

Tu testes la macro dans le fichier de Yblotière V2 !?

Il y a juste un petit soucis que je viens de voir, pour mémoriser l'immat, il faut mettre le point devant le range
Code:
sImmat = .Range("A" & Lig).Value

Sinon ça fonctionne très bien 😉

A+
 
Dernière modification par un modérateur:
Re : copy d'une feuille modele avec un bouton

Oui, mais moi je suis sous 2007 et yblotière sous 2010.

Et d'où sort la V2 de yblotière???

Même la macro que Staple m'a proposé, affiche l'erreur dans mon fichier.

Comment je test , je copie ta macro dans le fichier et j'exécute (Pas le fichier, je te rassure 😱 ) 😉.


A+ 😎
 
Re : copy d'une feuille modele avec un bouton

Re,

Il est vrai que moi aussi je suis sous 2010, mais il ne devrait pas y avoir tant de différences !?

Sur la feuille création, j'ai rajouté 3 immats
CC111DD
DD222EE
CC111DD

Je lance mon dernier code et il me créé bien uniquement 2 feuilles

A+
 
Re : copy d'une feuille modele avec un bouton

Bonsoir yblotière
Bonsoir le Fil
Bonsoir le Forum

Arff je n'ai peut être pas compris le problème
Mais dans la procédure il y a deux fois
ce genre de test
Set MySheet = Sheets("Saisi Go " & sImmat)
cela déclenche une erreur si la feuille nommée "Saisi Go " & sImmat , existe déjà
donc le test doit ce faire à mon sens si l'erreur "=" à ZERO

soit If Err.Number = 0 Then 'donc feuille inexistante, on créé la nouvelle

a voir non testé
Bonne fin de Soirée
Amicalement
Jean Marie
 
Re : copy d'une feuille modele avec un bouton

Bonsoir le fil
Salut yblotiere

bonjour à tous
merci pour vos contributions
cela fonctionne nikel BrunoM45
merci encore
Tant mieux et de rien 😉

je n’hésiterais pas a revenir vers vous
Tu as raison, surtout n'hésite pas, il y aura toujours quelqu'un pour t'aider

Au plaisir
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
326
Réponses
3
Affichages
313
Retour