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
- Déplacer colonne excel - Guide
12 réponses
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 !
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.
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 ?
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
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...
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