Probleme de report de données dans userform

anais890313 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
anais890313 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
anais890313 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
anais890313 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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