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 :

passage de valeur userform par variable [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Points : 116
    Points
    116
    Par défaut passage de valeur userform par variable
    Bonjour a tous, j'ai un petit problème,

    Dans un userform il se passe des truc( inintéressant pour le code)
    il y a un Checkbox, et quand la checkbox est validé ca envoie une valeur a une variable et sinon il envoie une autre valeur
    et je voudrais récupéré cette valeur mais je ne peux pas et ne sais pas comment y remédier.

    Voici mon code:
    Dans mon module j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Val_question As String
    Dans mon userform j'ai :

    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
    Private Sub CB_Valid_Click()
     
    If CB_remplacer.Value = True Then
    Val_question = 1
    Else
        If CB_Arreter.Value = True Then
        Val_question = 0
        Else
        Val_question = 2
        End If
    End If
     
    UserForm_Nrecep_double.Hide
     
    End Sub
    et quand je retourne dans mon module la variable ne prend pas en compte les changements qu'il y a eu sur ce boue de code

    je ne comprend pas

    Merci beaucoup

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour,test ça
    dans ton userform
    Code UserForm : 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
    Public Function RetourneQuestion() As String
    Me.Show vbModal
    On Error Resume Next
    retourquestion = Trim("" & Me.Tag)
    Unload Me
    End Function
    Private Sub CB_Valid_Click()
     
    If CB_remplacer.Value = True Then
    Me.Tag = 1
    Else
        If CB_Arreter.Value = True Then
        Me.Tag = 0
        Else
        Me.Tag = 2
        End If
    End If
     
    Me.Hide
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
    Val_question = UserForm_Nrecep_double.RetourneQuestion
    End Sub

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Points : 116
    Points
    116
    Par défaut
    Merci beaucoup de ta réponse, dans ton code il y a quelque chose qui ne fonctionne pas.

    tout d'abord,

    donc dans mon programme je passe d'abord par ici

    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
    Private Sub CB_Valid_Click()
     
    If CB_remplacer.Value = True Then
    Me.Tag = 1
    Else
        If CB_Arreter.Value = True Then
        Me.Tag = 0
        Else
        Me.Tag = 2
        End If
    End If
     
    Me.Hide
     
    End Sub
    Ensuite par la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function RetourneQuestion() As String
    'Me.Show vbModal
    On Error Resume Next
    retourquestion = Trim("" & Me.Tag)
    Unload Me
    End Function
    Puis je reviens dans mon code module puis quand j'arrive a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Val_question = UserForm_Nrecep_double.RetourneQuestion
    ca me renvoie sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function RetourneQuestion() As String
    'Me.Show vbModal
    On Error Resume Next
    retourquestion = Trim("" & Me.Tag)
    Unload Me
    End Function

    et ca me réouvre l'userform et a la fin ma valeur na toujours pas bougé..

    je fait quelque test mais ce n'est pas concluant pour l'instant

  4. #4
    Invité
    Invité(e)
    Par défaut
    quand tu a modifié ton UserForm cmme je te l'ai indiqué, dan ton programme la seule chose qui t’intéresse, c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Val_question = UserForm_Nrecep_double.RetourneQuestion

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Points : 116
    Points
    116
    Par défaut
    Oui je comprend mais quand je passe dessus, ca me renvoie vers la fonction que j'ai mis dans l'userform

    En fait je suis débile -_-

    pourquoi ne pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If UserForm_Nrecep_double.CB_remplacer.Value = True Then
    Val_question = 1
    Else
        If UserForm_Nrecep_double.CB_Arreter.Value = True Then
        Val_question = 0
        Else
        Val_question = 2
        End If
    End If
    Directement dans mon code du module..
    pourquoi je veux m'embêter la vie ?

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Points : 116
    Points
    116
    Par défaut
    Bonjour, j'ai un dernier petit soucis (enfin j'espère)

    Sur internet j'ai regarder comment quand je clic sur une cellule, celle-ci se voit mettre un X dedans( comme si elle était coché)

    mais tout les codes que je prend ne servent a rien.. je ne comprend pas pourquoi
    voici le code que j'ai pris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Range("A8:R8")) Is Nothing Then: Exit Sub
     If ActiveCell = "" Then
     ActiveCell = "X"
     ActiveCell.Font.Bold = True
     With Selection
     .HorizontalAlignment = xlCenter
     .VerticalAlignment = xlCenter
     End With
     Else
     ActiveCell = ""
     End If
    End Sub
    Merci

  7. #7
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Le code n'est exécuté que quand tu double-clique dans les cellules A8 à R8 :
    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
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
        If Intersect(Target, Range("A8:R8")) Is Nothing Then: Exit Sub '<--adapter ici la zone voulue !
     
        With Target
     
            If .Value = "" Then
     
                .Value = "X"
                .Font.Bold = True
     
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
     
            Else
     
                .Value = ""
                .Font.Bold = False
                .HorizontalAlignment = 1
                .VerticalAlignment = 1
     
            End If
     
        End With
     
    End Sub
    Hervé.

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

Discussions similaires

  1. [Débutant] SQL WHERE remplacer valeur fixe par variable "Double"
    Par Nul43 dans le forum Développement Web avec .NET
    Réponses: 1
    Dernier message: 22/05/2014, 22h24
  2. Appel de userform par variable
    Par fxleo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/06/2013, 18h23
  3. [PHP 5.3] passage de requete sql par variables
    Par healou dans le forum Langage
    Réponses: 23
    Dernier message: 25/05/2011, 16h44
  4. Réponses: 2
    Dernier message: 08/09/2006, 11h04
  5. passage valeur select par URL
    Par toome dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/08/2005, 11h51

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