Inconvénients du .End(xlUp) Method
- S’il y a une cellule vide au milieu des données, le résultat peut être inexact car VBA s’arrêtera avant d’atteindre les dernières données réelles.
- Si des cellules sont fusionnées, cette méthode peut ne pas fonctionner correctement, car Excel considère les cellules fusionnées comme une seule unité.
3. Trouver la dernière colonne contenant des données à l’aide de .End(xlToLeft)
La méthode .End(xlToLeft) dans Excel VBA permet de trouver la dernière colonne contenant des données dans une ligne spécifique.
Cela fonctionne de la même manière que d’appuyer sur Ctrl + ← (flèche gauche) dans Excel :
- Commencez dans la colonne la plus à droite de la ligne.
- Déplacez-vous vers la gauche jusqu’à ce que vous trouviez la dernière colonne contenant des données.
- Génère le nombre de colonnes où les données ont été trouvées pour la dernière fois.
Exemple de code VBA pour trouver la dernière colonne
Le code suivant trouvera la dernière colonne contenant les données dans la première ligne de la feuille de calcul « Feuil1 » :
Sub FindingLastColumn()
Dim ws As Worksheet
Dim LastCol As Long
Set ws = ThisWorkbook.Worksheets(“Sheet1”)
' Finds the last column that has data in the first row
LastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
' Displays results in Immediate Window
Debug.Print “Last Column with Data: “ & LastCol
End Sub
Avantages du .End(xlToLeft) Method
- C’est génial de trouver la dernière colonne qui contient les données dans le tableau.
- Il est simple à utiliser sans nécessiter beaucoup de code.
- Il peut aider à trouver l’en-tête ou la section d’un rapport automatisé.
Inconvénients du .End(xlToLeft) Method
- S’il y a des colonnes vides entre les données, cette méthode s’arrêtera avant d’atteindre la dernière colonne.
- Comme dans .End(xlUp), cette méthode ne prend pas en compte les colonnes fusionnées.
4. Utilisation de Find pour détecter avec précision les dernières cellules remplies
La méthode Find dans Excel VBA est l’un des moyens les plus efficaces et les plus appropriés de trouver la dernière ligne ou colonne contenant des données dans une feuille de calcul.
Contrairement à .End(xlUp), qui ne fonctionne que sur une seule colonne, la méthode Find peut rechercher la dernière cellule dans toute la zone de la feuille de calcul, à la fois les lignes et les colonnes.
Cette méthode est particulièrement utile lorsque vous travaillez avec des jeux de données complexes, que vous avez des cellules masquées (hidden rows/columns) ou des cellules contenant des formules. Il convient également aux ensembles de données irréguliers.
Autres articles intéressants
Exemple de code VBA pour trouver la dernière ligne contenant des données
Le code suivant trouvera la dernière ligne contenant des données dans une feuille de calcul donnée à l’aide de la méthode Find :
Sub FindingLastRow()
Dim ws As Worksheet
Dim LastRow As Long
Set ws = ThisWorkbook.Worksheets(“Sheet1”)
' Finds the last row that has data
On Error Resume Next
LastRow = ws.Cells.Find(What:=“*”, _
After:=ws.Range(“A1”), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
' SearchOrder:=xlByColumns, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
' Displays results in Immediate Window
Debug.Print “Last Row with Data: “ & LastRow
End Sub
Utilisez SearchOrder :=xlByColumns pour effectuer une recherche par colonne.