Sélection dans une feuille de calcul
(à l'aide du code VBA)

Page mise à jour le : 28/03/2001

Vous trouverez dans cette rubrique des exemples de programmes VBA pour effectuer différents types de sélection de cellules.

Sélection d'une plage avec la souris.
Sélection d'une plage.
Sélection de 2 plages (non contigües).
Sélection de deux colonnes non contigües.
Sélection de cellules caractéristiques (par ex. cellules égales à 20).
Sélection de cellules vers le bas depuis la cellule active (Ctrl+Shift+Bas).
Sélection de cellules vers le haut depuis la cellule active (Ctrl+Shift+Haut).
Sélection de cellules vers la droite depuis la cellule active (Ctrl+Shift+Droit).
Sélection de cellules vers la gauche depuis la cellule active (Ctrl+Shift+Gauche).
Sélection de cellules dans la plage courante depuis la cellule active.
Sélection de cellules contigues dans la colonne de la cellule active.
Sélection de cellules contigues dans la ligne de la cellule active.
Sélection d'une colonne entière par rapport à la cellule active.
Sélection d'une ligne entière par rapport à la cellule active.


 
Sélection d'une plage avec la souris.Retour au début

 
Permet de sélectionner une plage avec la souris (Méthode InputBox)
Sub SelectionPlageAvecSouris()
      Dim Plage As Range
      Set Plage = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)
      MsgBox ("La plage que vous avez séléctionnez est : " & Plage.Address)
End Sub

Sélection d'une plage.Retour au début

 
Permet de sélectionner la zone en cours par rapport à la cellule active.
Sub SelectionPlage()
      ActiveCell.CurrentRegion.Select
      MsgBox ("La plage sélectionnée est : " & Selection.Address)
End Sub

Sélection de 2 plages (non contigües).Retour au début

 
Permet de sélectionner deux plages discontinues (Plage A1:Ax et C1:Cx)
Sub SelectionDiscontinue()
      Dim Z1, Z2, MaPlageMultiZone As Range
      Worksheets("Feuil1").Select
      Range("A1").Select
      ActiveCell.End(xlDown).Select
      Zone1 = ActiveCell.Address
      Selection.Offset(0, 2).Select
      Zone2 = ActiveCell.Address
      Set Z1 = Range("A1", Zone1)
      Set Z2 = Range("C1", Zone2)
      Set MaPlageMultiZone = Union(Z1, Z2)
      ZoneSelection = MaPlageMultiZone.Select
End Sub

Sélection de deux colonnes non contigües.Retour au début

 
Permet de sélectionner deux colonnes A et D par exemple.
Sub SelectionDeuxColonnesNonContigues()
' Soit les colonnes A (1) et D (4) à sélectionner
      NCol1 = 1
      NCol2 = 4
      Union(Cells(1, NCol1), Cells(1, NCol2)).EntireColumn.Select
End Sub

Sélection de cellules caractéristiquesRetour au début
(par ex. cellules égales à 20).

 
Permet de sélectionner toutes les cellules dont la valeur est 20
Sub CellulesValeurDeterminee()
' La valeur 20 est saisie en E2
      LaValeur = Range("E2").Value
      Range("A1").Select
      For Each Cll In ActiveCell.CurrentRegion
            If Cll.Value = LaValeur Then plg = plg & Cll.Address() & ","
      Next Cll
      If Len(plg) > 0 Then Range(Left(plg, Len(plg) - 1)).Select
End Sub

Sélection de cellules vers le bas depuis la cellule active.Retour au début

 
Sub SelectDown()
      Range(ActiveCell, ActiveCell.End(xlDown)).Select
End Sub

Sélection de cellules vers le haut depuis la cellule active.Retour au début

 
Sub SelectDown()
Range(ActiveCell, ActiveCell.End(xlUp)).Select
End Sub

Sélection de cellules vers la droite depuis la cellule active.Retour au début

 
Sub SelectDown()
      Range(ActiveCell, ActiveCell.End(xlToLeft)).Select
End Sub

Sélection de cellules vers la gauche depuis la cellule active.Retour au début

 
Sub SelectDown()
      Range(ActiveCell, ActiveCell.End(xlToRight)).Select
End Sub

Sélection de cellules dans la plage courante depuis la cellule active.Retour au début

 
Sub SelectCurrentRegion()
      ActiveCell.CurrentRegion.Select
End Sub

Sélection de cellules contigues dans la colonne de la cellule active.Retour au début

 
Sub SelectActiveColumn()
      If IsEmpty(ActiveCell) Then Exit Sub
' Ignore error si Activecell est dans la ligne 1
      On Error Resume Next
      If IsEmpty(ActiveCell.Offset(-1, 0)) Then Set TopCell = ActiveCell Else Set TopCell = ActiveCell.End(xlUp)
      If IsEmpty(ActiveCell.Offset(1, 0)) Then Set BottomCell = ActiveCell Else Set BottomCell = ActiveCell.End(xlDown)
      Range(TopCell, BottomCell).Select
End Sub

Sélection de cellules contigues dans la ligne de la cellule active.Retour au début

 
Sub SelectActiveRow()
      If IsEmpty(ActiveCell) Then Exit Sub
' Ignore error si Activecell est dans la colonne A
      On Error Resume Next
      If IsEmpty(ActiveCell.Offset(-1, 0)) Then Set TopCell = ActiveCell Else Set TopCell = ActiveCell.End(xlToLeft)
      If IsEmpty(ActiveCell.Offset(1, 0)) Then Set BottomCell = ActiveCell Else Set BottomCell = ActiveCell.End(xlToRight)
      Range(TopCell, BottomCell).Select
End Sub

Sélection d'une colonne entière par rapport à la cellule active.Retour au début

 
Sub SelectEntireColumn()
      Selection.EntireColumn.Select
End Sub End Sub

Sélection d'une ligne entière par rapport à la cellule active.Retour au début

 
Sub SelectEntireRow()
      Selection.EntireRow.Select
End Sub