XL 2010 [Resolu]explication sur : trouve dernière ligne non vide même si formule

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
Je remet 100 balles dans le manicrack !! sur le sujet ; En faisant mon tri de fichier utile/pas utile je retombe sur un qu'un membre m'avait posté à l'époque sur le fait
de trouver la réelle ligne vide de données , Bof !! , car si l'on met une formule dans cette colonne et étirée jusqu'à xxx lignes le résultat est la dernière ligne avec formule
dans ce fichier 23
j'ai ajouté La fonction GetderligneTexte qui date d'une appli de 2011 c'est elle qui avait résolu mon souci ( j'étais encore sous 2007) par contre incorporée dans x exemples comme ici Cela ne Fonctionne PLUS ??? mais elle est toujours ok dans mon appli ... c'est là que je pige plus
Ce n'est pas moi qui ai écrit ces fonctions !!!
Avec le Xlup et col A , là aucun souci !!!! le Pb est en col B
Cela pourra peut être encore utile dans le futur donc si quelqu'un a l'explication ???
 

Pièces jointes

  • derlig- v2_tableau.xlsm
    40.2 KB · Affichages: 6

James007

XLDnaute Barbatruc
Bonsoir,

Avec Find, tu as toute la souplesse nécessaire ... puisque tu peux jouer avec xlFormulas ou avec xlValues pour la même colonne B ...

VB:
Sub DernLigne()
Dim der As Long
der = Worksheets("Feuil2").Columns("B:B").Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlFormulas).Row
MsgBox "Dernière Ligne dans la Feuille est " & der
End Sub
 

patricktoulon

XLDnaute Barbatruc
re bonsoir
salut
MsgBox Evaluate("=MATCH(""*"",B1:B1000,-1)")
voila ;)

ca te donne la ligne ou il y a soit le dernier résultat d'une formule ou la dernière valeur
0 te donne la première
-1 te donne la dernière

Allez une autre
celle ci te donne la dernière occurrence de "a" de la colonne
MsgBox Evaluate("MAX(ROW(B1:B30)*(B1:B30=""A""))")
 
Dernière édition:

herve62

XLDnaute Barbatruc
Supporter XLD
re bonsoir
Bon j'ai mis vos propositions en test voir le fichier (Patrick 1 sur 2 :); James 0:rolleyes:
Sinon , le pire .... cela veut dire que il y a 10 ans le vba n'était pas le même que maintenant ? , car je me rappelle bien avoir galéré des jours ici , et autres forum pour trouver une solution , et qu'à l'époque personne ne proposait ce genre de réponse !!
C'était juste par curiosité et certainement utile pour d'autres ,. Mais juste une instruction !!! ? je prends pour tester dans d'autres fichiers de mon grenier ... si je retrouve
Bonne soirée
 

Pièces jointes

  • derlig- v2_tableau.xlsm
    48.3 KB · Affichages: 8

patricktoulon

XLDnaute Barbatruc
re
evaluate existe depuis longtemps
ELLE sert a évaluer une expression en l’occurrence ici ( la retranscription d'une formule en vba)

disons que cette fonction est multitool ;)

avant on l'avait même en excel (formule EVALUER) disparue des listes de formuleS dans les MEnu mais toujours utilisable
 

patricktoulon

XLDnaute Barbatruc
re

Bon j'ai mis vos propositions en test voir le fichier (Patrick 1 sur 2
????????????????????????????????????

VB:
Private Sub CommandButton1_Click()
dl = Evaluate("=MATCH(""*"",B1:B1000,-1)")
MsgBox "Patrick 1  : " & dl
dlig = Evaluate("MAX(ROW(B1:B1000)*(B1:B1000=""A""))")
If dlig <> 20 Then MsgBox "Patrick 2 : " & dlig & Chr(13) & "??"
 
End Sub

il est certain que "dlig = Evaluate("MAX(ROW(B1:B1000)*(B1:B1000=""A""))")" dans ton dernier fichier en exemple ne donnera rien tu n'a pas de cells avec juste "A"
 

patricktoulon

XLDnaute Barbatruc
re
c'est moi qui fatigue ou quoi
qu'attends tu comme reponse ici
Capture.JPG


Bon j'ai mis vos propositions en test voir le fichier (Patrick 1 sur 2 :); James 0 :rolleyes:

patrick 2/2 ;hervé 0 pointé ;)
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 904
Membres
101 834
dernier inscrit
Jeremy06510