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 :

Centrage horizontal et vertical dans tous les onglets


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 53
    Points : 23
    Points
    23
    Par défaut Centrage horizontal et vertical dans tous les onglets
    Bonjour,

    J'essai de mettre le format horizontale et verticale + largeur et hauteur automatique des cellules, pour tous les onglets.

    Pouvez-vous me dire ce qui cloche dans mon code:
    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
     
    Dim ShtAlignt As Worksheet
        For Each ShtAlignt In Worksheets
            If ShtAlignt.Range("A1").Value <> "" Then
                    With Selection
                        .HorizontalAlignment = xlCenter
                        .VerticalAlignment = xlCenter
                        .WrapText = False
                        .Orientation = 0
                        .AddIndent = False
                        .IndentLevel = 0
                        .ShrinkToFit = False
                        .ReadingOrder = xlContext
                        .MergeCells = False
                    End With
                Cells.EntireColumn.AutoFit
                Cells.EntireRow.AutoFit
            End If
        Next
    En sachant qu'il ne fonctionne pas, mais qu'il ne bogue pas non plus.

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjours

    apparemment tu n'as oublié que la sélection des cellules et j'ai supprimé les lignes inutiles.

    tu peux essayer ce code

    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 Mise_En_Forme()
      Dim ShtAlignt As Worksheet
      'Boucledans tous les onglets
      For Each ShtAlignt In Worksheets
        'la feuille ne sera mise en forme que si la cellule A1 n'est pas vide
        If ShtAlignt.Range("A1").Value <> "" Then
          'il faut selectionner toutes les cellules
          Cells.Select
          'et on les mets en forme
          With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .EntireColumn.AutoFit
            .EntireRow.AutoFit
          End With
        End If
      Next
    End Sub
    bonne soirée
    Cordialement.

    N'oubliez pas de cliquer sur Résolu quand vous avez obtenu la réponse à votre question.
    Citation
    Il y a 10 sortes de gens au monde : ceux qui connaissent le binaire et les autres » - Anonyme
    Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 53
    Points : 23
    Points
    23
    Par défaut
    merci zyhack pour ta réponse.

    mais ce code ne fait effet que sur le dernier onglet!!

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Est-ce que toutes les cellules "A1" de toutes tes feuilles ont une valeur car la condition que tu as mis empêche la mise en forme si la cellule est vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ShtAlignt.Range("A1").Value <> "" Then
    sinon il faudrait la supprimer
    Cordialement.

    N'oubliez pas de cliquer sur Résolu quand vous avez obtenu la réponse à votre question.
    Citation
    Il y a 10 sortes de gens au monde : ceux qui connaissent le binaire et les autres » - Anonyme
    Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 53
    Points : 23
    Points
    23
    Par défaut
    j'ai essayé ca:

    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
    Sub essai()
    Dim ShtAlignt As Worksheet
      'Boucledans tous les onglets
      For Each ShtAlignt In Worksheets
        'la feuille ne sera mise en forme que si la cellule A1 n'est pas vide
          'il faut selectionner toutes les cellules
          Cells.Select
          'et on les mets en forme
          With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .EntireColumn.AutoFit
            .EntireRow.AutoFit
          End With
      Next
    End Sub
    mais ca ne fonctionne que dans le worksheet actif

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 53
    Points : 23
    Points
    23
    Par défaut
    J'ai trouvé,

    En faite il fallait simplement lui demander d'activer les Worksheets avant de selectionner toutes les cellules.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub essai()
    Dim ShtAlignt As Worksheet
      For Each ShtAlignt In Worksheets
      ShtAlignt.Activate
        Cells.Select
          With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .EntireColumn.AutoFit
            .EntireRow.AutoFit
          End With
      Next
    End Sub
    A bientôt

  7. #7
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Pourquoi tant de Select et Activate?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub essai()
    Dim ShtAlignt As Worksheet
      For Each ShtAlignt In Worksheets
        With ShtAlignt.Cells
          .HorizontalAlignment = xlCenter
          .VerticalAlignment = xlCenter
          .EntireColumn.AutoFit
          .EntireRow.AutoFit
        End With
      Next
    End Sub
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. Compiler tous les onglets du classeur dans le premier
    Par drice dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2014, 14h00
  2. Répéter le choix dans une liste déroulante sur tous les onglets
    Par lg5675 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/02/2014, 11h02
  3. Réponses: 3
    Dernier message: 01/08/2011, 08h37
  4. Réponses: 2
    Dernier message: 08/07/2010, 09h44
  5. [MySQL] Rechercher dans tous les champs
    Par Faure dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/10/2005, 14h52

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