Ligne Colonne
Les objets ligne et colonne
Exemple, saisissez dans la fenêtre exécution (Ctrl + g) :
• Sélectionner une ligne
Rows("1").Select
• Sélectionner des lignes contigües
Rows("1:5").Select
• Sélectionner des colonnes contigües
Columns("B:D").Select
• Sélectionner la première ligne d'une colonne
Range("A1").CurrentRegion.Rows(1).Select
• Stocker le numéro de la dernière ligne dans une variable
Dercell = Range("A1").End(xlDown).Row
• Descendre vers le bas à partir de la cellule active
ActiveCell.Offset(1,0).Select
• Sélectionner une cellule qui se trouve cinq lignes au-dessous de la cellule active et une colonne à droite
ActiveCell.Offset(5, 1).Select
• Insérer trois lignes sous la ligne active
ActiveCell.Offset(1).Resize(3, 1).EntireRow.Insert
• Masquer quelques lignes
Rows("10:12").Select
Selection.EntireRow.Hidden = True
• Masquer quelques colonnes
Columns("B:D").Select
Selection.EntireColumn.Hidden = True
Rows("1").Select
• Sélectionner des lignes contigües
Rows("1:5").Select
• Sélectionner des colonnes contigües
Columns("B:D").Select
• Sélectionner la première ligne d'une colonne
Range("A1").CurrentRegion.Rows(1).Select
• Stocker le numéro de la dernière ligne dans une variable
Dercell = Range("A1").End(xlDown).Row
• Descendre vers le bas à partir de la cellule active
ActiveCell.Offset(1,0).Select
• Sélectionner une cellule qui se trouve cinq lignes au-dessous de la cellule active et une colonne à droite
ActiveCell.Offset(5, 1).Select
• Insérer trois lignes sous la ligne active
ActiveCell.Offset(1).Resize(3, 1).EntireRow.Insert
• Masquer quelques lignes
Rows("10:12").Select
Selection.EntireRow.Hidden = True
• Masquer quelques colonnes
Columns("B:D").Select
Selection.EntireColumn.Hidden = True
Connaître le nombre de lignes, colonnes ou de cellules d'un tableau
'Nombre de lignes
MsgBox Range("A1").CurrentRegion.Rows.Count
'Nombre de Colonne
MsgBox Range("A1").CurrentRegion.Columns.Count
'Nombre de cellules :
MsgBox Range("A1").CurrentRegion.Cells.Count
MsgBox Range("A1").CurrentRegion.Rows.Count
'Nombre de Colonne
MsgBox Range("A1").CurrentRegion.Columns.Count
'Nombre de cellules :
MsgBox Range("A1").CurrentRegion.Cells.Count
Transformer un numéro de colonne en lettre
' Déclaration d'une variable de type chaine
Public lettredecolonne As String
'On récupère la lettre de la colonne de la cellule active
lettredecolonne = Chr(ActiveCell.Column + 64)
Public lettredecolonne As String
'On récupère la lettre de la colonne de la cellule active
lettredecolonne = Chr(ActiveCell.Column + 64)
Explication : Le numéro ASCII de la lettre de la colonne correspond au numéro de la colonne + 64
Voir la procédure ci-dessous qui sélectionne dynamiquement une plage
Trouver le numéro de la première ligne vide :
• Vers le bas ---------------
Exemple réalisé le 25 février 2011 en collaboration avec Séverine de l'ANFA
Dim int_premierelignevide As Integer
Range("A1").Select
Selection.End(xlDown).Select ' Soit Ctrl + flêche bas
int_premierelignevide = ActiveCell.Row + 1
Range("A" & int_premierelignevide).Value = txt_nom.Value
• Vers le haut ---------------
Exemple réalisé le 7 octobre 2011 en collaboration avec Francis de TurboMeca
Dim int_premierelignevide As Integer
'Récupère le nombre de lignes d'Excel
Dim var_nombredeligne As Long
var_nombredeligne = Application.Rows.Count 'ou de la feuille active avec ActiveSheet.Rows.Count
'Sélectionne la dernière ligne
Rows(var_nombredeligne).Select
'Remonte sur la première ligne pleine
Selection.End(xlUp).Select ' soit Ctrl + Flêche haut
'initialisation de la bonne ligne
int_premierelignevide = ActiveCell.Row + 1
Range("A" & int_premierelignevide).Value = txt_nom.Value
Exemple réalisé le 25 février 2011 en collaboration avec Séverine de l'ANFA
Dim int_premierelignevide As Integer
Range("A1").Select
Selection.End(xlDown).Select ' Soit Ctrl + flêche bas
int_premierelignevide = ActiveCell.Row + 1
Range("A" & int_premierelignevide).Value = txt_nom.Value
• Vers le haut ---------------
Exemple réalisé le 7 octobre 2011 en collaboration avec Francis de TurboMeca
Dim int_premierelignevide As Integer
'Récupère le nombre de lignes d'Excel
Dim var_nombredeligne As Long
var_nombredeligne = Application.Rows.Count 'ou de la feuille active avec ActiveSheet.Rows.Count
'Sélectionne la dernière ligne
Rows(var_nombredeligne).Select
'Remonte sur la première ligne pleine
Selection.End(xlUp).Select ' soit Ctrl + Flêche haut
'initialisation de la bonne ligne
int_premierelignevide = ActiveCell.Row + 1
Range("A" & int_premierelignevide).Value = txt_nom.Value
Sub Hauteur_Largeur_Automatique()
'Haureur automatique de ligne
Rows("14:14").AutoFit 'pour ligne 14
Rows("14").AutoFit
Rows(1).AutoFit '1 pour première ligne
'Largeur automatique de colonne
Columns("A:A").AutoFit 'pour colonne A
Columns("A").AutoFit
Columns(1).AutoFit '1 pour première colonne
End Sub
'Haureur automatique de ligne
Rows("14:14").AutoFit 'pour ligne 14
Rows("14").AutoFit
Rows(1).AutoFit '1 pour première ligne
'Largeur automatique de colonne
Columns("A:A").AutoFit 'pour colonne A
Columns("A").AutoFit
Columns(1).AutoFit '1 pour première colonne
End Sub
Sub proc_double_nettoyage()
' Procédure réalisée avec le concours de Valentine, Anne Lise, Christophe et Alexandre de la société Sodarex
'Première boucle de répétition qui supprime les lignes avec des cellules vide en colonne A
For i = 1 To 20 Step 1
Range("A1").Select
' Ctrl + flêche bas
Selection.End(xlDown).Select
' Sélection de la ligne du dessous (+1)
Rows(ActiveCell.Row + 1).Select
Selection.Delete 'Suppresssion de la ligne active
Next i 'fin de la boucle For
Range("A1").Select
'Deuxième boucle de répétition qui supprime les lignes qui contiennent du texte en colonne A
For i = 1 To 20 Step 1
'Déplacement d'une ligne
ActiveCell.Offset(1, 0).Select
'Si le contenu de la celule active n'est pas du numérique
If IsNumeric(ActiveCell.Value) = False Then
Selection.Delete 'Supression de la ligne active
'Déplacement vers la ligne du dessus
ActiveCell.Offset(-1, 0).Select
End If 'Fin du if
Next i 'Fin de la boucle For
End Sub
' Procédure réalisée avec le concours de Valentine, Anne Lise, Christophe et Alexandre de la société Sodarex
'Première boucle de répétition qui supprime les lignes avec des cellules vide en colonne A
For i = 1 To 20 Step 1
Range("A1").Select
' Ctrl + flêche bas
Selection.End(xlDown).Select
' Sélection de la ligne du dessous (+1)
Rows(ActiveCell.Row + 1).Select
Selection.Delete 'Suppresssion de la ligne active
Next i 'fin de la boucle For
Range("A1").Select
'Deuxième boucle de répétition qui supprime les lignes qui contiennent du texte en colonne A
For i = 1 To 20 Step 1
'Déplacement d'une ligne
ActiveCell.Offset(1, 0).Select
'Si le contenu de la celule active n'est pas du numérique
If IsNumeric(ActiveCell.Value) = False Then
Selection.Delete 'Supression de la ligne active
'Déplacement vers la ligne du dessus
ActiveCell.Offset(-1, 0).Select
End If 'Fin du if
Next i 'Fin de la boucle For
End Sub
'Sélection dynamique de plage (colonne et ligne)
' Création des variables
Public maplage As Range
Public numdeligne As Integer
Public lettredecolonne As String
Sub proc_selection_dynamique()
' La feuille 1 contient un tableau de base
'selection du tableau d'origine
Sheets("Feuil1").Range("A1").Select
Selection.End(xlDown).Select ' soit Ctrl + Flèche bas
numdeligne = ActiveCell.Row ' on récupère le numéro de ligne de la cellule active
Selection.End(xlToRight).Select ' soit Ctrl + Flèche droit
lettredecolonne = Chr(ActiveCell.Column + 64) ' on récupère la lettre de la colonne de la cellule active
' le numéro ASCII de la lettre de la colonne correspond au numéro de la colonne + 64
' on initialise la plage avec la lettre de la colonne et le numéro de la ligne
Set maplage = Sheets("Feuil1").Range("A1:" & lettredecolonne & numdeligne)
maplage.select ' on sélectionne cette plage
Public maplage As Range
Public numdeligne As Integer
Public lettredecolonne As String
Sub proc_selection_dynamique()
' La feuille 1 contient un tableau de base
'selection du tableau d'origine
Sheets("Feuil1").Range("A1").Select
Selection.End(xlDown).Select ' soit Ctrl + Flèche bas
numdeligne = ActiveCell.Row ' on récupère le numéro de ligne de la cellule active
Selection.End(xlToRight).Select ' soit Ctrl + Flèche droit
lettredecolonne = Chr(ActiveCell.Column + 64) ' on récupère la lettre de la colonne de la cellule active
' le numéro ASCII de la lettre de la colonne correspond au numéro de la colonne + 64
' on initialise la plage avec la lettre de la colonne et le numéro de la ligne
Set maplage = Sheets("Feuil1").Range("A1:" & lettredecolonne & numdeligne)
maplage.select ' on sélectionne cette plage
-> voir les Astuces de Michel pour d'autres exemple VBA sur les lignes.