Navigation Inscrivez-vous gratuitement pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter Sujet: Macros et VBA Excel 09/02/2011, 16h35 #1 Membre du Club VBA Dernière ligne d'une colonne Bonjour, J'ai une petite question: Savez vous comment faire en VBA pour trouver la valeur de la dernière case non vide d'une colonne? (j'ai déjà utilisé cette formule mais je ne la retrouve pas). Par exemple: si dans la colonne B: il y a des informations jusqu'à B534 je souhaite récupérer une variable me disant 534. En vous remerciant, Vince 09/02/2011, 16h46 #2 Bonour Range ( "A65536") ( xlUp) à adapter 09/02/2011, 16h48 #3 Nikel merci bcp 09/02/2011, 17h24 #4 Juste pour info, une petite remarque sans grande importance dans ce cas ci. Il est rare d'avoir plus de 65536 lignes de données mais depuis la version 2007 cela est devenu possible puisqu'une feuille comporte maintenant plus d'un million de lignes. Donc, pour faire un bout de code compatible sur toutes les versions, il est judicieux d'utiliser la syntaxe suivante: Range ( "A" &) ( xlUp) ou Cells (, 1) ( xlUp) 09/02/2011, 17h54 #5 Dernière Ligne, Dernière Colonne Bonjour et Merci Fring, Ta méthode est d'autant utile qu'elle peut s'adapter à toutes les versions d'Excel.
Cette façon de faire comporte le même inconvénient que End(xlDown), à savoir qu'une cellule vide au milieu de notre colonne renvoie un résultat erroné. La méthode SpecialCells Cette méthode permet de trouver la dernière ligne de votre feuille, qu'il y ait ou non des lignes vides. Remarque: Attention toutefois, en cas de suppression de lignes, pour récupérer le réel numéro de dernière ligne, il vous faudra enregistrer le classeur. Ligne = (xlCellTypeLastCell) On le voit ici, inutile de référencer un Range ou une Colonne. Il s'agit de la dernière ligne absolue de la feuille. Cette méthode comporte également une propriété Address, utile pour repérer également la colonne: Dim Adresse As String Adresse = (xlCellTypeLastCell). Address Dernière colonne non-vide d'une ligne Vous serez également confrontés un jour au même problème en ce qui concerne les colonnes. En effet, nous ne connaissons pas toujours, à l'avance, le nombre de colonnes utilisées dans notre feuille. Afin de réaliser des boucles sur les colonnes, cette information peut s'avérer indispensable.
Dans Excel, vous pouvez utiliser des raccourcis — Ctrl + Fin pour accéder à la dernière cellule utilisée de la feuille de calcul active. Mais maintenant, si vous souhaitez sélectionner la dernière cellule avec des données dans une ligne ou une colonne spécifiée, aucune méthode directe ne peut le résoudre. Ce didacticiel vous expliquera quelques astuces pour sélectionner rapidement la dernière cellule contenant des données dans une certaine ligne ou colonne dans Excel. Sélectionnez la dernière cellule avec des données dans une colonne avec VBA Sélectionnez la dernière cellule avec des données dans la dernière colonne / ligne avec Kutools for Excel Sélectionnez la dernière cellule avec des données dans une colonne / ligne avec VBA Dans Excel, aucune autre méthode ne peut vous aider à sélectionner la dernière cellule avec des données dans une ligne ou une colonne à l'exception du code VBA. Mais avec le VBA ci-dessous, vous ne pouvez spécifier que l'emplacement de la dernière cellule d'une colonne.
(LouReeD) Faites un tour sur mes applications... Il y en a une quarantaine + trois! Jean-Eric Fanatique d'Excel Messages 20'062 Votes 3'048 Excel 365 EN-FR (PC) Bonjour, Une petite contribution. Cdlt. Public Sub Ligne_index() 'Déclaration des variables Dim lastRow As Long, rng As Range Const lCOL As Long = 12 'Colonne L Const lRW As Long = 2 'Ligne départ With ActiveSheet 'Numéro dernière ligne non vide lastRow = (, lCOL)(xlUp) 'Détermination plage de cellules Set rng = (lRW, lCOL)(lastRow - lRW + 1) End With MsgBox Format(lastRow, "0000") MsgBox dress End Sub Jean-Eric Je ne réponds pas aux M. P. non sollicités. T Tayh Nouveau venu Messages 6 Excel Excel 2013 Bonjour à tous et merci pour vos réponses C'est bon j'ai la variable sur 4 chiffres En reprenant la ligne de code de LouReeD Effectivement le format n'était pas bon Le résultat d'un format est du texte, n'avez vous pas une erreur de type?
Return to Excel Formulas List Ce tutoriel vous apprendra à rechercher la dernière valeur d'une colonne ou d'une ligne dans Excel. Dernière Valeur dans une Colonne Vous pouvez utiliser la Fonction RECHERCHE pour trouver la dernière cellule non vide d'une colonne. = RECHERCHE ( 2; 1 / ( B: B < > ""); B: B) Parcourons cette formule. La partie de la formule B:B<> » » renvoie un tableau contenant les valeurs Vrai et Faux: {FAUX, VRAI, VRAI, …}, en testant si chaque cellule de la colonne B est vide (FAUX). = RECHERCHE ( 2, 1 / ( { FAUX; VRAI; VRAI; VRAI; VRAI; VRAI; FAUX;... ), B: B) Ces valeurs booléennes se convertissent en 0 ou 1 et sont utilisées pour diviser 1. = RECHERCHE ( 2, { # DIV / 0! ; 1; 1; 1; 1; 1; 1; # DIV / 0! ;, B: B) Il s'agit du vecteur de recherche pour la Fonction RECHERCHE. Dans notre cas, la valeur recherchée est 2, mais la plus grande valeur du vecteur de recherche est 1, donc la Fonction RECHERCHE correspondra au dernier 1 du tableau et retournera la valeur correspondante dans le vecteur de résultats.
jordane45 Messages postés 35490 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 mai 2022 356 3 juin 2014 à 08:25 Bonjour, Derniere_Ligne = ("*", Range("A1"),,, xlByRows, xlPrevious) Derniere_Colonne = ("*", Range("A1"),,, xlByColumns, xlPrevious)
D'où le code suivant: Dim maLigne As Long maLigne = Range("C" &)(xlUp) + 1 Remarque: Cette méthode, lorsque votre colonne est entièrement vide, retourne la valeur 2. Or, dans la réalité, la première ligne vide est la 1. Pour pallier ceci, il conviendra de faire un test sur la première cellule de votre colonne. Du genre: If Range("C1") <> "" Then Else maLigne = 1 End If La méthode find La méthode find permet de chercher une valeur dans une plage de cellules. On peut lui adjoindre des paramètres tels que le sens et/ou la direction de la recherche ( complément d'informations). La méthode find renvoie la première occurrence qu'elle trouve. Il nous suffit donc de chercher: quoi: "n'importe quoi", ou: "colonne(3)" (= colonne C), Direction: "par colonnes" sens: "vers le haut" (= précédent) En fait, nous allons ici reproduire la méthode End(xlUp) grâce à Find, en cherchant la première cellule "remplie" de notre colonne. Ce qui nous donne, en VBA: Dim Ligne As Long Ligne = Columns(3)("*",,,, xlByColumns, xlPrevious) + 1 Remarques: Comme les manières de faire précédentes, il convient d'ajouter 1 pour obtenir le numéro de la première ligne vide.