Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

la dernière vraie valeur

41 réponses
Avatar
Misange
Coucou,
j'ai une plage de données, D9:Z58. Chaque cellule contient une formule
qui renvoie soit une valeur soit "".
Je cherche *en VBA* l'adresse de la dernière cellule de la plage qui
contient une valeur (non vide). Je ne trouve que des trucs hyper
compliqués. Qu'est ce qui vous semble le plus simple ?
marchi
--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

10 réponses

1 2 3 4 5
Avatar
Misange
piste :
par formule, recherche(9^9;D9:Z58) me renvoie la valeur de la cellule
que je cherche.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Coucou,
j'ai une plage de données, D9:Z58. Chaque cellule contient une formule
qui renvoie soit une valeur soit "".
Je cherche *en VBA* l'adresse de la dernière cellule de la plage qui
contient une valeur (non vide). Je ne trouve que des trucs hyper
compliqués. Qu'est ce qui vous semble le plus simple ?
marchi


Avatar
Boisgontier
Bonjour Misange,

Peut être ça?

Sub dernièreligne()
Set x = [D9:Z30].Find("*", , xlValues, , xlByRows, xlPrevious)
MsgBox x.Address
End Sub

Sub dernièreColonne()
Set x = [D9:Z30].Find("*", , xlValues, , xlByColumns, xlPrevious)
MsgBox x.Address
End Sub

JB
"Misange" a écrit dans le message de news:
%
Coucou,
j'ai une plage de données, D9:Z58. Chaque cellule contient une formule qui
renvoie soit une valeur soit "".
Je cherche *en VBA* l'adresse de la dernière cellule de la plage qui
contient une valeur (non vide). Je ne trouve que des trucs hyper
compliqués. Qu'est ce qui vous semble le plus simple ?
marchi
--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net


Avatar
MichDenis
une fonction personnalisée que tu mets dans un module standard :
Et dans la cellule tu écris : ÞrCell_NonVide(A1:G21)

Ceci ne renvoie pas la dernière cellule utilisée dans la feuille mais
la dernière cellule dont la valeur est différente de ""
'-----------------------
Function DerCell_NonVide(Plg As Range) As String
Dim DerLig As Long, DerCol As Integer
DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DerCol = Plg.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
DerCell_NonVide = Cells(DerLig, DerCol).Address
End Function
'-----------------------



"Misange" a écrit dans le message de news:
%
Coucou,
j'ai une plage de données, D9:Z58. Chaque cellule contient une formule
qui renvoie soit une valeur soit "".
Je cherche *en VBA* l'adresse de la dernière cellule de la plage qui
contient une valeur (non vide). Je ne trouve que des trucs hyper
compliqués. Qu'est ce qui vous semble le plus simple ?
marchi
--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
Avatar
MichDenis
Il y a une coquille dû à un copier coller

Remplace Cells par Plg dans cette ligne de code

DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row



"MichDenis" a écrit dans le message de news:

une fonction personnalisée que tu mets dans un module standard :
Et dans la cellule tu écris : ÞrCell_NonVide(A1:G21)

Ceci ne renvoie pas la dernière cellule utilisée dans la feuille mais
la dernière cellule dont la valeur est différente de ""
'-----------------------
Function DerCell_NonVide(Plg As Range) As String
Dim DerLig As Long, DerCol As Integer
DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DerCol = Plg.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
DerCell_NonVide = Cells(DerLig, DerCol).Address
End Function
'-----------------------



"Misange" a écrit dans le message de news:
%
Coucou,
j'ai une plage de données, D9:Z58. Chaque cellule contient une formule
qui renvoie soit une valeur soit "".
Je cherche *en VBA* l'adresse de la dernière cellule de la plage qui
contient une valeur (non vide). Je ne trouve que des trucs hyper
compliqués. Qu'est ce qui vous semble le plus simple ?
marchi
--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
Avatar
Misange
bonjour Jacques,
ce qu'il me faudrait c'est l'intersection des deux ;-)
autrement dit l'adresse de la cellule représentée par un x dans
l'exemple ci dessous


----------------------------
-----------
----------------------------------
--
-----------------------
----------------------- X


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour Misange,

Peut être ça?

Sub dernièreligne()
Set x = [D9:Z30].Find("*", , xlValues, , xlByRows, xlPrevious)
MsgBox x.Address
End Sub

Sub dernièreColonne()
Set x = [D9:Z30].Find("*", , xlValues, , xlByColumns, xlPrevious)
MsgBox x.Address
End Sub

JB
"Misange" a écrit dans le message de news:
%
Coucou,
j'ai une plage de données, D9:Z58. Chaque cellule contient une formule qui
renvoie soit une valeur soit "".
Je cherche *en VBA* l'adresse de la dernière cellule de la plage qui
contient une valeur (non vide). Je ne trouve que des trucs hyper
compliqués. Qu'est ce qui vous semble le plus simple ?
marchi
--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net






Avatar
isabelle
salut Misange,

If Not IsError([z]) Then Names("z").Delete
Names.Add Name:="z", RefersTo:="=MAX(IF(Feuil2!$D$9:$Z$58<>"""",ROW(Feuil2!$D$9:$Z$58)))"
MsgBox [z]


isabelle


Coucou,
j'ai une plage de données, D9:Z58. Chaque cellule contient une formule
qui renvoie soit une valeur soit "".
Je cherche *en VBA* l'adresse de la dernière cellule de la plage qui
contient une valeur (non vide). Je ne trouve que des trucs hyper
compliqués. Qu'est ce qui vous semble le plus simple ?
marchi


Avatar
Youky
Bonjour Misange,
A tester aussi....
C'est un plaisir de d'aider
Youky
For Each c In ActiveSheet.UsedRange.Cells
If c.HasFormula = True And c.Value <> "" Then x = c.Address
Next
MsgBox x

"MichDenis" a écrit dans le message de news:

une fonction personnalisée que tu mets dans un module standard :
Et dans la cellule tu écris : ÞrCell_NonVide(A1:G21)

Ceci ne renvoie pas la dernière cellule utilisée dans la feuille mais
la dernière cellule dont la valeur est différente de ""
'-----------------------
Function DerCell_NonVide(Plg As Range) As String
Dim DerLig As Long, DerCol As Integer
DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DerCol = Plg.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
DerCell_NonVide = Cells(DerLig, DerCol).Address
End Function
'-----------------------



"Misange" a écrit dans le message de news:
%
Coucou,
j'ai une plage de données, D9:Z58. Chaque cellule contient une formule
qui renvoie soit une valeur soit "".
Je cherche *en VBA* l'adresse de la dernière cellule de la plage qui
contient une valeur (non vide). Je ne trouve que des trucs hyper
compliqués. Qu'est ce qui vous semble le plus simple ?
marchi
--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net




Avatar
Misange
Bonjour Denis
Je voudrais récupérer l'adresse de cette cellule en VBA, pas dans la
feuille et je n'arrive pas à intégrer la notion de plage à la place de
cells avec find...

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

une fonction personnalisée que tu mets dans un module standard :
Et dans la cellule tu écris : ÞrCell_NonVide(A1:G21)

Ceci ne renvoie pas la dernière cellule utilisée dans la feuille mais
la dernière cellule dont la valeur est différente de ""
'-----------------------
Function DerCell_NonVide(Plg As Range) As String
Dim DerLig As Long, DerCol As Integer
DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DerCol = Plg.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
DerCell_NonVide = Cells(DerLig, DerCol).Address
End Function
'-----------------------



"Misange" a écrit dans le message de news:
%
Coucou,
j'ai une plage de données, D9:Z58. Chaque cellule contient une formule
qui renvoie soit une valeur soit "".
Je cherche *en VBA* l'adresse de la dernière cellule de la plage qui
contient une valeur (non vide). Je ne trouve que des trucs hyper
compliqués. Qu'est ce qui vous semble le plus simple ?
marchi


Avatar
Misange
là tu m'intéresses ;-)
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Il y a une coquille dû à un copier coller

Remplace Cells par Plg dans cette ligne de code

DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row



"MichDenis" a écrit dans le message de news:

une fonction personnalisée que tu mets dans un module standard :
Et dans la cellule tu écris : ÞrCell_NonVide(A1:G21)

Ceci ne renvoie pas la dernière cellule utilisée dans la feuille mais
la dernière cellule dont la valeur est différente de ""
'-----------------------
Function DerCell_NonVide(Plg As Range) As String
Dim DerLig As Long, DerCol As Integer
DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DerCol = Plg.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
DerCell_NonVide = Cells(DerLig, DerCol).Address
End Function
'-----------------------



"Misange" a écrit dans le message de news:
%
Coucou,
j'ai une plage de données, D9:Z58. Chaque cellule contient une formule
qui renvoie soit une valeur soit "".
Je cherche *en VBA* l'adresse de la dernière cellule de la plage qui
contient une valeur (non vide). Je ne trouve que des trucs hyper
compliqués. Qu'est ce qui vous semble le plus simple ?
marchi


Avatar
Misange
bonne idée mais c'est long de boucler, surtout quand il y a des tas de
lignes et de colonnes...
je voudrais éviter.
merci !
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour Misange,
A tester aussi....
C'est un plaisir de d'aider
Youky
For Each c In ActiveSheet.UsedRange.Cells
If c.HasFormula = True And c.Value <> "" Then x = c.Address
Next
MsgBox x

"MichDenis" a écrit dans le message de news:

une fonction personnalisée que tu mets dans un module standard :
Et dans la cellule tu écris : ÞrCell_NonVide(A1:G21)

Ceci ne renvoie pas la dernière cellule utilisée dans la feuille mais
la dernière cellule dont la valeur est différente de ""
'-----------------------
Function DerCell_NonVide(Plg As Range) As String
Dim DerLig As Long, DerCol As Integer
DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DerCol = Plg.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
DerCell_NonVide = Cells(DerLig, DerCol).Address
End Function
'-----------------------



"Misange" a écrit dans le message de news:
%
Coucou,
j'ai une plage de données, D9:Z58. Chaque cellule contient une formule
qui renvoie soit une valeur soit "".
Je cherche *en VBA* l'adresse de la dernière cellule de la plage qui
contient une valeur (non vide). Je ne trouve que des trucs hyper
compliqués. Qu'est ce qui vous semble le plus simple ?
marchi
--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net








1 2 3 4 5