Easy-Micro

ESPACEMEMBRE VBA
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

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

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)

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

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

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

'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

-> voir les Astuces de Michel pour d'autres exemple VBA sur les lignes.


< Page précédente VBA Page suivante >