Probleme de report de données dans userform

Fermé
anais890313 Messages postés 11 Date d'inscription lundi 10 décembre 2012 Statut Membre Dernière intervention 12 février 2013 - 10 déc. 2012 à 13:10
anais890313 Messages postés 11 Date d'inscription lundi 10 décembre 2012 Statut Membre Dernière intervention 12 février 2013 - 14 déc. 2012 à 09:18
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

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711
10 déc. 2012 à 14:22
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 lundi 10 décembre 2012 Statut Membre Dernière intervention 12 février 2013
Modifié par anais890313 le 11/12/2012 à 16:52
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 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711
Modifié par f894009 le 11/12/2012 à 17:46
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 lundi 10 décembre 2012 Statut Membre Dernière intervention 12 février 2013
14 déc. 2012 à 09:18
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