determiner n° de la dernière ligne contenant une info du type année

  • Initiateur de la discussion Initiateur de la discussion loiclass
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

loiclass

XLDnaute Occasionnel
Bonjour,

Je cherche à déterminer le n° de la dernière ligne contenant une valeur du type 2012 ou 01/01/2012.

Je sais obtenir le numéro de ligne si elle est non vide, mais je ne sais pas comment y intégrer une notion de format.
Merci de votre aide.

Voici la formule utilisée =MAX((A1:A100<>"")*LIGNE(A1:A100)).

Savez vous comment l’écrive en code VBA?
 
Re : determiner n° de la dernière ligne contenant une info du type année

Bonjour Loiclass,

Pour determiner la dernière cellule non vide en VBA il suffit d'utiliser :

Dim DernLigne As Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row

Ne reste plus qu'à faire un teste sur le format des cellules avec une boucle, ce qui pourrait donner :

Code:
Sub test()

Dim DernLigne As Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row 'on cherche la dernière cellule non vide de la colonne A

For i = DernLigne To 1 Step -1 'on part de la dernière cellule et on remonte

If Range("A" & i).NumberFormat = "m/d/yyyy" Then 'si le format est dd/mm/yyyy
    MsgBox "Le numéro de la dernière ligne contenant une année est " & i 'alors on affiche une message box
    Exit For
End If

Next i

End Sub

A+ 🙂
 
Re : determiner n° de la dernière ligne contenant une info du type année

Bonjour à tous,

La solution avec le code de dudule est plus efficace... Une solution en formules utilisant une colonne intermédiaire... Dans la cellule B1 (par exemple) on saisit la formule suivante:
Code:
=CELLULE("format";A1)
et on recopie vers le bas...
On saisit, dans une autre cellule, la formule matricielle suivante :
Code:
=MAX(($B$1:$B$100=TRANSPOSE({"D1";"D2";"D3";"D4";"D5"}))*LIGNE($B$1:$B$100))

NB: Voir les formats de date pour la fonction CELLULE

Cordialement
 
Re : determiner n° de la dernière ligne contenant une info du type année

Merci à dudule et hbenalia.
Je garde la solution de dudule. Je l'intègre dans fichier et vais essayé d'y apporter des modifs.



Pour info si ça intéresse quelqu'un voici mon code final, j'y ai ajouté une insertion de ligne après la dernière ligne saisie.

Sub numligne()


Dim DernLigne As Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row 'on cherche la dernière cellule non vide de la colonne A

For i = DernLigne To 1 Step -1 'on part de la dernière cellule et on remonte

If Range("A" & i).NumberFormat = "m/d/yyyy" Then 'si le format est dd/mm/yyyy
MsgBox "Le numéro de la dernière ligne contenant une année est " & i 'alors on affiche une message box

Rows(i + 1).EntireRow.Insert 'inserer une ligne vide aprés la dernière ligne avec format dd/mm/yyyy

Exit For

End If

Next i


End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
582
Réponses
2
Affichages
1 K
Retour