Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 02/07/2009, 21h35   #1 (permalink)
Nouveau membre du Club
 
Date d'inscription: juin 2009
Messages: 68
Par défaut Feuille par défaut pour un classeur seulement?

Bonjour au forum
Est-il possible de créer une feuille par défaut pour un classeur seulement?
Je sais que c'est possible de créer une feuille par défaut(feuil.xlt) mais cela s'applique à tous les classeurs.
mobiclick est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 10h02   #2 (permalink)
Expert Confirmé
 
Avatar de Krovax
 
Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
Par défaut

Je dirais que tu pourrais faire ta feuille type la masquer par macro et par la suite quand l'utilisateur veux insérer une feuille c'est cette feuille que ton programme insert et non une feuille blanche. Cela t'irais comme méthode? On part la dessus?
Krovax est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 10h12   #3 (permalink)
Nouveau membre du Club
 
Date d'inscription: juin 2009
Messages: 68
Par défaut

Bonjour
Je suis partant !
Par contre je crains que la macro plante si la feuille type est masquée dans le meme classeur.
mobiclick est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 10h42   #4 (permalink)
Expert Confirmé
 
Avatar de Krovax
 
Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
Par défaut

non ne t'inquiète pas
Il suffit de la démasquer avant de la copier
Remplace feuil2 par le nom de ta feuille
A placer dans Thisworbook
Code :
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Application.ScreenUpdating = False
Worksheets("Feuil2").Visible = True
Sheets("Feuil2").Copy After:=Sheets(Sheets.Count)
Worksheets("Feuil2").Visible = xlSheetVeryHidden
Application.ScreenUpdating = True
End Sub
'pour masquer la feuille a l'ouverture du classeur
Private Sub Workbook_Open()
Worksheets("Feuil2").Visible = xlSheetVeryHidden
End Sub
 
 
Pour pourvoir afficher la feuille si tu veux la modifier
(en utilisant Xlveryhidden tu ne rend possible l'affichage que par macro, l'utilisateur ne devrais pas pouvoir tomber dessus par hasard)
Code :
Sub afficheFeuille()
Worksheets("Feuil2").Visible =True
end sub
Krovax est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 10h50   #5 (permalink)
Nouveau membre du Club
 
Date d'inscription: juin 2009
Messages: 68
Par défaut

Merci Krovax ...juste un souci :le code insére 2 feuilles (l feuille type et une feuille blanche)
mobiclick est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 10h52   #6 (permalink)
Membre Expert
 
Avatar de aalex_38
 
Date d'inscription: septembre 2007
Messages: 1 447
Par défaut

Bonjour à tous,

un peu le même code que Krovax en utilisant le codename :

Code :
Sub testc()
On Error GoTo fin
Dim wb As Workbook
Set wb = ThisWorkbook
 
Application.ScreenUpdating = False
 
With Feuil2
    .Visible = True
    .Copy After:=wb.Worksheets(wb.Worksheets.Count)
    .Visible = xlSheetVeryHidden
End With
 
fin:
Application.ScreenUpdating = True
 
End Sub
Citation:
Merci Krovax ...juste un souci :le code insére 2 feuilles (l feuille type et une feuille blanche)
A mon avis il te suffit de supprimer la feuille dés le début :

Code :
Private Sub Workbook_NewSheet(ByVal Sh As Object)
 
On Error GoTo fin
Dim wb As Workbook
Set wb = ThisWorkbook
 
With Application
 .ScreenUpdating = False
 .DisplayAlerts = False
End With
 
Sh.Delete ' suppression de la feuille
 
With Feuil2
    .Visible = True
    .Copy After:=wb.Worksheets(wb.Worksheets.Count)
    .Visible = xlSheetVeryHidden
End With
 
fin:
With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
End With
 
End Sub

Nb :Avec displayalerts = false il ne te demanderas pas de confirmer la suppression de la feuille
__________________

Dernière modification par AlainTech ; 07/07/2009 à 05h01. Motif: Fusion de 2 messages
aalex_38 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 11h08   #7 (permalink)
Nouveau membre du Club
 
Date d'inscription: juin 2009
Messages: 68
Par défaut

supprimer ou masquer ? si c'est supprimer je ne vois pas comment lancer la procédure , le classeur contenant une seule feuille ,en l'occurrence la feuille type que je vous insérer automatiquement . Le code de krovax marche à merveille si seulement il insérait que la feuille type , i.e sans la feuille blanche.
mobiclick est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 11h09   #8 (permalink)
Expert Confirmé
 
Avatar de Krovax
 
Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
Par défaut

Merci aalex pour la corection. C'était justement la question que je m'étais posé, justilise toujour le meme fichier test et il commence a être un peu truc chargé pour que je remarque ce genre d'erreur
Juste une petite modif pour insérer la feuille pas en dernier mais la ou elle aurait du être

Sinon y a tout dans ce code
Remplace le Feuil2 par le code name de ta feuille et c'est bon
(Le code name tu le trouvera dans l'éditeur de macro c'est le nom de l'onglet qui n'est pas entre parenthèse a gauche)

Code :
Private Sub Workbook_NewSheet(ByVal Sh As Object)
 
On Error GoTo fin
Dim wb As Workbook
dim i as integer
Set wb = ThisWorkbook
 
With Application
 .ScreenUpdating = False
 .DisplayAlerts = False
End With
i=sh.index 'peut être mettre un -1 ici i=sh.index-1
Sh.Delete ' suppression de la feuille
 
With Feuil2
    .Visible = True
    .Copy After:=wb.Worksheets(i) 
    .Visible = xlSheetVeryHidden
End With
 
fin:
With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
End With
 
End Sub
Krovax est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 11h23   #9 (permalink)
Membre Expert
 
Avatar de aalex_38
 
Date d'inscription: septembre 2007
Messages: 1 447
Par défaut

Citation:
Juste une petite modif pour insérer la feuille pas en dernier mais la ou elle aurait du être
Sympa le coup de l'index

Citation:
supprimer ou masquer ? si c'est supprimer je ne vois pas comment lancer la procédure , le classeur contenant une seule feuille
Krovax, t'as donné un code pour gérer l'évenement "nouvelle feuille", pour cela tu vas dans thisworkbook, dans la liste de gauche tu selectionnes workbook, dans celle de droite newsheet et le sub s'ecrit automationquement ensuite tu copies dedans le code que il t'a donné.
__________________

Dernière modification par AlainTech ; 07/07/2009 à 05h02. Motif: Balises [quote], pas code
aalex_38 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 11h28   #10 (permalink)
Nouveau membre du Club
 
Date d'inscription: juin 2009
Messages: 68
Par défaut Insérer une feuille type pour un seul classeur

GRAND MERCI VOUS ETES GENIAUX
C'est impeccable !!!
SALUTATIONS
mobiclick est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 07h01.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.