VBA : Comment trouver la dernière colonne utilisée
Vous pouvez utiliser la syntaxe de base suivante dans VBA pour rechercher la dernière colonne utilisée dans une feuille Excel :
Sub FindLastColumn()
Range("A14") = Cells.Find("*",Range("A1"),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
End Sub
Cet exemple particulier recherche la dernière colonne utilisée dans la feuille actuelle et renvoie le résultat dans la cellule A14 .
Si vous souhaitez plutôt afficher la dernière colonne d’une boîte de message, vous pouvez utiliser la syntaxe suivante :
Sub FindLastColumn()
Dim LastCol As Long
LastCol=Cells.Find("*",Range("A1"),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
MsgBox "Last Column: " & LastCol
End Sub
Les exemples suivants montrent comment utiliser chacune de ces méthodes dans la pratique.
Connexe : VBA : Comment trouver la dernière ligne utilisée
Exemple 1 : rechercher la dernière colonne à l’aide de VBA et afficher les résultats dans la cellule
Supposons que nous ayons l’ensemble de données suivant dans Excel qui contient des informations sur divers joueurs de basket-ball :
On peut créer la macro suivante pour retrouver la dernière colonne utilisée dans cette feuille Excel et afficher le résultat dans la cellule A14 :
Sub FindLastColumn()
Range("A14") = Cells.Find("*",Range("A1"),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Notez que la cellule A14 contient la valeur 2 .
Cela nous indique que la dernière colonne utilisée dans cette feuille particulière est la colonne 2.
Il convient également de noter que si vous avez des colonnes vides avant une colonne utilisée, cette macro trouvera toujours la dernière colonne utilisée.
Par exemple, supposons que nous exécutions la macro sur l’ensemble de données suivant :
La cellule A14 contient la valeur 5 car il s’agit de la dernière colonne contenant des valeurs.
Exemple 2 : rechercher la dernière colonne à l’aide de VBA et afficher les résultats dans la boîte de message
Supposons que nous souhaitions plutôt rechercher la dernière colonne utilisée dans une feuille et afficher le numéro de colonne dans une boîte de message.
Nous pouvons créer la macro suivante pour ce faire :
Sub FindLastColumn()
Dim LastCol As Long
LastCol=Cells.Find("*",Range("A1"),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
MsgBox "Last Column: " & LastCol
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
La boîte de message nous indique que la dernière colonne utilisée dans la feuille est la colonne 2 .
Remarque : Vous pouvez trouver la documentation complète de la méthode VBA Find ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :
VBA : Comment calculer la valeur moyenne de la plage
VBA : Comment compter le nombre de lignes dans la plage
VBA : Comment supprimer les valeurs en double dans la plage