[Excel] Appel function et objet
Résolu
deniooo
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
deniooo Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
deniooo Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- [Excel] Appel function et objet
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Si et excel - Guide
- Appel privé - Guide
4 réponses
bonjour
Tu sélectionne une cellule qui est un objet et tu le définis comme un range : excel le trouve incohérent.
Tu sélectionne une cellule qui est un objet et tu le définis comme un range : excel le trouve incohérent.
Bonjour,
Ta macro déboguée,
Pour ta ligne activemachin.activemachin etc.. pas besoin d'enfoncer les portes ouvertes :D
A+
EDIT:
Quand tu sélectionne une colonne entière Cel renvoi l'adresse de la colonne et pas celle d'une cellule
Ta macro déboguée,
Pour ta ligne activemachin.activemachin etc.. pas besoin d'enfoncer les portes ouvertes :D
Sub Test() Dim cel As Range Dim Lig As Long Dim Col As Integer Col = ActiveCell.Column Lig = Range(Cells(1, Col), Cells(1, Col)).SpecialCells(xlCellTypeLastCell).Row Range(Cells(1, Col), Cells(Lig, Col)).Select For Each cel In Selection 'Une fonction doit être appellé soit par une variable ou par Call Call toto(cel) Next End Sub Function toto(ByRef n As Range) n.Value = "gj" toto = MsgBox("up") End Function
A+
EDIT:
Quand tu sélectionne une colonne entière Cel renvoi l'adresse de la colonne et pas celle d'une cellule
bonjour
Quand on utilise une fonction c'est pour exploiter le résultat et donc l'appel se fait :
résultat = fonction(paramètres)
Une fonction n'est pas faite pour faire du traitement d'affichage de message ou autre.
Si tu veux faire de l'affichage ou autre, utilises une procédure "sub" que tu appelles par call.
Quand on utilise une fonction c'est pour exploiter le résultat et donc l'appel se fait :
résultat = fonction(paramètres)
Une fonction n'est pas faite pour faire du traitement d'affichage de message ou autre.
Si tu veux faire de l'affichage ou autre, utilises une procédure "sub" que tu appelles par call.
Merci beaucoup pour vos remarques/aides
j'en ai tiré le code suivant :
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
j'ai réussi à faire ce dont j'avais besoin, je résonnais à l'envers !
(probléme résolu !)
j'en ai tiré le code suivant :
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
j'ai réussi à faire ce dont j'avais besoin, je résonnais à l'envers !
(probléme résolu !)