Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Probleme en vba pour trouver dernière cellule remplie d'une ligne

  • Initiateur de la discussion Initiateur de la discussion donpopo
  • 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 !

donpopo

XLDnaute Occasionnel
Bonjour, le forum,

D'ordinaire, j'arrive à maîtriser la ligne de commande :
Columns.Count).End(xlToLeft).Value
Celle-ci me renvoie bien la valeur de la dernière cellule remplie d'une ligne; cette ligne est remplie manuellement par mes soins et ne comporte pas de formule.

Cependant, lorsque j'essaie de procéder de la même manière sur une ligne qui possède des formules dans chaque cellule, cette commande ne me renvoie rien.
Est-ce à cause des formules reprises dans ces cellules?
Si oui, y a t'il une solution à ce problème?

D'avance, merci de votre attention,

donpopo
 
Bonsoir

Voir ci-dessous
VB:
Sub test()
With ActiveSheet
m = "Colonne: " & .Cells(1, .Columns.Count).End(xlToLeft).Column & Chr(13)
m = m & "Adresse cellule: " & .Cells(1, .Columns.Count).End(xlToLeft).Address(0, 0)
End With
MsgBox m, vbInformation, "Test"
End Sub
 
Re

C'est juste une macro "illustrative"
Ensuite c'est à toi de voir quelle syntaxe te sera utile dans ton projet (et/ou comment l'adapter)

PS: Testé sur une feuille avec des formules sur la ligne 1
 
Bonjour donpopo, JM,

Voyez le fichier joint, la macro repère la dernière cellule ne contenant pas le texte vide "" :
VB:
Sub DerCol()
Dim i As Integer
With Feuil1.UsedRange.Rows(1)
    For i = .Columns.Count To 1 Step -1
        If .Cells(i) <> "" Then
            MsgBox "Dernière valeur non vide : " & .Cells(i) & " dans " & .Cells(i).Address(0, 0)
            Exit Sub
        End If
    Next
End With
MsgBox "Toutes les cellules sont vides ou contiennent le texte vide """"..."
End Sub
 

Pièces jointes

Re,

Address(0,0) permet d'afficher l'adresse d'une cellule sans les $
Ci-dessous un petit test "explicatif"
VB:
Sub test_2()
MsgBox Range("A1").Address(RowAbsolute = 1, columnAbsolute = 1, xlA1), vbExclamation
'qui peut se résumer en:
MsgBox Range("A1").Address(0, 0, xlA1), vbInformation
'ou encore en
MsgBox [A1].Address(0, 0), vbMsgBoxRight
End Sub
 
Dernière édition:
On peut éviter la boucle For en évaluant une formule Excel (matricielle) :
VB:
Sub DerCol()
Dim i As Integer
With Feuil1.UsedRange.Rows(1)
    i = Evaluate("MAX((" & .Address & "<>"""")*COLUMN(" & .Address & "))")
    If i Then MsgBox "Dernière valeur non vide : " & .Cells(i) & " dans " & .Cells(i).Address(0, 0) _
        Else MsgBox "Toutes les cellules sont vides ou contiennent le texte vide """"..."
End With
End Sub
Fichier (2).
 

Pièces jointes

- 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

  • Question Question
Microsoft 365 Recherche v + VBA
Réponses
3
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…