Partage
  • Partager sur Facebook
  • Partager sur Twitter

[VBA]Sélectionner plage cellule ligne active

Sujet résolu
    19 mars 2019 à 15:57:04

    Sub Orange()
    
     Range((ActiveCells.Row,1),(ActiveCells.Row,9).select
    
        With Selection.Interior
            .Pattern = xlSolidCells
            .PatternColorIndex = xlAutomatic
            .Color = 49407
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
     
    End Sub


    Bonjour,

    Je chercher à mettre une mise en forme sur la ligne active des cellules À I

    Mais cela me remonte une erreur.. 

    J'ai mal écrit ma formule ? 

    Merci

    -
    Edité par Neiler258 19 mars 2019 à 17:17:09

    • Partager sur Facebook
    • Partager sur Twitter
      19 mars 2019 à 17:22:31

      Salut,

      Pour utiliser Range comme tu souhaites le faire il te manque des Cells(). Range comprends les références des cellules, pas leur coordonnées. Et aussi il manque une parenthèse fermante avant le .Select

      Regarde le 5e exemple de la doc : https://docs.microsoft.com/fr-fr/office/vba/api/excel.worksheet.range

      Aussi, les Select et Selection sont à éviter, ils ralentissent l'exécution de la macro et sont dépendants de l'utilisateur.

      • Partager sur Facebook
      • Partager sur Twitter
        19 mars 2019 à 17:33:04

        Ha super merci, J'avais un "S' en trop aussi..

        Je ne savais pas pour le select, tu me conseilles plutôt quoi?
        • Partager sur Facebook
        • Partager sur Twitter
          20 mars 2019 à 9:37:46

          Select permet de définir ce qui est selectionné à l'écran, cette info est aussi représentée par la variable "Selection" ligne 3.

          Or "Selection" est un objet Range comme celui que tu utilises ligne 1, donc toutes les opérations que tu fais sur "Selection", tu peux les faire sur tous les objets Range directement. Ca permet de gagner en temps d'exécution, en lisibilité du code et ça rend la macro plus robuste, si jamais l'utlisateur réussit à cliquer quelque part pendant l'exécution il pourrait tout faire capoter.

          Du coup ton code deviendrait plutôt :

          Sub Orange()
           
              With Range(Cells(ActiveCell.Row,1),Cells(ActiveCell.Row,9)).Interior
                  .Pattern = xlSolidCells
                  .PatternColorIndex = xlAutomatic
                  .Color = 49407
                  .TintAndShade = 0
                  .PatternTintAndShade = 0
              End With
            
          End Sub



          • Partager sur Facebook
          • Partager sur Twitter

          [VBA]Sélectionner plage cellule ligne active

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown