Remplir une textbox par rapport à une feuille

Bonjour à tous,

j'ai commencé un pti code qui me permet, si je place mon curseur en feuil1, en A4 par exemple, que le code trouve qu'il s'agit de la ligne 4.
l'étape suivante, je veux que en ligne 4 ou sur celle où sera le curseur, la valeur de la texdtbox1 soit la valeur en A4 mais ça ne marche pas.
pour info j'ai crée un bouton dans ma feuille excel qui appele le userform et le code est dans un module. est-ce la bonne procédure??!!

Sub test()

UserForm1.Show

Dim lig As Long
lig = ActiveCell.Row

listbox1.AddItem Cells(lig, 3).Value

End Sub


merci pour votre aide

vince

5 réponses

  1. bonjour

    plusieurs choses:

    -tu as choisi un bouton , tu aurais pu utiliser la procédure BeforeDoubleClick ou BeforeRightClick de la feuille 1 ; ainsi, plutot que de selectionner une cellule puis de cliquer sur le bouton, on fait directement sur la cellule un double clic ou un clic droit

    -la partie chargement de la listbox doit se trouver dans la procédure UserForm_Initialize de la Userform.

    A+ pour plus de renseignements
    0
    1. bon je vais avoir de plus de précision. j'ai écris ça rapidement dans le code du UserForm

      Private Sub UserForm1_Initialize()
      Dim lig As Long
      lig = ActiveCell.Row
      TextBox1 = Range(lig, 1).Value
      End Sub


      je préfère garder le bouton :-) mais je garde les autres idées pour autre chose. du coup dans un module, j'ai mon code suivant pour appeler le Userform1:

      Sub test()
      UserForm1.Show
      End Sub


      j'ai fais simple avec une TextBox car j'ai ai pas mal après!

      ben la TextBox1 ya rien dedans !?????

      Help me
      0
      1. question bête : y a-t-il quelque chose dans la cellule (lig,1) ?

        qu'y a -t-il dans la variable lig ?

        A+

        Edit :
        Range(lig, 1).Value ne peut pas marcher ! c'est comme tu l'avais écrit dans le premier post: Cells(lig, 1).Value
        0
        1. oui toutes les cellules de la colonne 1 sont remplies.

          lig c'est pour récupérer le n° de la ligne où se trouve le curseur et le mettre justement dans cette variable. mais je suis preneur de toutes nouvelles idées. Mon but est, si je me place en ligne 4, je récupère les infos que je veux et j'insère dans les TextBox qui vont bien. L'étape suivante, quand j'y serai, c'est de faire des modifs dans des news TextBox et insérer une nouvelle ligne avec ces nouvelles infos sous la ligne 4.
          D'où le faite de reconnaître en quelle ligne se trouve le curseur.

          j'espère être assez clair !?

          merci
          0
          1. as tu lu le rajout de ma réponse précédente :
            Range(lig, 1).Value ne peut pas marcher ! c'est comme tu l'avais écrit dans le premier post: Cells(lig, 1).Value

            et tu devrais avoir un message d'erreur!
            0
          2. aucun message d'erreur quand je lance ou que je ferme le UserForm et rien dans la TextBox !!
            0
        2. autre chose

          Private Sub UserForm1_Initialize() n'existe pas ! c'est toi qui l'as créer! elle n'est jamais appelée! (c'est pour ça qu'il n'y a pas de message d'erreur)

          Utilise la procédure existente de ta Userforme :UserForm_Initialize()

          et merci pour les éclaircissements
          0
          1. ça marche :-)

            merci je vais essayé de faire la suite de mon côté

            a+
            0
          2. euh j'ai un pb!
            bon tout marche bien mais quand je suis par ex en ligne 4, il me remplit les bonnes infos mais si je change de ligne, la 10 par ex, il me garde les infos de la ligne 4 dans les TextBox??!! voilà le code du User

            Private Sub UserForm_Initialize()

            Dim lig As Long
            lig = ActiveCell.Row

            TextBox1 = Cells(lig, 1).Value
            TextBox2 = Cells(lig, 2).Value
            TextBox3 = Cells(lig, 3).Value
            TextBox4 = Cells(lig, 4).Value
            TextBox5 = Cells(lig, 5).Value
            TextBox6 = Cells(lig, 6).Value
            TextBox7 = Cells(lig, 7).Value

            End Sub


            merci
            0
          3. chez moi ça marche
            je selectionne une cellule ligne 4, je lance la userform, les textbox sont renseignées des valeurs ligne4
            je quitte, je relance après selection ligne 10, les textbox prennent bien la valeur de la ligne 10

            Désolé, je ne vois pas
            0
          4. en fait ça marche si je ferme mon UserForm avec la X
            mais si je clique sur mon bouton QUITTER où j'ai assigné le code UserForm.Hide, ça marche pas ^^
            0
          5. UserForm_Initialize() ne se déclenche qu'au chargement de la Userform; donc si elle est simplement cachée elle n'est pas rechargée quand elle est affichée de nouveau.
            Déplace ton code de UserForm_Initialize() vers UserForm_Activate() ca devrait le faire
            0