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 :

Macro qui s'exécute sur tous les onglets


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Macro qui s'exécute sur tous les onglets
    Bonjour, je suis débutant en macro. Je souhaiterais créer une macro qui me mette la même en tête de page sur tous les onglets d'un fichier. Pour le moment, j'en suis à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub EnTete ()
     
    ActiveSheet.PageSetup.LeftHeader = ""
    ActiveSheet.PageSetup.CenterHeader = ""
     
    End Sub
    Le problème est que cette macro ne semble s'exécuter que sur l'onglet actif.
    De plus, je voudrais que le texte me soit demander par une boîte de dialogue afin que je puisse le rentrer au clavier.

    Merci pour votre aide.

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

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Premièrement utilise si tu ne sais pas temps servir regarde le post aide a l'utilisation.

    Pour ton problème
    Activesheet indique la feuil active donc c'est normale que ton code ne fonctionne que pour elle, il te faut boucler sur tous les onglet
    tu peux essayer quelque chose comme ca, la on affiche les nom des onglet je te laisse adapter (si tu débute en VBA et que cela te pose problème dit le mais essaye avant )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Sh As Worksheet
    For Each Sh In Sheets
       MsgBox Sh.Name
    Next Sh
    Pour ce qui est de récupérer les info par une box regarde un peux ce tutoriel
    La MsgBox décortiquée
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour ton aide, maintenant j'arrive bien à changer les entêtes de toutes les pages.

    En revanche, je crois que le msgbox n'est pas ce qu'il me faut. Ce qu'il fait là est juste m'écrire dans une boîte de dialogue le nom de l'onglet qu'il est en train de traîter.

    Ce que je souhaite c'est qu'une seule fois pour tous les onglets, il y ait une boîte de dialogue qui s'ouvre et me demande de rentrer la date par exemple. Ensuite je puisse récupérer cette date afin de la mettre dans l'entête, c'est à dire savoir où récupérer cette variable de type String.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    Regarde du côté des InputBox. Tu trouveras tout ce qu'il te faut dessus dans les FAQ et Tutos C'est exactement ce qu'il te faut.

    En gros, cela s'utilise comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim MaVar as String
     
    MaVar = InputBox(...)
    Les InputBox ouvrent une fenêtre de saisie où tu y rentres ce que tu veux. Ainsi, ton texte sera stocké dans une variable de type String. Tu pourras donc en faire ce que tu veux.

    Krovax, que je salue, t'a donné la MsgBox à titre d'exemple seulement, ce n'était pas pour l'utiliser.

    Bien entendu, pense à mettre l'InputBox dans la boucle.

    Bonne chance !
    DeaD

  5. #5
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour idckhorne Krovax DeaD78 le forum copy la date en a1 dans toutes les feuilles a adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim x As Variant, Sh As Worksheet, i As String
    i = ActiveSheet.Name
    x = InputBox("entrez une date")
    Application.ScreenUpdating = False
    For Each Sh In Sheets
    Sh.Activate: [a1] = x
    Next Sh
    Sheets(i).Activate: Beep
    End Sub
    SALUTATIONS

Discussions similaires

  1. [XL-2007] Macro qui s'éxécute dans tous les classeurs ouverts
    Par Tharka dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/04/2013, 15h20
  2. [XL-2003] Une macro sur tous les onglets
    Par Maksym dans le forum Macros et VBA Excel
    Réponses: 27
    Dernier message: 23/01/2013, 13h28
  3. Boucler sur tous les onglets d'un fichier Excel
    Par CocoAntoine dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/03/2012, 13h08
  4. Exécuter une macro sur tous les onglets d'un fichier sauf un
    Par Marsama dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/04/2011, 17h38
  5. Macro sur tous les onglets
    Par yann3131 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/01/2010, 17h35

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