A voir également:
- Pramettres en VB macro excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Mise en forme conditionnelle excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
12 réponses
nebulus
Messages postés
47
Date d'inscription
mardi 29 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2004
4
19 sept. 2003 à 10:41
19 sept. 2003 à 10:41
Salut,
Un petit exemple inutile mais juste pour illustrer ;-))
@+
Nebulus
En route pour de nouvelles aventures !
Un petit exemple inutile mais juste pour illustrer ;-))
Sub ma_sub_1() Call ma_sub_2("world") End Sub Sub ma_sub_2(mon_param) MsgBox ("hello " & mon_param) MsgBox (ma_func1(5, 9)) End Sub Function ma_func1(param1, param2) ma_func1 = param1 + param2 End Function
@+
Nebulus
En route pour de nouvelles aventures !
choubaka
Messages postés
39425
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
16 avril 2025
2 104
19 sept. 2003 à 10:51
19 sept. 2003 à 10:51
salut, petit exemple...
voilà, ça veut pas dire grand chose, mais c'est la technique...
Le nom des variables passées ne doit pas correspondre forcément au nom des arguments reçus, par contre le type des données doit être identique.
Il existe deux méthode de passage d'arguments, par référence et par valeur. Par référence étant la méthode par défaut, ce qui signifie que la procédure appelée peut modifier les arguments de la procédure appelante. L'autre méthode étant le passage par valeur, la procédure appelée ne peut pas modifier les arguments. La signature de la méthode est différente...
voilà 8)
ChoubaPostor 10000 :
Le soulèvement des modos.
Private Sub GetTotal() Dim curTotal As Currency Dim sngDisc As Single ................................ Call SalesTax(curTotal, sngDisc) End sub Public sub salesTax(curTotal As Currency, sngRateDisc As single) Dim intMsg As Integer ..................................... intMsg = MsgBox("Taxation Totale : " & curTotal) End sub
voilà, ça veut pas dire grand chose, mais c'est la technique...
Le nom des variables passées ne doit pas correspondre forcément au nom des arguments reçus, par contre le type des données doit être identique.
Il existe deux méthode de passage d'arguments, par référence et par valeur. Par référence étant la méthode par défaut, ce qui signifie que la procédure appelée peut modifier les arguments de la procédure appelante. L'autre méthode étant le passage par valeur, la procédure appelée ne peut pas modifier les arguments. La signature de la méthode est différente...
Public sub salesTax(ByVal curTotal As Currency, ByVal sngRateDisc As single)
voilà 8)
ChoubaPostor 10000 :
Le soulèvement des modos.
choubaka
Messages postés
39425
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
16 avril 2025
2 104
19 sept. 2003 à 10:53
19 sept. 2003 à 10:53
oups, sorry, j'ai été un peu lent sur le coup
ChoubaPostor 10000 :
Le soulèvement des modos.
ChoubaPostor 10000 :
Le soulèvement des modos.
bon ben ca marche pas terrible j'ai oublié un truc ?
Sub toto()
nom = "BX"
coment = "HS"
datage (nom_serveur)
End Sub
Function datage(veur As String)
For x = 2 To 100
If Cells(1, x).Value <> "" Then
If Cells(1, x).Value = veur Then
Cells(Day(Date) + 1, x).Value = Date
Cells(Day(Date) + 1, x).Select
If commentaire <> "" Then
Selection.Interior.ColorIndex = 37
End If
End If
End If
Next x
End Function
ca ca marche
Sub toto()
nom_serveur = "BX"
coment = "HS"
datage (nom,coment)
End Sub
Function datage(veur As String, commentaire As String)
For x = 2 To 100
If Cells(1, x).Value <> "" Then
If Cells(1, x).Value = veur Then
Cells(Day(Date) + 1, x).Value = Date
Cells(Day(Date) + 1, x).Select
If commentaire <> "" Then
Selection.Interior.ColorIndex = 37
End If
End If
End If
Next x
End Function
comment on fait pour passer 2 paramettres a une fonction ?
Sub toto()
nom = "BX"
coment = "HS"
datage (nom_serveur)
End Sub
Function datage(veur As String)
For x = 2 To 100
If Cells(1, x).Value <> "" Then
If Cells(1, x).Value = veur Then
Cells(Day(Date) + 1, x).Value = Date
Cells(Day(Date) + 1, x).Select
If commentaire <> "" Then
Selection.Interior.ColorIndex = 37
End If
End If
End If
Next x
End Function
ca ca marche
Sub toto()
nom_serveur = "BX"
coment = "HS"
datage (nom,coment)
End Sub
Function datage(veur As String, commentaire As String)
For x = 2 To 100
If Cells(1, x).Value <> "" Then
If Cells(1, x).Value = veur Then
Cells(Day(Date) + 1, x).Value = Date
Cells(Day(Date) + 1, x).Select
If commentaire <> "" Then
Selection.Interior.ColorIndex = 37
End If
End If
End If
Next x
End Function
comment on fait pour passer 2 paramettres a une fonction ?
choubaka
Messages postés
39425
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
16 avril 2025
2 104
19 sept. 2003 à 11:05
19 sept. 2003 à 11:05
ça ? ça marche?
ChoubaPostor 10000 :
Le soulèvement des modos.
datage (nom_serveur, coment)
ChoubaPostor 10000 :
Le soulèvement des modos.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oups erreur de nom de variables,
mais la ca marche pas si je mets un deuxieme paramettre
la ligne
datage(nom_serveur,coment) repond "syntaxe erreur"
alors qu'elle marche avec un seul des paramettres pourquoi ?
mais la ca marche pas si je mets un deuxieme paramettre
la ligne
datage(nom_serveur,coment) repond "syntaxe erreur"
alors qu'elle marche avec un seul des paramettres pourquoi ?
autant dire que
datage (nom_serveur, coment) -> syntaxe erreur
avec la ligne :
Function datage(veur As String, commentaire As String)
alors que datage (nom_serveur) marche avec la ligne
Function datage(veur As String)
donc je comprend pas pourquoi
datage (nom_serveur, coment) -> syntaxe erreur
avec la ligne :
Function datage(veur As String, commentaire As String)
alors que datage (nom_serveur) marche avec la ligne
Function datage(veur As String)
donc je comprend pas pourquoi
choubaka
Messages postés
39425
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
16 avril 2025
2 104
19 sept. 2003 à 11:15
19 sept. 2003 à 11:15
il est fort possible que le problème se trouve au coeur même de ta mfonction datage, dans ton premier essai où "commentaire" est testé, je ne vois pas à quoi celà fait référence. alors que dans le deuxième essai, commentaire est passé en argument, et là ça foire.. Je pense donc que le problème vient de là..
ChoubaPostor 10000 :
Le soulèvement des modos.
ChoubaPostor 10000 :
Le soulèvement des modos.
non c'est pas le probleme commentaire fixé a la main (donc 1 seul parametre) ca marche
si je passe le paramettre ca marche pas
c'est donc bien la syntaxe
nomdefonction(arg,arg) qui n'est pas bonne...
si je passe le paramettre ca marche pas
c'est donc bien la syntaxe
nomdefonction(arg,arg) qui n'est pas bonne...
nebulus
Messages postés
47
Date d'inscription
mardi 29 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2004
4
19 sept. 2003 à 11:34
19 sept. 2003 à 11:34
En déclarant la fonction comme ceci :
Function datage(veur, commentaire)
(donc sans les "as string") ça passe non ?
@+
Nebulus
En route pour de nouvelles aventures !
Function datage(veur, commentaire)
(donc sans les "as string") ça passe non ?
@+
Nebulus
En route pour de nouvelles aventures !
non plus
c'est pareil des que je tape
datage(XXXXXXX,YYYYYYY) ca repond syntaxe erreur
meme sans mettre de variable dedant mais directement des valeurs c'est pareil :
une function ne doit pas pouvoir se lancer comme une fonction
x=datage(tttt,fffff)
passe en syntaxe
mais biensur ne peut pas s'executer correctement
donc la syntaxe c'est autre chose .....
c'est pareil des que je tape
datage(XXXXXXX,YYYYYYY) ca repond syntaxe erreur
meme sans mettre de variable dedant mais directement des valeurs c'est pareil :
une function ne doit pas pouvoir se lancer comme une fonction
x=datage(tttt,fffff)
passe en syntaxe
mais biensur ne peut pas s'executer correctement
donc la syntaxe c'est autre chose .....
j'ai trouvé c'est comme ca
Function datage(serveur, commentaire)
For x = 2 To 100
If Cells(1, x).Value <> "" Then
If Cells(1, x).Value = serveur Then
Cells(Day(Date) + 1, x).Value = Date
Cells(Day(Date) + 1, x).Select
If commentaire <> "" Then
Selection.Interior.ColorIndex = 37
End If
End If
End If
Next x
End Function
Sub toto()
nom_serveur = "DI"
coment = "TEST"
Call datage(nom_serveur, coment)
End Sub
en fait c'est parceque cette merde d'excel ne sait pas appeler une fonction comme un mot clé...
apres la 11eme version ....
bref encore à cause de la logique M$ ...
Je veux rebosser sur des projets unix .....ouinnnnn....j'aurrai jamais du accepter de donner un coup de main sur ce tableau excel
Function datage(serveur, commentaire)
For x = 2 To 100
If Cells(1, x).Value <> "" Then
If Cells(1, x).Value = serveur Then
Cells(Day(Date) + 1, x).Value = Date
Cells(Day(Date) + 1, x).Select
If commentaire <> "" Then
Selection.Interior.ColorIndex = 37
End If
End If
End If
Next x
End Function
Sub toto()
nom_serveur = "DI"
coment = "TEST"
Call datage(nom_serveur, coment)
End Sub
en fait c'est parceque cette merde d'excel ne sait pas appeler une fonction comme un mot clé...
apres la 11eme version ....
bref encore à cause de la logique M$ ...
Je veux rebosser sur des projets unix .....ouinnnnn....j'aurrai jamais du accepter de donner un coup de main sur ce tableau excel