Sélection et activation des cellules

Dans Microsoft Excel, vous sélectionnez généralement une ou plusieurs cellules, puis exécutez une action telle que la mise en forme des cellules ou l'affectation d'une valeur à ces cellules. Dans Visual Basic, il n'est en général pas nécessaire de sélectionner les cellules avant de les modifier.

Par exemple, pour entrer une formule dans la cellule D6 avec Visual Basic, il est inutile de sélectionner la plage D6. Renvoyez simplement l’objet Range pour cette cellule, puis affectez votre formule à la propriété Formula comme indiqué dans l’exemple suivant.

Sub EnterFormula() 
    Worksheets("Sheet1").Range("D6").Formula = "=SUM(D2:D5)" 
End Sub

Pour plus d’informations et des exemples d’utilisation d’autres méthodes de contrôle des cellules sans les sélectionner, voir Procédure : Référencer des cellules et des plages.

Utiliser la méthode Select et la propriété Selection

La méthode Select active des feuilles et des objets sur les feuilles ; la propriété Selection renvoie un objet qui représente la sélection actuelle dans la feuille active du classeur actif. Avant de pouvoir utiliser la propriété Selection correctement, vous devez activer un classeur, activer ou sélectionner une feuille, puis sélectionnez une plage (ou un autre objet) à l’aide de la méthode Select.

L’enregistreur de macro crée souvent des macros utilisant la méthode Select et la propriété Selection. La procédure Sub suivante a été créée à l’aide de l’enregistreur de macro et présente l’association de Select et Selection.

Sub Macro1() 
    Sheets("Sheet1").Select 
    Range("A1").Select 
    ActiveCell.FormulaR1C1 = "Name" 
    Range("B1").Select 
    ActiveCell.FormulaR1C1 = "Address" 
    Range("A1:B1").Select 
    Selection.Font.Bold = True 
End Sub

L’exemple suivant effectue la même tâche sans activer ni sélectionner la feuille de calcul ou les cellules.

Sub Labels() 
    With Worksheets("Sheet1") 
        .Range("A1") = "Name" 
        .Range("B1") = "Address" 
        .Range("A1:B1").Font.Bold = True 
    End With 
End Sub

Sélection de cellules sur la feuille de calcul active

Si vous utilisez la méthode Select pour sélectionner des cellules, n'oubliez pas que Select ne fonctionne que sur la feuille de calcul active. Si vous lancez votre procédure Sub à partir du module, la méthode Select échoue à moins que votre procédure n'active la feuille de calcul avant d'utiliser la méthode Select sur une plage de cellules. Par exemple, la procédure suivante copie une ligne de la feuille Sheet1 dans la feuille Sheet2 du classeur actif.

Sub CopyRow() 
    Worksheets("Sheet1").Rows(1).Copy 
    Worksheets("Sheet2").Select 
    Worksheets("Sheet2").Rows(1).Select 
    Worksheets("Sheet2").Paste 
End Sub

Activer une cellule dans une sélection

Vous pouvez utiliser la méthode Activate pour activer une cellule d'une sélection. Il ne peut y avoir qu'une cellule active même si une plage de cellules est sélectionnée. La procédure suivante sélectionne une plage puis active une cellule dans cette plage sans modifier la sélection.

Sub MakeActive() 
    Worksheets("Sheet1").Activate 
    Range("A1:D4").Select 
    Range("B2").Activate 
End Sub

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.