passage de cellules en argument de fonctions perso

fred Simons

XLDnaute Nouveau
Bonjour !

Je suis en train d'essayer de faire une fonction de recherche dans excel.

but: pour une cellule donnée, trouver dans la meme ligne, la valeur de la cellule précédente non vide. Cette cellule peut se trouver dans n'importe quelle colonne et il peut y en avoir plusieurs (mais je n'ai besoin que de la dernière).

je pensais faire une formule récursive me renvoyant, pour la cellule x,y , la valeur de la cellule x,y-1 si elle est non vide, sinon, la fonction s'appelle elle meme...

seulement, je n'arrive pas a passer les coordonnées de ma cellule de départ dans la fonction. le truc ultime c'est que si l'argument est vide, il prend la cellule active, sinon, il prend les arguments que je passe (probablement, x-1,y)

je ne vois rien dans le help qui puisse m'aider (a part le type de variable objet pour l'argument ?)

une idée ? une suggestion ?
 

Hervé

XLDnaute Barbatruc
Re:passage de cellules en argument de fonctions pe

bonsoir

pas sur d'avoir compris, mais essaye peut etre ceci :


Public Function recherchederniere()
Dim c As Range
Dim i As Integer

Set c = Application.Caller

For i = c.Column - 1 To 1 Step -1
       
If Not Cells(c.Row, i) = '' Then
                recherchederniere = Cells(c.Row, i)
               
Exit Function
       
End If
Next i

       
End Function


salut
 

fred Simons

XLDnaute Nouveau
Re:passage de cellules en argument de fonctions pe

Merci bcp Hervé!

Je vais tester ta solution dès ce soir (j'ai aussi vu un peu plus bas ds le forum, l'utilisation de la fonction find...)

je suis plutot surpris de ne voir aucune référence à ma cellule 'cible'.
Je vais donc donner un exemple :)

imagine que j'ai des données dans les cellules

a1 a2 a3 a8 a25

ma formule doit me renvoyer la valeur de a8 quand je l'applique sur a25 (comme par exemple, si je mets en b25 =recherchedernière(a25)). ou a3 si je l'applique sur a8 etc...

est ce plus clair ? :)

re merci bcp !

Message édité par: fred Simons, à: 20/06/2006 09:07
 

Hervé

XLDnaute Barbatruc
Re:passage de cellules en argument de fonctions pe

salut lucien

en effet, bien plus clair avec un exemple.


Public Function recherchederniere(cellule As Range)
Dim i As Integer

Application.Volatile

For i = cellule.Column - 1 To 1 Step -1
       
If Not Cells(cellule.Row, i) = '' Then
                recherchederniere = Cells(c.Row, i)
               
Exit Function
       
End If
Next i

           
End Function


comme ceci ?

salut
 

Hervé

XLDnaute Barbatruc
Re:passage de cellules en argument de fonctions pe

re

correction d'un bug :


Public Function recherchederniere(cellule As Range)
Dim i As Integer

Application.Volatile

For i = cellule.Column - 1 To 1 Step -1
       
If Not Cells(cellule.Row, i) = '' Then
                recherchederniere = Cells(cellule.Row, i)
               
Exit Function
       
End If
Next i

           
End Function


salut
 

Discussions similaires

Réponses
10
Affichages
251

Statistiques des forums

Discussions
312 555
Messages
2 089 563
Membres
104 214
dernier inscrit
palp