Logo du forum
 

Forum TT-Hardware

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [VB / VBA / VBS] » [RÉSOLU] Erreur Type Argument ByRef
Login Mot de passe

1 visiteurs sur ce topic (0 membre(s), 1 invité(s) )


Auteur
Sujet : [RÉSOLU] Erreur Type Argument ByRef
chris lo
Tartineur TTH Officiel
Membre # 20006

 Avatar du membre
Lieu : Roazhon (Breizh)

Messages :
24048 (6.62 par jour)




Message du 03-06-2011 @ 16:25   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Bon ça m'énerve...
... déjà d'être un boulot au lieu de faire le pont :D
mais surtout à faire du Visual Basic et sur une "vieille" version en plus (ça c'est encore pire :sic: )

je parie que c'est enfantin à résoudre mais là je flanche :(

la compilation me balance une erreur de type argument "byRef" sur une de mes variables en appel de procédure.

voici l'appel :

Code :


Dim MaTable As Recordset
Dim Cle, Taille, Coeff_Impair, Coeff_Pair As Integer
Dim Champ As String

(...)

Call Calcul_Cle(Mid((MaTable.Fields(Champ).Value), 1, Taille), Taille, Coeff_Impair, Coeff_Pair, Cle)



la variable qui me bloque est "Cle"

voici la déclaration de ma procédure appelée :

Code :


Private Sub Calcul_Cle(Code_Modulo As String, ByVal Longueur As Integer, ByVal CIMP As Integer, ByVal CP As Integer, Controle As Integer)
(...)



en fait, j'avais cette erreur dès la 2ème variable mais je les déclare avec l'argument "ByVal" ce qui fonctionne :D

sauf qu'avec cet argument, ce sont des copies et on ne récupère pas les variables en sortie de procédure. Mon souci c'est que je dois absolument récupérer ma variable "Cle" (ou "Controle") modifiée... ce qui est impossible avec l'argument ByVal.

bref, moi pas comprendre là :( :bawling: :mur:

[message édité le 03-06-2011 @ 16:42 Par chris lo]
----------
Notebook Asus N55SF-S2190V | 15,6" WSXGA | Core i5-2430M | 2x4Go PC10600 | HDD 750Go 7200t/m | GeForce GT555M 2Go | USB 3.0 | Win7 64bits SP1
Tablette Samsung Galaxy Tab 2 7.0 8Go (JB 4.12) Phone Sony Xperia ZL 16Go (KK 4.44)
Consoles PS4 500Go | PS3 Fat 320Go & Slim 250Go, ID chris_lo | Xbox 360 60Go, GT chrislo56
A/V Hitachi 42PD7200 | Sony SCD-XA5400ES | Onkyo TX-SR805 | Celestion F-Series 5.0
- Haut de page -
icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : LLN

Messages :
22647 (4.35 par jour)


Score :

Message du 03-06-2011 @ 16:31   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Ben fait un function avec un return...
----------
"May He touch you with His Noodly Appendage"
- Haut de page -
chris lo
Tartineur TTH Officiel
Membre # 20006

 Avatar du membre
Lieu : Roazhon (Breizh)

Messages :
24048 (6.62 par jour)




Message du 03-06-2011 @ 16:41   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

c'est vrai, j'y ai pas pensé :smilejap:
mais je crains que le souci soit le même à la compilation :sic:


finalement j'ai trouvé (dans l'aide), et c'est très très con :D

il faut déclarer les variables sans type (donc en Variant) et laisser VB les "caster" lui même par rapport aux types des variables dans l'appel.

ça donne donc pour ma déclaration de procédure :

Code :


Private Sub Calcul_Cle(Code_Modulo As String, Longueur, CIMP, CP, Controle)



et là aucune erreur, le traitement marche :!!!:

y'a des fois, faut pas chercher à comprendre :mdri:

[message édité le 03-06-2011 @ 16:43 Par chris lo]
----------
Notebook Asus N55SF-S2190V | 15,6" WSXGA | Core i5-2430M | 2x4Go PC10600 | HDD 750Go 7200t/m | GeForce GT555M 2Go | USB 3.0 | Win7 64bits SP1
Tablette Samsung Galaxy Tab 2 7.0 8Go (JB 4.12) Phone Sony Xperia ZL 16Go (KK 4.44)
Consoles PS4 500Go | PS3 Fat 320Go & Slim 250Go, ID chris_lo | Xbox 360 60Go, GT chrislo56
A/V Hitachi 42PD7200 | Sony SCD-XA5400ES | Onkyo TX-SR805 | Celestion F-Series 5.0
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.031 secondes