begin process at 2012 02 11 23:06:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

call procedure (urgent)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

call procedure (urgent)

mardi 29 juillet 2008 à 12:32:50 | call procedure (urgent)

inge68

Bonjour tout le monde, j'ai 2 procedure

Sub procedure1( )
dim a as long
a=3
call procedure2
msgbox("b=" & b & ".")     ' pareil il connait pas la valeur de b qui est declaré dans la procedure2
End

Sub procedure2( )
dim b as long
b= a +1                ' Ici il connait pas la valeur de a qui est pourtant declaré dans la procedure1
call procedure1
End

en fait quand je declare mon  coef dans une premiere procedure, ma deuxieme ne le reconnait pas.

y a t 'il un moyen pour communiquer entre les 2 procedures. ca parait simple mais j'ai galeré toute la matiné a trouver une solution

Merci d'avance
mardi 29 juillet 2008 à 12:50:10 | Re : call procedure (urgent)

Kevin.Ory

Réponse acceptée !
Mmh, tu est un débutant toi

Il faut passer des arguments et retourner une valeur :

Sub procedure1( )
    Dim a As Long
    Dim b As Long
    a = 3
    b = Call procedure2(a)
    msgbox("b=" & b & ".")  

End

Function procedure2(a As Long) As Long
    Dim b As Long
    b = a +1               

    procedure2 = a + 1
End

Une variable déclaré dans une fonction (ou procédure) n'est accessible que dans le bloc ou elle est déclaré (que dans la fonction donc)
Sinon, tu peux déclarer des variables en dehors des fonctions.

Private a As Long
Private b As Long

Sub procedure1( )
    a = 3
    Call procedure2
    msgbox("b=" & b & ".")  

End

Sub procedure2()
    b = a +1               

End

Ceci est pour du .NET, mais ça doit être du même pour VB6:
Private = accessible que dans la classe
Friend = accessible que dans le projet
Public = accessible depuis n'importe ou (depuis un autre programme)

mardi 29 juillet 2008 à 12:51:55 | Re : call procedure (urgent)

Kevin.Ory

Réponse acceptée !
Petite correction.

Function procedure2(a As Long) As Long
    Dim b As Long
    b = a +1               

    procedure2 = a + 1
End

devient

Function procedure2(a As Long) As Long
    Dim b As Long
    b = a +1               

    procedure2 = b
End

ou

Function procedure2(a As Long) As Long
    procedure2 = a + 1
End

mardi 29 juillet 2008 à 13:27:44 | Re : call procedure (urgent)

PCPT

Administrateur CodeS-SourceS
Réponse acceptée !
salut,

autre petite correction kevin ^^

Sub procedure1( )
    Dim a As Long
    Dim b As Long
    a = 3
    b = Call procedure2(a)
    msgbox("b=" & b & ".")  

End


devient

Sub procedure1( )
    Dim b As Long
    b = procedure2(3)
    msgbox "b=" & b & "."

End


(et en VB6 on passera BYVAL. contrairement à dotnet, VB6 est en BYREF par défaut)

Prenez un instant pour répondre à ce sondage svp  
mardi 29 juillet 2008 à 13:51:14 | Re : call procedure (urgent)

inge68

Merci pour votre aide c'est vrai ça fait pas longtemps que j'ai commencé à programmer en VBA.

bonne apres midi et encore une fois merci
mardi 29 juillet 2008 à 14:14:38 | Re : call procedure (urgent)

inge68

c'est toujours moi, en fait mon vrai probleme est le suivant l'exemple ci dessus etait juste un  exemple pour vous expliquer ce que je veux

j'ai deux procedure et non pas des fonctions et le probleme c'est que le coefficient commun entre les 2 et C.
la premiere : mise_en_place( )
...
Dim C as Long
       C = 5
        Do While Cells(LigneF2, ColonneF2) <> ""
              Sheets("Feuil1").Cells(LigneF1, ColonneF1).Value = Cells(LigneF2,ColonneF2).Value
              LigneF1 = LigneF1 + 1
              ColonneF2 = ColonneF2 + 4
              Call pivot
              C = C + 4
        Loop
 ......

pivot( )
.....
         For i = 1 To n      
                  Sheets("Feuil2").Cells(i, C).Value = x(i)  '(x est calculé auparavant mais c'est pas important dans à savoir)
         Next
.....

Comment je pourrais utiliser la valeur de C declaré dans la procedure mise en place dans la procedure Pivot.

Merci en core une fois

mardi 29 juillet 2008 à 14:29:52 | Re : call procedure (urgent)

PCPT

Administrateur CodeS-SourceS
Réponse acceptée !
... kevin a écrit ceci : Function procedure2(a As Long) As Long

donc ta pivot devient Sub Pivot(byval C as long)

et tu appelles par Call Pivot(C)

Prenez un instant pour répondre à ce sondage svp  
mardi 29 juillet 2008 à 16:02:03 | Re : call procedure (urgent)

inge68

OK Très bien ça marche nickel merci bcp c'est super merci!!!!
mardi 29 juillet 2008 à 18:32:10 | Re : call procedure (urgent)

Kevin.Ory

"autre petite correction kevin ^^"
C'est plus une simplification qu'une correction Je voulais garder les variables pour bien montrer le principe    Mais je suis évidement tout à fait d'accord
On peut même faire plus court:
Sub procedure1( )
    msgbox "b=" &
procedure2(3) & "."
End 

Bonne continuation inge68
mardi 29 juillet 2008 à 18:57:09 | Re : call procedure (urgent)

PCPT

Administrateur CodeS-SourceS
j'ai supprimé a par réflexe
la correction était dans le call

    b = Call procedure2(a)
noté :
   b = procedure2(3)

++ ;)

Prenez un instant pour répondre à ce sondage svp  

1 2

Cette discussion est classée dans : urgent, valeur, connait, procedure, call


Répondre à ce message

Sujets en rapport avec ce message

TRES TRES URGENT!!! Comment effectuer une série de requêtes sur un même recordset [ par Miguel ] Je veux pouvoir effectuer plusieurs requêtes sur un seul recordset (sans passer par une table intermédiaire).Par exemple: une premiere requete extrait Existence d'une valeur dans le regedit ( Urgent !!! ) [ par vbnewbie ] Boujour... je suis nouveau dans le monde du VB et j'aimerais savoir si il est possible de voir si une valeur dans le Regedit existe et de la cree si e URGENT !! Registre, valeurs, ... [ par Linuss ] Voilà, j'ai besoin de savoir comment : - Supprimer le contenu d'un dossier sauf un seul ou plusieurs fichiers... - Ajouter une valeur DWord, etc Urgent - VBA + SQL = Stored Procedure [ par Balck Pit ] Bonjour! J'aimerai savoir comment ouvrir une "Stored Procedure" appartenant à une base SQL lorsque je suis dans Access. C'est différent de VB puisq S.v.p c'est tres urgent pb avec DataReport [ par BRAHIM ] Bonjour, J'aimerais savoir comment faire pour recuperer la valeur d'un champ Sum ou agregat d'un objet command qui est lié a un objet command pere du pb URGENT en ACCESS [ par zeDevil ] Salut !un piti pb super urgent ke j'arrive po à m'en dépatouiller !Voila, g une table ACCESS dans laquelle il y a des données du type : valeur d'axes aidez moi svp URGENT !!!!!!!!!merci [ par T103 ] sous vbj ai un textbox , lorsque j ecris un truc dedans et que je clique sur un bouton la valeur qu il y a dans le textbox est transmise dans un combo URGENT!!!!!! récupérer une valeur d'un fichier .txt [ par ronnie95 ] slt a tous je debut en vb est j'aimerais récupérer une valeur dans un fichier .txt # -------------------------------------------CUSTOMER=000001PPPPPP= URGENT : Recuperation d'une valeur en SQL sous VBA [ par loic38760 ] Je travaille sur une base de données Access, j'aurais besoin de recuperer la valeur d'une requete SELECT.Voici ma requete : "SELECT Efficience FROM ST Valeur d'une procedure Stockée sous SqlServeur [ par xavier87 ] Bonjour,Voila mon pbQuand j'execute dans l'Analyseur de requete SQL EXEC @RC = [P_Gestion_TypeReglette] @Id_TypeReglette, @LibelleTypeReglette, @IdUse


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,295 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales