IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Userform et code exécutable


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut Userform et code exécutable
    Bonjour,

    A l'origine j'ai deux procédures, la procédure UserForm et une autre que j'appelle mon code exécutable

    La 1ere (Userform) démarre du commentaire suivant:
    ' Declaration de mon UserForm

    Jusqu'au commentaire :
    ' Fin de declaration de mon UserForm

    La 2eme (code exécutable) démarre du commentaire :
    ' Declaration de mon code exécutable

    Jusqu'au commentaire :
    ' Fin de declaration de mon code executable

    Le but c'est de faire fonctionner l'ensemble dans une même procédure (la 1er et la 2eme)

    Aujourd'hui j'arrive à faire fonctionner chaque procédure mais séparément

    comment assembler les deux dans une seule procédure

    Pour info :
    Le userform seul fonctionne bien ainsi que le code exécutable

    Je vous mets ma procédure qui ne fonctionne pas lorsque je met les deux ensembles :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ' Declaration de mon UserForm 
    ' 
    ' 
    Private Sub CommandButton2_Click() 
    Unload Me 
    End Sub 
    Private Sub TextBox1_Change() 
    'Saisie de la date 
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub CommandButton1_Click() 
    Dim Flag As Boolean 
    Dim I As Byte 
    'Résultat de la Saisie date sous la forme JJMMAA 
    'Et du choix du fichier 
    For I = 1 To 2 
    If Me.Controls("OptionButton" & I) Then Flag = True 
    Next I 
    If Not Flag Then 
    MsgBox "Veuillez sélectionner un fichier!" 
    Exit Sub 
    End If 
     
    Variable1 = TextBox1 
    Variable2 = IIf(Me.OptionButton1, Me.OptionButton1.Caption, Me.OptionButton2.Caption) 
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_Click() 
     
     
    End Sub 
    ' 
    ' 
    ' Fin de declaration de mon UserForm 
    ' 
    '
    '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     Declaration de mon code executable 
    ' 
    Option Explicit 
    Dim Fso As FileSystemObject 
     
    'DETAIL DE L'ADRESS 
    Type Export_csv 
    Colonne_A As String 
    Colonne_B As String 
    Colonne_C As String 
    Colonne_D As String 
    Colonne_E As String 
    Colonne_F As String 
    Colonne_G As String 
    Colonne_H As String 
    Colonne_I As String 
    Colonne_J As String 
    Colonne_K As String 
    Colonne_L As String 
    Colonne_M As String 
    Colonne_N As String 
    Colonne_O As String 
    Colonne_P As String 
    Colonne_Q As String 
    Colonne_R As String 
    End Type 
     
    'DETAIL DU FICHIER 
    Public Detail_Export_csv As Export_csv 
     
    'EMPLACEMENT DU FICHIER A CREER 
    Public Emplacement_Fichier As String 
     
    Private Function Ecriture_Entete() As Boolean 
     
    Set Fso = New FileSystemObject 
     
    Emplacement_Fichier = "C:\monrep\monfic.csv" 
     
    On Error Resume Next 
    If Fso.FileExists(Emplacement_Fichier) = True Then 
    Fso.DeleteFile Emplacement_Fichier, True 
    End If 
    On Error GoTo 0 
     
    Set Fso = Nothing 
     
    On Error Resume Next 
    Open Emplacement_Fichier For Output As #1 
    Select Case Err.Number 
    Case Is = 0 
    Ecriture_Entete = True 
    Case 71 
    MsgBox "Le support n'est pas accessible.", vbExclamation, "Message" 
    Ecriture_Entete = False 
    Case Else 
    MsgBox Err.Description, vbExclamation, "Message" 
    Ecriture_Entete = False 
    End Select 
    On Error GoTo 0 
     
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Private Function Ecriture_Detail(Colonne_A As String, Colonne_B As String, Colonne_C As String, Colonne_D As String, Colonne_E As String, Colonne_F As String, Colonne_G As String, Colonne_H As String, Colonne_I As String, Colonne_J As String, Colonne_K As String, Colonne_L As String, Colonne_M As String, Colonne_N As String, Colonne_O As String, Colonne_P As String, Colonne_Q As String, Colonne_R As String) As Boolean 
     
    Ecriture_Detail = False 
     
    Detail_Export_csv.Colonne_A = Colonne_A 
    Detail_Export_csv.Colonne_B = Colonne_B 
    Detail_Export_csv.Colonne_C = Colonne_C 
    Detail_Export_csv.Colonne_D = Colonne_D 
    Detail_Export_csv.Colonne_E = Colonne_E 
    Detail_Export_csv.Colonne_F = Colonne_F 
    Detail_Export_csv.Colonne_G = Colonne_G 
    Detail_Export_csv.Colonne_H = Colonne_H 
    Detail_Export_csv.Colonne_I = Colonne_I 
    Detail_Export_csv.Colonne_J = Colonne_J 
    Detail_Export_csv.Colonne_K = Colonne_K 
    Detail_Export_csv.Colonne_L = Colonne_L 
    Detail_Export_csv.Colonne_M = Colonne_M 
    Detail_Export_csv.Colonne_N = Colonne_N 
    Detail_Export_csv.Colonne_O = Colonne_O 
    Detail_Export_csv.Colonne_P = Colonne_P 
    Detail_Export_csv.Colonne_Q = Colonne_Q 
    Detail_Export_csv.Colonne_R = Colonne_R 
     
     
    On Error Resume Next 
    Print #1, Detail_Export_csv.Colonne_A & ";" & Detail_Export_csv.Colonne_B & ";" & Detail_Export_csv.Colonne_C & ";" & Detail_Export_csv.Colonne_D & ";" & Detail_Export_csv.Colonne_E & ";" & Detail_Export_csv.Colonne_F & ";" & Detail_Export_csv.Colonne_G & ";" & Detail_Export_csv.Colonne_H & ";" & Detail_Export_csv.Colonne_I & ";" & Detail_Export_csv.Colonne_J & ";" & Detail_Export_csv.Colonne_K & ";" & Detail_Export_csv.Colonne_L & ";" & Detail_Export_csv.Colonne_M & ";" & Detail_Export_csv.Colonne_N & ";" & Detail_Export_csv.Colonne_O & ";" & Detail_Export_csv.Colonne_P & ";" & Detail_Export_csv.Colonne_Q & ";" & Detail_Export_csv.Colonne_R 
    If Err.Number = 0 Then 
    Ecriture_Detail = True 
    Else 
    Ecriture_Detail = False 
    End If 
    On Error GoTo 0 
     
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Ecriture_Fin() 
     
    Close #1 
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    Public Sub Formatage_Cellule_10_Caractères() 
     
    Call Ecriture_Entete 
     
    Dim Colonne_A As String 
    Dim Colonne_B As String 
    Dim Colonne_C As String 
    Dim Colonne_D As String 
    Dim Colonne_E As String 
    Dim Colonne_F As String 
    Dim Colonne_G As String 
    Dim Colonne_H As String 
    Dim Colonne_I As String 
    Dim Colonne_J As String 
    Dim Colonne_K As String 
    Dim Colonne_L As String 
    Dim Colonne_M As String 
    Dim Colonne_N As String 
    Dim Colonne_O As String 
    Dim Colonne_P As String 
    Dim Colonne_Q As String 
    Dim Colonne_R As String 
     
    Dim I As Integer 
    Dim j As Integer 
     
    I = 1 
     
    Do Until ActiveSheet.Cells(I, 1).Value = "" 
    For j = 1 To 18 
    Select Case j 
    Case 1 
    Colonne_A = ActiveSheet.Cells(I, j).Value 
    Case 2 
    Colonne_B = ActiveSheet.Cells(I, j).Value 
    Case 3 
    Colonne_C = String(10 - Len(ActiveSheet.Cells(I, j).Value), "0") & ActiveSheet.Cells(I, j).Value 
    Case 4 
    Colonne_D = ActiveSheet.Cells(I, j).Value 
    Case 5 
    Colonne_E = ActiveSheet.Cells(I, j).Value 
    Case 6 
    Colonne_F = ActiveSheet.Cells(I, j).Value 
    Case 7 
    Colonne_G = ActiveSheet.Cells(I, j).Value 
    Case 8 
    Colonne_H = ActiveSheet.Cells(I, j).Value 
    Case 9 
    Colonne_I = ActiveSheet.Cells(I, j).Value 
    Case 10 
    Colonne_J = ActiveSheet.Cells(I, j).Value 
    Case 11 
    Colonne_K = ActiveSheet.Cells(I, j).Value 
    Case 12 
    Colonne_L = ActiveSheet.Cells(I, j).Value 
    Case 13 
    Colonne_M = ActiveSheet.Cells(I, j).Value 
    Case 14 
    Colonne_N = ActiveSheet.Cells(I, j).Value 
    Case 15 
    Colonne_O = ActiveSheet.Cells(I, j).Value 
    Case 16 
    Colonne_P = ActiveSheet.Cells(I, j).Value 
    Case 17 
    Colonne_Q = ActiveSheet.Cells(I, j).Value 
    Case 18 
    Colonne_R = ActiveSheet.Cells(I, j).Value 
     
    End Select 
    Next j 
     
    If Ecriture_Detail(Colonne_A, Colonne_B, Colonne_C, Colonne_D, Colonne_E, Colonne_F, Colonne_G, Colonne_H, Colonne_I, Colonne_J, Colonne_K, Colonne_L, Colonne_M, Colonne_N, Colonne_O, Colonne_P, Colonne_Q, Colonne_R) = False Then 
    Exit Do 
    End If 
     
    I = I + 1 
    Loop 
     
     
    Call Ecriture_Fin 
     
    ' Fin de declaration de mon code executable
     
    End Sub

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour en mettant ca a la suite ca ne peu pas fonctionner, le option explicite et la déclaration de variable (qui ne sont pas déclaré dans une fonction) doivent être en tout début de module

    commence par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Option Explicit 
    Dim Fso As FileSystemObject 
     
    'DETAIL DE L'ADRESS 
    Type Export_csv 
    Colonne_A As String 
    Colonne_B As String 
    Colonne_C As String 
    Colonne_D As String 
    Colonne_E As String 
    Colonne_F As String 
    Colonne_G As String 
    Colonne_H As String 
    Colonne_I As String 
    Colonne_J As String 
    Colonne_K As String 
    Colonne_L As String 
    Colonne_M As String 
    Colonne_N As String 
    Colonne_O As String 
    Colonne_P As String 
    Colonne_Q As String 
    Colonne_R As String 
    End Type 
     
    'DETAIL DU FICHIER 
    Public Detail_Export_csv As Export_csv 
     
    'EMPLACEMENT DU FICHIER A CREER 
    Public Emplacement_Fichier As String
    A près des trucs comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_Click() 
     
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox1_Change() 
    'Saisie de la date 
    End Sub
    Tu peux les virer puisque ce sont des procédure qui ne font rien

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut Userform et code exécutable
    Merci pour ton aide

    Pourrais tu me mettre un exemple stp de mise en forme

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Un exemple de mise en forme oui mais je n'utilise aps souvent de variables déclaré en tête de module

    Si tu essayé de mettre tes déclaration de variable et le option explicite tout en haut de ton module ensuite seulement tu enchaine les sub

    Un exemple de userform pour tester un petit truc amusant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Option Explicit
    Dim auj As String
     
    Private Sub UserForm_Initialize()
    auj = CStr(Date)
    End Sub
     
    Private Sub CommandButton1_Click()
    MsgBox "Nous sommes le " & auj
    End Sub
     
    Private Sub Frame1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Image1.Visible = False
    End Sub
     
    Private Sub Frame2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Image1.Visible = True
    End Sub
    Ta première ligne est OPTION EXPLICITE ensuite les déclaration (pour les variables communes a toutes les macro du module)

    après je ne sais pas si le type doit être avant ou après les déclaration de variables

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut UserForm et code eécutable
    Pour faire le test que tu ma donné il faut que je fasse un copier coller des lignes dans un nouveau module c'est ça?

    J'ai essayé en ouvrant excel puis Visual basic j'ai créer un nouveau module à partir de VBAProject (PERSO) et j'ai collé les lignes de ton exemple mais lorsque j'exécute le module par le bouton exécuter au niveau du panel du haut de Visual Basic il m'ouvre une fenêtre avec une liste de nom de macro .
    Par contre si avant je positionne mon curseur sur la ligne Private Sub CommandButton1_Click() la j'ai une fenêtre qui m'indique la date du jour j'appuie
    sur le ok et c'est fini il n'y a rien d'autre

    A mon avis j'ai du faire une erreur lors de la mise en place de ton exemple????

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    heu tu ne peux pas faire le teste que je t'ai donné ou alors il te faut un userform qui resemble au mien. Avec un bouton deux frame et une image. Puis mettre ce code dans le module du userform.
    Tu m'a demandé un exemple de mise en forme pas un code a tester

    Tu devrais te prendre le tuto sur les userform et celui sur les controle des user form et faire quelque test avant de continuer. C'est a mon sens la meilleur chose a faire. Ou alors tu fait ce que je t'ai dit de faire dans mon premier poste c'est a dire déplacer le code que j'ai cité en premier au tout début de ton module. En espérant que cela suffise

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut UserForm et code exécutable
    Merci pour l'aide

    J'ai contourner mon problème en utilisant un call qui fait appel à mon module qui contient mon code exécutable.

    Par contre est-il possible de récupérer les variables qui sont générées à partir de mon userform Variable1 et Variable2 pour les utilisées dans mon code exécutable

    J'ai essayer en ajoutant dans mon UserForm le sub suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub exe_module()
     
    Variable1 = TextBox1
    Variable2 = IIf(Me.OptionButton1, Me.OptionButton1.Caption, Me.OptionButton2.Caption)
     
    Call Module6.Formatage_Cellule_10_Caractères 'Variable1, Variable2'
    End Sub
    L'appel au module6 ce fait bien mais il me dit "variable non définie" a l'exécution du module 6????

    Comment faire pour gérer ces variables

  8. #8
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Un tuto qui devrais te donner des exempls pour avancer

    Les syntaxes de base


    Tu n'as as besoin de préciser le module si ta sub n'est pas privée
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private sub maprocedure()
    Le call n'est visiblement pas conseillé (mais chacun son avis la dessus)

    Tu doit déclarer tes variables en définissant la sub (en générale il vaux mieu toujours les déclarer)

    exemple
    dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sub test1()
    dim a as integer
    a = InputBox("Valeur de a?")
    test2 a
    msgbox a
    end sub
    danbs un autre module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub test2(a as integer)
    a=a*5
    end sub

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut UserForm et code exécutable
    Bonjour

    J'ai appliqué ton exemple et ca fonctionne bien avec une seule variable mais lorsque j'essaye de passer une seconde variable la patatrac alors en 1 comment
    d'écrire la ligne suivante avec plusieurs variables

    test2 a b

    Ensuite en 2 comment écrire le programme test2 avec ces variables??

    les programmes sont les mêmes que dans ton exemple (test1 et test2)

  10. #10
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Et la virgule? elle est ou ta virgule?
    Comme pour toutes les fonctions VBA il faut la virgule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sub test1()
    dim a as integer, b as integer
    a = InputBox("Valeur de a?")
    b = InputBox("Valeur de b?")
     
    test2 a, b
    msgbox a
     
    test2 a, 5 'tu peux directement envoyer des valeur sans apsser par des variables
    msgbox "b=5 => " & a
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub test2(a as integer, b as integer)
    a=a*b
    end sub

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut
    lorsque la valeur de <<var1>> et numérique il n'y a pas de problème, mais quand ma variable <<var1>> est égale <<AAAAAAAA>> il me renvoi l'anomalie suivante:

    erreur d'exécution '13'
    Incompatibilité de type
    Que faire????

    Ma ligne de commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim var1 as Integer 
    .
    .
    .

  12. #12
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    dim a as integer
    cela veux dire que a doit contenir un entier.
    Tu peux faire des test après la saisie
    avec isnumeric par exemple

    on va prendre un double
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    dim rep as string
    dim a as double
     
    do 
    rep=inputbox("Saisir un nombre : ")
    rep=replace(rep,",",".") 'on remplace une éventuelle virgule par un point
    'je en suis pas sur que cela soit nécessaire, je n'utilise pas la virgule mais le point pour les décimale
    if not isnumeric(rep) then
    msgbox "Valeur non numérique"
    end if
    loop while not isnumeric(rep)
     
    a=cdbl(rep)
    Je te laisse utiliser sur toutes les fonction que tu ne comprend pas, revient si ca ne suffit pas

    Pour les type de variable un petit tuto
    Utiliser les variables en VBA Excel

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut UserForm et code exécutable
    Slt,

    Désolé de te demander encore de l'aide mais même en utilisant F1 je ne m'en sort pas .

    Je génère deux variable dans un programme que je dois passer a un autre programme et la j'ai toujours une anomalie de type "erreur de compilation Type d'argument ByRef incompatible" ou bine le retour de ma msgbox et vide
    Je te donne les quelques lignes que je passe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim a as string 
    Dim b as string 
     
    a = ddddd
    b = vvvvv
     
    test2 a, b
     
    End sub
    Mon autre programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test2(a As String, b As String)
     
    Msgbox a
    Msgbox b
     
    End Sub
    J'ai essaye avec plusieurs type comme string ....etc mais ca ne passe pas
    quel type prendre pour que la msgbox fonctionne

    et la même chose mais avec les valeurs suivantes:

    a = zzzzz
    b = 1234

    Merci beaucoup pour ton aide

  14. #14
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Utilise les balise code s'il te plais c'est un horreur de lire un code qui n'en a pas(regarde le premier poste du forum)

    Ensuite met toi en option explicite car la tu aurais tout de suite vu ton erreur
    http://mhubiche.developpez.com/Access/variables/
    (ce n'est pas obligatoire mais quand on débute ca évite beaucoup d'erreur)

    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    a = "ddddd"
    b = "vvvvv"

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut UserForm et code exécutable
    Merci oui c'est la honte j'avais pas vu j'ai bien noté tes divers liens d'aide et je vais essayer de l'utiliser au plus possible

    Désolé encore pour la perte de temps .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code exécuté une seule au lancement de Tomcat
    Par DomIII dans le forum Struts 1
    Réponses: 6
    Dernier message: 19/11/2010, 21h07
  2. code exécutable sur Matlab
    Par maraval dans le forum MATLAB
    Réponses: 2
    Dernier message: 22/06/2010, 07h59
  3. dll SqlProcedure - code exécution
    Par cyrano_de_bergerac dans le forum C#
    Réponses: 1
    Dernier message: 29/09/2009, 19h28
  4. Intercepter un clic dans un userform pendant l'exécution d'une macro
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 05/04/2008, 14h40
  5. table+code+exécution code+resultat erroné
    Par pasco dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/11/2007, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo