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 :

Aide sur code VBA - Selectionner les cellules A1 de chaque worksheet


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Webplanneur
    Inscrit en
    Janvier 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webplanneur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2023
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Aide sur code VBA - Selectionner les cellules A1 de chaque worksheet
    Bonjour chers utilisateurs du forum,

    J'ai cherché en vain une réponse sur internet et ce présent forum (peut-être ai-je mal écrit mes requêtes ?) et je n'ai trouvé nulle part de réponse à mon problème.

    Ma requête : J'aimerais une macro VBA qui me permette de sélectionner la case A1 de chaque onglet, notamment en terminant cet exercice sur le premier onglet.

    Contexte : "Ah quoi bon faire ça ? C'est vraiment pas bien de sélectionner des cellules dans le code VBA, dit lui directement d'écrire Abrutix!"
    Alors, en effet cette demande semble étrange. Mais là où je travaille, il est bon de ton (voir même courtois) de fournir un fichier excel directement prêt à la lecture à un collègue ou un client (et pas en bas en XS72, puisque qu'il faudra remonter tout en haut du fichier).
    Et figurez-vous que j'en ai marre de passer en revue chacun de mes onglets pour cliquer sur A1. C'est un boulot de bot ça, c'est pas pour moi !

    Ci-dessous, vous trouverez du code VBA qui fait exactement ce que je demande mais seulement je suis obligé d'indiquer le nombre d'onglet un à un... Pénible.

    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
    Sub MettreEnA1()
     
        Worksheets(2).Activate
        Range("A1").Activate
     
        Worksheets(3).Activate
        Range("A1").Activate
     
        Worksheets(4).Activate
        Range("A1").Activate
     
        Worksheets(5).Activate
        Range("A1").Activate
     
        Worksheets(1).Activate
        Range("A1").Activate
     
    End Sub

    Puis j'ai trouvé la fameuse formule For Each Next ! Mais pour une raison qui m'échappe... ça ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub MettreEnA1()
     
        Dim Feuille As Worksheet
     
        For Each Feuille In ActiveWorkbook.Worksheets
        Feuille.Range("A1").Activate
     
        Next Feuille
     
    End Sub
    Avez-vous une solution à ce problème qui semble pourtant très simple ?!

    Merci !
    Ylaff

  2. #2
    Membre confirmé
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 365
    Points : 631
    Points
    631
    Par défaut
    Par exemple

    Sub Abrutix()

    k = Sheets.Count

    For i = 1 To k
    Sheets(i).Select
    Range("A1").Select
    Next
    Sheets(1).Select
    End Sub

    OU

    Sub MettreEnA1()

    Dim Feuille As Worksheet

    For Each Feuille In ActiveWorkbook.Worksheets
    Feuille.Select
    Range("A1").Activate
    Next Feuille
    Sheets(1).Select
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Points : 335
    Points
    335
    Par défaut
    bonjour,

    essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub MettreEnA1()
     
        Dim Feuille As Worksheet
     
        For Each Feuille In Worksheets
    Feuille.select
        Range("A1").Activate
     
        Next Feuille
     
    End Sub

  4. #4
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Points : 1 156
    Points
    1 156
    Par défaut
    Bonjour,

    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub MettreEnA1(UnBook As Workbook)
        Dim Feuille As Worksheet
     
        For Each Feuille In UnBook.Worksheets
              Feuille.Activate
              Feuille.Range("A1").Select
        Next Feuille
        UnBook.Worksheets(1).Activate
    End Sub
    Reste à vérifier ce que tu dois passer en paramètre (ThisWorkBook, ActiveWorkBook ou autre...)
    Il ne faut surtout pas qu'un ScreenUpdating = false soit en cours sinon tu perdras le scrolling associé au select et donc une bonne partie de l'intérêt de la manipe.

  5. #5
    Candidat au Club
    Homme Profil pro
    Webplanneur
    Inscrit en
    Janvier 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webplanneur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2023
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour a_diard !

    Merci pour ton aide, on dirait que ton code ci-dessous marche parfaitement !

    Merci également aux autres participants ! Je me suis arrêté là où ça fonctionnait désolé les amis.
    Vous êtes d'une efficacité redoutable !

    Ylaff

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub MettreEnA1()
     
        k = Sheets.Count
        For i = 1 To k
            Sheets(i).Select
            Range("A1").Select
        Next
        Sheets(1).Select
     
    End Sub
    Citation Envoyé par a_diard Voir le message
    Par exemple

    Sub Abrutix()

    k = Sheets.Count

    For i = 1 To k
    Sheets(i).Select
    Range("A1").Select
    Next
    Sheets(1).Select
    End Sub

    OU

    Sub MettreEnA1()

    Dim Feuille As Worksheet

    For Each Feuille In ActiveWorkbook.Worksheets
    Feuille.Select
    Range("A1").Activate
    Next Feuille
    Sheets(1).Select
    End Sub

  6. #6
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 074
    Points : 2 549
    Points
    2 549
    Par défaut
    Citation Envoyé par Ylaff Voir le message

    Merci pour ton aide, on dirait que ton code ci-dessous marche parfaitement !
    Enfin, ça ne fonctionne que s'il n'y a pas de feuilles masquées et s'il n'y a que des feuilles de calcul "classiques", pas de graphique

    donc je propose de parcourir les Worksheets et non les Sheets, de tester les feuilles visibles et de partir de la fin pour arriver directement sur la première visible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        For i = Worksheets.Count To 1 Step -1
            If Worksheets(i).Visible Then
                Worksheets(i).Select
                Range("A1").Select
            End If
        Next

    Stéphane

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

Discussions similaires

  1. aide sur code VBA
    Par omen123 dans le forum VBA Access
    Réponses: 62
    Dernier message: 20/03/2019, 20h24
  2. [XL-2003] Aide sur code VBA sur Excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2013, 17h14
  3. [XL-2007] Aide sur code vba copier/coller
    Par youlig dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/03/2013, 11h28
  4. [XL-2007] Besoin d aide sur code vba
    Par alexandrek dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/01/2011, 17h10
  5. [XL-2000] Aide sur Code VBA
    Par Dan21 dans le forum Excel
    Réponses: 3
    Dernier message: 08/02/2010, 14h38

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