Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Récupération de la valeur d'une variable d'une procédure à une autre

raoulruiz

XLDnaute Nouveau
Bonjour,

Je n'arrive pas à récupérer la valeur de ma variable "statut" de la procédure checkbox1_click() dans ma procédure Private Sub CommandButton_Ajout_Click()
Pourriez vous m'aider svp?

VB:
Sub CheckBox1_Click()
Dim statut As String
If CheckBox1 = True Then
    TextBox_Fin = ""
    TextBox_Fin.Enabled = False
    TextBox_Fin.BackStyle = fmBackStyleTransparent
    statut = "terminé"
    
ElseIf CheckBox1 = False Then
    TextBox_Fin.Enabled = True
    TextBox_Fin = ""
    TextBox_Fin.BackStyle = fmBackStyleOpaque
    statut = "actif"
    
End If
End Sub

'********************************************************
'Ajout d'un nouvel enregistrement dans la base de données
'*********************************************************
Private Sub CommandButton_Ajout_Click()
Dim MaDate As Date
Dim MonMontant As Double

Feuil2.Unprotect "EDFIN" 'déverrouille la feuille données

    MsgBox (statut)
        Sheets("Donnees").Activate
        Range("A2").Select
        Selection.End(xlDown).Select    'positionnement sur la dernière ligne non vide
        Selection.Offset(1, 0).Select   'décalage d'une ligne vers le bas
        ActiveCell = TextBox_Ref.Value
        ActiveCell.Offset(0, 1).Value = Me.TextBox_Anal
        ActiveCell.Offset(0, 2).Value = Me.Cbo_Zone
        ActiveCell.Offset(0, 3).Value = Me.Cbo_Pays
        ActiveCell.Offset(0, 6).Value = Me.TextBox_Client
        ActiveCell.Offset(0, 7).Value = Me.Cbo_Origine
        ActiveCell.Offset(0, 8).Value = Me.TextBox_Libelle
        ActiveCell.Offset(0, 9).Value = Me.TextBox_Expert
        ActiveCell.Offset(0, 10).Value = Me.ComboBox_Referent
        ActiveCell.Offset(0, 11).Value = Me.ComboBox_Etat
        ActiveCell.Offset(0, 12).Value = Me.ComboBox_Type
        ActiveCell.Offset(0, 13).Value = Me.TextBox_Debut
        ActiveCell.Offset(0, 14).Value = Me.TextBox_Fin
        ActiveCell.Offset(0, 15).Value = statut
        ActiveCell.Offset(0, 16).Value = TextBox_Montant
        ActiveCell.Offset(0, 17).Value = TextBox_Commentaire.Value
    
        MsgBox "Le contrat a bien été ajouté à la base de données", vbOKOnly + vbInformation, "CONFIRMATION"
  
        Me.TextBox_Anal = "BU"
        Me.TextBox_Client = ""
        Me.TextBox_Commentaire = ""
        Me.TextBox_Debut = ""
        Me.TextBox_Fin = ""
        Me.TextBox_Expert = ""
        Me.TextBox_Montant = ""
        frmSaisie.Cbo_Zone.AddItem Cells(2, 2).Value
        'Me.Cbo_Pays = Cells(2, 2).Value
        Me.TextBox_Ref = ""
        Me.Cbo_Origine = ""
        'Me.Cbo_Pays.ListIndex = 0
        Me.ComboBox_Etat = ""
        Me.ComboBox_Referent = ""
        Me.ComboBox_Type = ""
        Me.TextBox_Libelle = ""
        Call TRI
    Feuil2.Protect "EDFIN", True, True, True
    

    
End Sub
 

Pièces jointes

  • Suivi des contrats - nouvelle version4.xlsm
    97.9 KB · Affichages: 6

raoulruiz

XLDnaute Nouveau
Bonjour et merci de ce retour rapide.
J'avais bien essayé de déclarer statut en Public
"Public statut as string" mais la macro me renvoi un message d'erreur "attribut incorrect dans une procédure Sub ou fonction" en surlignant le titre de ma procédure.
Je n'arrive pas à comprendre pourquoi.
 

raoulruiz

XLDnaute Nouveau
Merci à vous.
J'ai déclarer la variable en public et cela fonctionne.
Le soucis initial est que je déclarais la variable en public dans la procédure alors qu'il faut la déclarer dans le module
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
455
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…