Ligne code vers fonction

Le
milloche
Bonjour
Je voudrais remplacer une macro d'une seule ligne par une fonction à mettre en W1
Je patauge
Range("$W$1")=Range("W65536").End(Xlup).value
Eh oui, c'est tout.
Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #18984781
Salut à toi

Dans un module standard mets ce code :

Function Calcule(Cellule As Range)
Calcule = Range(Cells(65536, Cellule.Column).Address).End(xlUp).Value
End Function

En W1 insert cette fonction en la choisissant comme cellule

La valeur de W1 prendra la valeur de la première cellule non vide de la
colonne W en partant du bas

Celà devrait convenir
Dis moi !!!!
milloche
Le #18985331
Salut FFO
J'ai un peu chiotté pour l'insertion, quand je me suis apercu que ta fonction apparait maintenant
dans les fonctions excel. C'est donc règlé de ce coté.
Mais si je modifie mes données, ma W1 ne change pas de valeur, alors que la dernière cellule de la
colonne W change, elle (c'est une formule) alors cà va pas. Un recalcul par F9 ne change rien.
<]:o))

"FFO"
Salut à toi

Dans un module standard mets ce code :

Function Calcule(Cellule As Range)
Calcule = Range(Cells(65536, Cellule.Column).Address).End(xlUp).Value
End Function

En W1 insert cette fonction en la choisissant comme cellule

La valeur de W1 prendra la valeur de la première cellule non vide de la
colonne W en partant du bas

Celà devrait convenir
Dis moi !!!!



FFO
Le #18985621
Rebonjour à toi

J'ai fais une petite erreur dans l'utilisation de cette fonction

Dans la cellule W1 quand tu inserres cette fonction comme choix de cellules
prends la colonne entière

J'ai fais des essais
Même si elle possède une formule la valeur de la dernière cellule de cette
colonne est bien rapportée en W1

Fais des essais et dis moi !!!!!
MichDenis
Le #18985961
Si ta colonne contient des données numériques :

=RECHERCHE(9^9;W:W)
Évidemment, cela suppose que tu as au moins une donnée
dans ta colonne pour ne pas avoir une référence circulaire

Si ta colonne contient de l'alphanumérique :
Une formule de Daniel Maher
=RECHERCHE(2;1/NON((Plage="")+ESTNUM(Plage));Plage)




"milloche" u$
Bonjour
Je voudrais remplacer une macro d'une seule ligne par une fonction à mettre en W1
Je patauge
Range("$W$1")=Range("W65536").End(Xlup).value
Eh oui, c'est tout.
Merci
isabelle
Le #18986591
bonjour Ffo,

Function Calcule(Cellule As Range)
Application.Volatile
Calcule = Range(Cells(65536, Cellule.Column).Address).End(xlUp).Value
End Function

isabelle

FFO a écrit :
Rebonjour à toi

J'ai fais une petite erreur dans l'utilisation de cette fonction

Dans la cellule W1 quand tu inserres cette fonction comme choix de cellules
prends la colonne entière

J'ai fais des essais
Même si elle possède une formule la valeur de la dernière cellule de cette
colonne est bien rapportée en W1

Fais des essais et dis moi !!!!!




Jacky
Le #18986581
Bonjour,
....remplacer une macro d'une seule ligne par une fonction ....


'-----------------
Function Calcule()
Application.Volatile
If Range("w" & Cells(Rows.Count, "w").End(3).Row).Address = "$W$1" Then Exit
Function
Calcule = Range("w" & Cells(Rows.Count, "w").End(3).Row).Value
End Function
'----------------
Dans une cellule
Êlcule()

--
Salutations
JJ


"milloche" u$
Bonjour
Je voudrais remplacer une macro d'une seule ligne par une fonction à
mettre en W1
Je patauge
Range("$W$1")=Range("W65536").End(Xlup).value
Eh oui, c'est tout.
Merci



FFO
Le #18986831
Bonjour isabelle
Sympa ta suggestion !!!!
Tous les jours j'apprends
Ma solution effectivement nécessitait pour son fonctionnement d'attribuer
toute la colonne à la variable Cellule
La tienne évite cet inconvénient et de n'attribuer qu'une cellule de la
colonne
A t'elle d'autres avantages ????
Juste pour profiter au maximum de tes connaissances en ce domaine

Merci

"isabelle" wrote:

bonjour Ffo,

Function Calcule(Cellule As Range)
Application.Volatile
Calcule = Range(Cells(65536, Cellule.Column).Address).End(xlUp).Value
End Function

isabelle

FFO a écrit :
> Rebonjour à toi
>
> J'ai fais une petite erreur dans l'utilisation de cette fonction
>
> Dans la cellule W1 quand tu inserres cette fonction comme choix de cellules
> prends la colonne entière
>
> J'ai fais des essais
> Même si elle possède une formule la valeur de la dernière cellule de cette
> colonne est bien rapportée en W1
>
> Fais des essais et dis moi !!!!!
>
>



milloche
Le #18986761
Ya du monde dans le train !
Voici ce que j'ai trouvé, je jure Isabelle que j'ai pas copié !
Il me faut simplement à moi plus de temps qu'a vous.
Voici mon bidouillage sur la fonction de FFO

Function Calcule() '(Cellule As Range) Inclu la fonction dans la liste Excel, pas besoin
Application.Volatile ' Appris de Denis il y a quelques temps déjà
'Calcule = Range(Cells(65536, Cellule.Column).Address).End(xlUp).Value (De FFO)
'Si je comprend bien, cette ligne rend la fonction valable qu'importe la colonne ou elle est.
Calcule = Range("W65536").End(xlUp).Value ' Bidouillage perso de la fonction de FFO
End Function

<]:o))

"Jacky"
Bonjour,
....remplacer une macro d'une seule ligne par une fonction ....


'-----------------
Function Calcule()
Application.Volatile
If Range("w" & Cells(Rows.Count, "w").End(3).Row).Address = "$W$1" Then Exit Function
Calcule = Range("w" & Cells(Rows.Count, "w").End(3).Row).Value
End Function
'----------------
Dans une cellule
Êlcule()

--
Salutations
JJ


"milloche" u$
Bonjour
Je voudrais remplacer une macro d'une seule ligne par une fonction à mettre en W1
Je patauge
Range("$W$1")=Range("W65536").End(Xlup).value
Eh oui, c'est tout.
Merci







isabelle
Le #18986751
bonjour Ffo,

cette méthode sert uniquement au recalcule de la function, chaque fois
qu'un calcul est effectué dans une cellule quelconque de la feuille de
calcul
si on omet cette méthode le reclacul s'effectue uniquement au changement
d'une des variables d'entrée de la formule ou à l'édition de cette formule

isabelle

FFO a écrit :
Bonjour isabelle
Sympa ta suggestion !!!!
Tous les jours j'apprends
Ma solution effectivement nécessitait pour son fonctionnement d'attribuer
toute la colonne à la variable Cellule
La tienne évite cet inconvénient et de n'attribuer qu'une cellule de la
colonne
A t'elle d'autres avantages ????
Juste pour profiter au maximum de tes connaissances en ce domaine

Merci

"isabelle" wrote:


bonjour Ffo,

Function Calcule(Cellule As Range)
Application.Volatile
Calcule = Range(Cells(65536, Cellule.Column).Address).End(xlUp).Value
End Function

isabelle

FFO a écrit :

Rebonjour à toi

J'ai fais une petite erreur dans l'utilisation de cette fonction

Dans la cellule W1 quand tu inserres cette fonction comme choix de cellules
prends la colonne entière

J'ai fais des essais
Même si elle possède une formule la valeur de la dernière cellule de cette
colonne est bien rapportée en W1

Fais des essais et dis moi !!!!!









Jacky
Le #18987001
Re..
Ceci est valable pour obtenir le résultat de n'importe quelle colonne dans
n'importe quelle cellule et pour xl2007 (non limité à 65536)
'---------
Function Calcule(col As Range)
Application.Volatile
If Cells(Rows.Count, col.Column).End(3).Row = 1 Then Exit Function
Calcule = Cells(Cells(Rows.Count, col.Column).End(3).Row, col.Column).Value
End Function
'----------
dans une cellule
Êlcule(X:X)
ou juste la selection d'une cellule de la colonne
Êlcule(W1)

--
Salutations
JJ


"milloche" u0%
Ya du monde dans le train !
Voici ce que j'ai trouvé, je jure Isabelle que j'ai pas copié !
Il me faut simplement à moi plus de temps qu'a vous.
Voici mon bidouillage sur la fonction de FFO

Function Calcule() '(Cellule As Range) Inclu la fonction dans la liste
Excel, pas besoin
Application.Volatile ' Appris de Denis il y a quelques temps déjà
'Calcule = Range(Cells(65536, Cellule.Column).Address).End(xlUp).Value (De
FFO)
'Si je comprend bien, cette ligne rend la fonction valable qu'importe la
colonne ou elle est.
Calcule = Range("W65536").End(xlUp).Value ' Bidouillage perso de la
fonction de FFO
End Function

<]:o))

"Jacky"
Bonjour,
....remplacer une macro d'une seule ligne par une fonction ....


'-----------------
Function Calcule()
Application.Volatile
If Range("w" & Cells(Rows.Count, "w").End(3).Row).Address = "$W$1" Then
Exit Function
Calcule = Range("w" & Cells(Rows.Count, "w").End(3).Row).Value
End Function
'----------------
Dans une cellule
Êlcule()

--
Salutations
JJ


"milloche" u$
Bonjour
Je voudrais remplacer une macro d'une seule ligne par une fonction à
mettre en W1
Je patauge
Range("$W$1")=Range("W65536").End(Xlup).value
Eh oui, c'est tout.
Merci











Publicité
Poster une réponse
Anonyme