Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

inserer un model de feuille par macro

R

rem$

Guest
bonjour a tous,

voici un code qui me permet d'ajouter un onlet dans mon fichier excel en controlant les doublons...
Y-a-t-il moyen de replacer la nouvelle feuille par un model existant ??

d'avance merci
Rem$



Dim nouvellefeuille As Object
Dim nom As String
retour:
nom = InputBox("quel nom pour la nouvelle feuille ? :")
If nom = "" Then Exit Sub
'controle le nouveau nom pour éviter doublons avec feuille existante
For Each ws In Worksheets
If ws.Name = nom Then
MsgBox ("Nom déjà choisi"): GoTo retour
End If
Next ws

Set nouvellefeuille = Worksheets.Add
nouvellefeuille.Name = nom
'vide la listbox1
ListBox1.Clear
'réinitialise la listbox
For Each ws In Worksheets
Me.ListBox1.AddItem ws.Name
Next ws
 
C

ChTi'160

Guest
Salut "rem$"

Y-a-t-il moyen de replacer la nouvelle feuille par un model existant ??
oui je pense qu'en faisant une copie de ta feuille existante et en la renommant du nom de l'input y a pas de probleme

Sub InsertCopyFeuille ()
'Déclaration des variables
Dim Msg As String, Title As String, Default As String
Dim MyValue As Variant

Msg = "Quelle dénomination souhaitez vous donner à la nouvelle feuille ?"
Title = "DENOMINATION DE LA FEUILLE"
Default = ""
MyValue = InputBox ("Quelle dénomination souhaitez vous donner à la nouvelle feuille ?", "APPELLATION DE LA FEUILLE", "")
If MyValue = "" Then Exit Sub
ActiveSheet.Copy after:=Worksheets (Worksheets.Count)
ActiveSheet.Name = MyValue
End Sub
là c'est la feuille active qui est copiée, mais rien empêche de faire

Sheets("modele").Copy after:=Worksheets (Worksheets.Count)


A+++
Jean Marie
 
R

rem$

Guest
bonjour a tous, Jean Marie

merci pour ta solution ...
effectivement je peux inserer une autre feuille copie du modele mais le pb c le nom de la feuille insérée: elle ne prend pas le nom de l'inputbox....

d'avance merci

Rem$
 
R

rem$

Guest
RE

1000000000000 d'excuses car j'avais laissé la ligne
activesheet.name = MyValue
derriere des guillemets.......

trop nul

Ca marche o poil

Grand merci Jean Marie

Rem$
 
R

rem$

Guest
re

par contre pour les doublons de feuilles je n'arrive pas a retranscrire mon ancien code...
For Each ws In Worksheets
If ws.Name = MyValue Then
MsgBox ("Nom déjà choisi"): GoTo retour
End If
Next ws

cf plus haut..

d'avance merci....

Rem$
 
C

ChTi'160

Guest
Salut "rem$"


je pense que placé ICI celà devrait marché(non testé)
If MyValue = "" Then Exit Sub
------ICI
ActiveSheet.Copy after:=Worksheets (Worksheets.Count)
A+++
Jean Marie
 

Discussions similaires

Réponses
7
Affichages
384
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…