la dernière vraie valeur

Le
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 5
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Misange
Le #4508551
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


Boisgontier
Le #4508521
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" %
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


MichDenis
Le #4508501
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" %
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
MichDenis
Le #4508491
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"
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" %
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
Misange
Le #4508481
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" %
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






isabelle
Le #4508471
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


Youky
Le #4508461
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"
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" %
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




Misange
Le #4508451
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" %
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
Le #4508441
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"
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" %
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
Le #4508431
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"
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" %
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








Publicité
Poster une réponse
Anonyme