Partager via


Sélectionner une plage

Ces exemples montrent comment sélectionner la plage utilisée, qui inclut des cellules mises en forme qui ne contiennent pas de données, et comment sélectionner une plage de données, qui inclut des cellules qui contiennent des données réelles.

Exemple de code fourni par : Tom Urtis, Atlas Programming Management

Sélection de la plage utilisée

Cet exemple montre comment sélectionner la plage utilisée sur la feuille active, qui inclut des cellules mises en forme qui ne contiennent pas de données, à l’aide de la propriété UsedRange de l’objet Worksheet et de la méthode Select de l’objet Range . Ensuite, l’utilisateur voit apparaître l’adresse de la plage.

Sub SelectUsedRange()
    ActiveSheet.UsedRange.Select
    MsgBox "The used range address is " & ActiveSheet.UsedRange.Address(0, 0) & ".", 64, "Used range address:"
End Sub

Sélection d’une plage de données commençant à la cellule A1

Cet exemple montre comment sélectionner une plage de données dans la feuille en cours en commençant par la cellule A1 et comment afficher l' adresse de la plage pour l'utilisateur. La plage de données n’inclut pas les cellules mises en forme qui ne contiennent pas de données. Pour obtenir la plage de données, cet exemple recherche la dernière ligne et la dernière colonne qui contiennent des données réelles à l’aide de la méthode Find de l’objet Range .

Sub SelectDataRange()
    Dim LastRow As Long, LastColumn As Long
    LastRow = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    LastColumn = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    Range("A1").Resize(LastRow, LastColumn).Select
    MsgBox "The data range address is " & Selection.Address(0, 0) & ".", 64, "Data-containing range address:"
End Sub

Sélection d’une plage de données dont l’emplacement de départ est inconnu

Cet exemple montre comment sélectionner une plage de données sur la feuille active lorsque vous ne connaissez pas l’emplacement de départ et afficher l’adresse de la plage à l’utilisateur. La plage de données n’inclut pas les cellules mises en forme qui ne contiennent pas de données. Pour obtenir la plage de données, cet exemple recherche la première et la dernière ligne et colonne qui contiennent des données réelles à l’aide de la méthode Find de l’objet Range .

Sub UnknownRange()
    If WorksheetFunction.CountA(Cells) = 0 Then
        MsgBox "There is no range to be selected.", , "No cells contain any values."
        Exit Sub
    Else
        Dim FirstRow&, FirstCol&, LastRow&, LastCol&
        Dim myUsedRange As Range
        FirstRow = Cells.Find(What:="*", SearchDirection:=xlNext, SearchOrder:=xlByRows).Row
        
        On Error Resume Next
        FirstCol = Cells.Find(What:="*", SearchDirection:=xlNext, SearchOrder:=xlByColumns).Column
        If Err.Number <> 0 Then
            Err.Clear
            MsgBox _
            "There are horizontally merged cells on the sheet" & vbCrLf & _
            "that should be removed in order to locate the range.", 64, "Please unmerge all cells."
            Exit Sub
        End If
        
        LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
        LastCol = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
        Set myUsedRange = Range(Cells(FirstRow, FirstCol), Cells(LastRow, LastCol))
        myUsedRange.Select
        MsgBox "The data range on this worksheet is " & myUsedRange.Address(0, 0) & ".", 64, "Range address:"
    End If
End Sub

À propos du collaborateur

MVP Tom Urtis est le fondateur de gestion Atlas de programmation, un service complet Microsoft Office et société de solutions d’entreprise Excel dans la Silicon Valley. Tom comporte plus de 25 ans d’expérience dans la gestion d’entreprise et de développement Microsoft Office applications et représente co-auteur de « Macro Sainte ! Il existe 2 500 exemples VBA Excel ».

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.