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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    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 émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    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

  3. #3
    Membre averti
    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
    Par défaut
    merci zyhack pour ta réponse.

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

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    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

  5. #5
    Membre averti
    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
    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 averti
    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
    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

+ 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