Probleme de report de données dans userform

anais890313 Messages postés 11 Statut Membre -  
anais890313 Messages postés 11 Statut Membre -
Bonjour à tous

Je suis débutante en programmation excel VBA et je me debrouille depuis peu avec les forums pour résoudres mes petits soucis....
sauf que la je bloque ....

je vais essayer de m'expliquer clairement... dans le cas contraire je m'excuse d'avance pour mon manque de vocabulaire en programmation VBA

J'ai crée un formulaire sur une feuille ("formulaire") qui renvoie les données saisies vers une Base de données ("bd") dans le meme classeur.

J'ai essayé de créer un formulaire de modification/suppression (userform2) des données de cette base, qui se déclenche en double cliquant sur la première colonne de la ligne que l'on souhaite modifier ...

: voici mes codes

dans le code de la feuille :

Private Sub Worksheet_BeforeDoubleClick(ByVal sel As Range, Cancel As Boolean)

UserForm2.Show

UserForm2.numeasy.Value = Cells(sel.Row, 1)
UserForm2.cdcg_plateau.Value = Cells(sel.Row, 3)
UserForm2.phase.Value = Cells(sel.Row, 9)
UserForm2.Calendar1.Value = Cells(sel.Row, 6)
UserForm2.toupie1.Value = Cells(sel.Row, 13)
UserForm2.pax.Value = Cells(sel.Row, 15)
UserForm2.caprev.Value = Cells(sel.Row, 16)
UserForm2.commentaires.Value = Cells(sel.Row, 17)
UserForm2.evenement.Value = Cells(sel.Row, 4)
UserForm2.localite.Value = Cells(sel.Row, 5)
UserForm2.Calendar2.Value = Cells(sel.Row, 6)
UserForm2.TextBox1.Value = Cells(sel.Row, 10)
UserForm2.TextBox2.Value = Cells(sel.Row, 11)
End Sub


et là, c'est le drame...

Quand mon userform s'affiche la ligne reportée n'est pas la bonne (du moins pas au premier double clic)

Pouvez vous m'aider à résoudre ce probleme ?

Merci par avance si vous avez un petit moment à me consacrer :)

bonne journée à tous

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Code a mettre:

    Module a inserer: variable Public vue de tous les codes (feuille, modules, Userforms)
    Public val_cel

    VBA Feuille: passage de la ligne de la cellule selectionnee
    Private Sub Worksheet_BeforeDoubleClick(ByVal sel As Range, Cancel As Boolean)
      Cancel = True
      val_cel = sel.Row
      UserForm2.Show
    End Sub
    


    'UserForm2:
    Private Sub UserForm_Activate()
      With Worksheets("feuil1")
        numeasy.Value = .Cells(val_cel, 1)
        cdcg_plateau.Value = .Cells(val_cel, 3)
        phase.Value = .Cells(val_cel, 9)
        Calendar1.Value = Cells(val_cel, 6)
        toupie1.Value = .Cells(val_cel, 13)
        pax.Value = Cells(val_cel, 15)
        caprev.Value = .Cells(val_cel, 16)
        commentaires.Value = .Cells(val_cel, 17)
        evenement.Value = .Cells(val_cel, 4)
        localite.Value = .Cells(val_cel, 5)
        Calendar2.Value = .Cells(val_cel, 6)
        TextBox1.Value = .Cells(val_cel, 10)
        TextBox2.Value = .Cells(val_cel, 11)
      End With
    End Sub
    


    A+
    0
    1. anais890313 Messages postés 11 Statut Membre
       
      bonjour

      tout d'abord merci de m'avoir répondu aussi rapidement

      j'ai une petite erreur a l'execution du code dans le userform :

      erreur d'excution 1004
      erreur définie par l'application ou pas l'objet

      j'ai bien inséré dans un module la variable
      public val_cel 


      ainsi que le code a ecrire dans le userfom

      'UserForm2: 
      Private Sub UserForm_Activate() 
        With Worksheets("feuil1") 
          numeasy.Value = .Cells(val_cel, 1)  <<<<< le debogage bloque ici  
       cdcg_plateau.Value = .Cells(val_cel, 3) 
          phase.Value = .Cells(val_cel, 9) 
          Calendar1.Value = Cells(val_cel, 6) 
          toupie1.Value = .Cells(val_cel, 13) 
          pax.Value = Cells(val_cel, 15) 
          caprev.Value = .Cells(val_cel, 16) 
          commentaires.Value = .Cells(val_cel, 17) 
          evenement.Value = .Cells(val_cel, 4) 
          localite.Value = .Cells(val_cel, 5) 
          Calendar2.Value = .Cells(val_cel, 6) 
          TextBox1.Value = .Cells(val_cel, 10) 
          TextBox2.Value = .Cells(val_cel, 11) 
        End With 
      End Sub 
      


      et dans la feuille concernée :

      Private Sub Worksheet_BeforeDoubleClick(ByVal sel As Range, Cancel As Boolean) 
        Cancel = True 
        val_cel = sel.Row 
        UserForm3.Show 
      End Sub 
      


      je ne comprends pas vraiment d'ou cela peut venir ....
      Pouvez vous m'aider à résoudre ce probleme?

      Merci par avance
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Au moment ou vous avez l'erreur, click sur debugage, placez le pointeur souris sur val_cel

      de la ligne: numeasy.Value = .Cells(val_cel, 1) et quelle est sa valeur??

      exemple de ce que je vous ai donne: https://www.cjoint.com/?BLlrT73FSh7

      A+
      0
    3. anais890313 Messages postés 11 Statut Membre
       
      Bonjour,

      Désolée pour le temps de réponse j'etais en déplacement professionnel
      Le probleme est résolu avec un peu de trifouillage par ci par là
      Merci beaucoup pour votre disponibilité
      0