VBA, n'arrive pas à attribuer la valeur d'une variable public à un textbox dans uform

Bobbo

XLDnaute Nouveau
Bonsoir,

Je suis actuellement en train de créer un outil de suivi client via VBA.
Mon problème : en appuyant le bouton valider de mon userform "UResultatPCConquete", je fais prendre la valeur de la combobox de ce userform (UResultatPCConquete_ComboBoxNDC) à la cellule H1 ( de la feuille "AJOUT_CONQUETE"), le code :

Code:
URsltTelConquete.Show
            Unload Me
            'UResultatPCConquete.Hide
            .Range("H1") = Me.UResultatPCConquete_ComboBoxNDC

jusque là ca marche!

Mais en appuyant sur le bouton "valider" de ce userform j'en appelle un autre dont le nom est "URsltTelConquete" dans lequel j'aimerais copié la valeur de la cellule H1 de la feuille "AJOUT_CONQUETE" dans la textbox "URsltTelConquete_TextBoxNDC" et là ca ne marche pas... voici le code du deuxième userform :

Code:
Private Sub UserForm_Initialize()

    Me.URsltTelConquete_Titre.Font.Size = 14
    Me.URsltTelConquete_Titre.TextAlign = fmTextAlignCenter
    
    Me.URsltTelConquete_TextBoxNDC.Value = ThisWorkbook.Sheets(AJOUT_CONQUETE).Range("H1").Value

End Sub

Au passage j'avais essayé de créer une variable Public NDC as String pour faire cette opération mais devant mon échec je me suis rabattu sur la solution de passer par l'intermédiaire d'une cellule.

Voilà merci d'avance aux personnes qui pourront m'aider!

(Ci-joint mon fichier ca peut servir)
 

Pièces jointes

  • Suivi client.xlsm
    52.4 KB · Affichages: 66
  • Suivi client.xlsm
    52.4 KB · Affichages: 82
  • Suivi client.xlsm
    52.4 KB · Affichages: 82

Papou-net

XLDnaute Barbatruc
Re : VBA, n'arrive pas à attribuer la valeur d'une variable public à un textbox dans

Bonsoir Bobbo,

Vois si les modifications apportées à ton code te conviennent.

Espérant avoir répondu.

Cordialement.
 

Pièces jointes

  • Copie de Suivi client.xlsm
    54.6 KB · Affichages: 91

Bobbo

XLDnaute Nouveau
Re : VBA, n'arrive pas à attribuer la valeur d'une variable public à un textbox dans

merci Papou-net c'est parfait!

je sais pas trop s'il faut que je refasse une nouvelle discussion pour ça donc je continue ici parce que c'est en lien!

Donc grâce à toi j'arrive à faire apparaître le NDC dans le userform, mais j'aimerais aussi faire apparaître le NOm et le Prénom. Pour cela j'ai récupéré le numero de la ligne où se trouve le NDC trouvé par le find que j'ai stocké dans une variable "Ligne" que j'utilise pour récupérer les valeurs de Range("D" & Ligne) et de Range("E" & Ligne):

Code:
Private Sub UResultatPCConquete_Valider_Click()
Dim Ligne As Integer

  (code)

    With Sheets("AJOUT_CONQUETE").Range("C:C")
        Dim b As Range
        Set b = .Find(NDCConquete, LookIn:=xlValues)
        '=> b IS Nohting veut dire pas de resultat
        '=>Not b Is Nothing veut dire au moçins un resultat
      
        If Not b Is Nothing Then
            URsltTelConquete.Show
            Unload Me
            b.Select
            Ligne = ActiveCell.Row
            NomConquete = Range("D" & Ligne).Value
            PrenomConquete = Range("E" & Ligne).Value
        Else
            MsgBox "Ce client n'est pas la base de donnée Client (Conquête inactive) à contacter"
(code)

Je réutilise ces valeurs dans le deuxieme userform "URsltTelConquete" que j'assigne aux Textbox respectives, voici le code :

Code:
Private Sub UserForm_Initialize()

    Me.URsltTelConquete_Titre.Font.Size = 14
    Me.URsltTelConquete_Titre.TextAlign = fmTextAlignCenter
    
    Me.URsltTelConquete_TextBoxNDC.Value = NDCConquete
    Me.URsltTelConquete_TextBoxNom.Value = NomConquete
    Me.URsltTelConquete_TextBoxPrenom.Value = PrenomConquete

End Sub

et ça marche! à un petit problème près : il ya un temps d'actualisation entre le NDC et le NOM et prénom!
je m'explique: j'arrive à faire apparaitre NDC1 NOM1 et prénom1, j'esaye de changer le NDC en choisissant le NDC2 et le userform "URsltTelConquete" me fait appraitre NDC2 (ca c'est bon) mais NOM1 et Prenom1 =/
je dois reclicker sur le bouton "Conquêtes inactives - Résultat prise de contact" et selectionner NDC2 une nouvelle fois pour que le deuxieme userform m'affiche bien NDC2 NOM2 Prenom2!

D'où peut venir ce décalage? je suppose que ca vient des variables et quand elles prennent leurs valeurs, mais comment corriger cela?

mon fichier en pièce jointe

Merci pour votre aide

Bobbo
 

Pièces jointes

  • Suivi client 2.xlsm
    63.4 KB · Affichages: 65

Papou-net

XLDnaute Barbatruc
Re : VBA, n'arrive pas à attribuer la valeur d'une variable public à un textbox dans

RE Bobbo,

C'est normal car tu actives le deuxième UserForm avant de mettre à jour les noms et prénoms.

J'ai modifié le code comme ceci, et ça marche :

Code:
Private Sub UResultatPCConquete_Valider_Click()
Dim Ligne As Integer

  (code)

    With Sheets("AJOUT_CONQUETE").Range("C:C")
        Dim b As Range
        Set b = .Find(NDCConquete, LookIn:=xlValues)
        '=> b IS Nohting veut dire pas de resultat
        '=>Not b Is Nothing veut dire au moçins un resultat
      
        If Not b Is Nothing Then
            Unload Me
            b.Select
            Ligne = ActiveCell.Row
            NomConquete = Range("D" & Ligne).Value
            PrenomConquete = Range("E" & Ligne).Value
            URsltTelConquete.Show
        Else
            MsgBox "Ce client n'est pas la base de donnée Client (Conquête inactive) à contacter"
(code)
Tu peux aisément le vérifier sur la copie ci-jointe.

Bonne soirée.

Cordialement.
 

Pièces jointes

  • Copie de Suivi client 2.xlsm
    67.2 KB · Affichages: 70

Discussions similaires