Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Appel de fonction sur cellules

  • Initiateur de la discussion Initiateur de la discussion deniooo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

deniooo

XLDnaute Occasionnel
Bonjour,
J'ai un soucis sur l'utilisation des fonction sous excel.
Voici mon code de test :

Sub beurk()
Dim cel As Range
Dim cels As Range

Set plageC = Application.ActiveWorkbook.ActiveSheet.UsedRange.Columns("A").Cells
For Each cel In plageC
totop = cel.Select
toto (totop)
Next

End Sub

Function toto(ByVal n As Range)
n.Value = "gj"
toto = MsgBox("up")
End Function

Je met en variable les cellule d'une colonne, puis je les parcours et à chaque cellule j'essaye de lui appliquer la function toto.

Bon but ultime, n'est pas de conquérir le monde, mais d'appeler un fonction de test de cellule dans une boucle de parcours comme celle ci.

Or avec ce code ci excel me répond "objet requis" sur la ligne de mon appel de la fonction toto quand je lui passe totop en paramétre.

Quelqu'un peut m'expliquer en quoi je me plante ?
merci.
 
Re : Appel de fonction sur cellules

Bonjour denioo,

Une Sub (procédure) et une Function (fonction) sont différentes.
Une fonction a pour but de renvoyer une valeur en retour, et d'affecter la valeur de retour à son nom, du type :
toto = 1
Une procédure execute simplement une suite d'actions.
Ici, tu n'as pas besoin d'une fonction mais d'une procédure (Sub)
remplace Function par Sub et ça devrait s'arranger.
 
Re : Appel de fonction sur cellules


Merci pours ces explications, mmais mon but ici n'est pas de faire tourner ce code, ici c'est de comprendre la syntaxe function et son utilisation, je suis nouveau en VBA et je fonctionne par test avant d'implémenter dans mon code. Or ici c'est vraiment un test. Une sub bidon qui appel une fonction bidon histoire de comprendre.


Or ici normalement j'appel toto avec en paramétre un range totop.
à moins que cels.select ne renvoi pas un range. Peut-être avec ActiveCell..

Voila en gros je cherche à comprendre pas à faire fonctionner au mieux ce code bidon 😛
Je vais travailler sur des valeurs de cellules, donc je cherche à trouver la syntaxe juste pour appeler une fonction sur une cellule.
 
Re : Appel de fonction sur cellules

Mais si je n'ai pas une petite idée de ce que doit faire ta fonction, j'aurais du mal à te guider...

Une proposition :

Code:
Sub beurk()
Dim cel As Range
Dim cels As Range
Dim totop as range

Set plageC = Application.ActiveWorkbook.ActiveSheet.UsedRange.Columns("A").Cells
For Each cel In plageC
Set totop = cel
cel.value = toto(totop)
Next

End Sub

Function toto(ByVal n As Range) as String
toto = n.Address & "nj"
End Function
 
Re : Appel de fonction sur cellules

mon code final devra :
- ouvrir un fichier
- parcourir les feuille
- traiter les données suivant des conditions
- les remettres en forme selon les condition
- copier dans un autre fichier.

J'ai mon squelette de parcours, j'ai mes conditions j'ai presque tout.

Maintenant je veux mettre mes 15400000 conditions dans différentes fonction et les appeler dans le code.

Je suis nouveau en VBA donc j'essaye d'apprendre le plus possible. Et là j'en suis aux fonction 😛

Avec ton code je viens de piger que je ne partais pas de la bonne base, je doit appeler la fonction sur cel.value plutot que de traiter la value dans la fonction. C'est plus simple 🙂

Par contre j'ai essayer de faire ceci qui simplifie au max :

Code:
Sub beurk()
    Dim cel As Range
    Dim cels As Range

    Set plageC = Application.ActiveWorkbook.ActiveSheet.UsedRange.Columns("A").Cells
For Each cel In plageC
        cel.Value = toto(cel)
    Next cel
    
End Sub

Function toto(ByVal n As Range)
    toto = "gj mec"

End Function

Merci beaucoup j'ai compris grâce à toi 🙂

et donc pour que la fonction retourne quelque chose il faut mettre dans la fonction "nomdelafonction = XxxX"

nice !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…