IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Feuille par défaut pour un classeur seulement? [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    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.

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    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?

  3. #3
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    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.

  4. #4
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub afficheFeuille()
    Worksheets("Feuil2").Visible =True
    end sub

  5. #5
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut
    Merci Krovax ...juste un souci :le code insére 2 feuilles (l feuille type et une feuille blanche)

  6. #6
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bonjour à tous,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    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

  7. #7
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    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.

  8. #8
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    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

  9. #9
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    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

    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é.

  10. #10
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut Insérer une feuille type pour un seul classeur
    GRAND MERCI VOUS ETES GENIAUX
    C'est impeccable !!!
    SALUTATIONS

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec média player par défaut pour les vidéos ?
    Par tomguiss dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 18/10/2005, 14h08
  2. Valeur par défaut pour un iterateur
    Par karmaki dans le forum C++
    Réponses: 10
    Dernier message: 20/05/2005, 08h22
  3. Réponses: 6
    Dernier message: 28/09/2004, 16h47
  4. Réponses: 2
    Dernier message: 18/10/2003, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo