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.
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 |
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 |
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
|
![]() |
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
|
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 |
![]() |
Sub SelectDown()
Range(ActiveCell, ActiveCell.End(xlDown)).Select End Sub |
Sub SelectDown()
Range(ActiveCell, ActiveCell.End(xlUp)).Select End Sub |
Sub SelectDown()
Range(ActiveCell, ActiveCell.End(xlToLeft)).Select End Sub |
Sub SelectDown()
Range(ActiveCell, ActiveCell.End(xlToRight)).Select End Sub |
Sub SelectCurrentRegion()
ActiveCell.CurrentRegion.Select End Sub |
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 |
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 |
Sub SelectEntireColumn()
Selection.EntireColumn.Select End Sub End Sub |
Sub SelectEntireRow()
Selection.EntireRow.Select End Sub |