More

    Comment pouvez-vous trouver automatiquement la dernière cellule contenant des données dans Excel ?

    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.

    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.

    Dernières articles