Vb appel d'une UserForm

fabche Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai un tableau excel et lors d'un double click sur une case mon Userform aparait.
Mais le problème c'est que avec la fonction Show c'est bloquant, il faut que l'Userform soir fermé pour que le code continu.
Mais je voudrais pouvoir récupérer des données sans que mon Userform se ferme.

Voici mon code :

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim resultatfini As String

AdresseCellule = Target.Address
UserForm1.Show

resultatfini = UserForm1.Tresultat.Value //J'ai une texteBox qui affiche le resultat

If resultatfini <> "" Then
Range(AdresseCellule).Value = resultatfini
End If

Cancel = True

End Sub

Je ne sait vraiment pas comment faire, soit il faudrait appelé autrement mon UserForm
Soit trouver un lien entre mon ThisWorkBook et mon Userform.

Je ne sait pas si j'ai été bien clair et que vous avez compris le probleme, je serais ravi de repondre a toutes vos question.

Merci

12 réponses

  1. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    et avec Load UserForm1 ??
    0
  2. fabche Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci pour cette reponse rapide .

    Mais
    Load (UserForm1)
    Sa me met Erreur d'excecution '361'
    Impossible de charger ou de decharger cet objet
    0
  3. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    Load Form1 alors... enfin.. Form1 est le nom de ta feuille (propriete, name)
    0
  4. fabche Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
     
    Nan ma feuille s'appelle UserForm1
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    attend attend... si j'ai bien compris ton code :

    l utilisateur double click dans une cellule.. de la tu charge ta form (qui je supose fait un tas de calcul scientique :p) et affiche un résultat dans un textbox appelé Tresultat et la valeur de Tresultat se met dans la cellule double cliquée c ca ??

    alors pourquoi au lieu de mettre ca dans un textebox ( avec quelque chose comme Tresultat.caption =résultatdemontestscientifique) tu ne fait pas:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    UserForm1.Show
    End Sub

    Private Sub UserForm_Activate()
    monresultatscientifique = "test"
    ActiveCell.Value = monresultatscientifique

    End Sub
    0
  7. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    Le probleme la c'est que la form reste visible... mais c'est peut etre ce que tu veux...

    Sinon, 2 solution :

    Private Sub UserForm_Activate()
    monresultatscientifique = "test"
    ActiveCell.Value = monresultatscientifique
    unload me 'pour quitter la form
    End Sub

    ou

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    monresultatscientifique = "test"
    ActiveCell.Value = monresultatscientifique
    End Sub

    sans passer par une form
    0
  8. fabche Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci je vais tester tout sa et je te redit ;).

    merci de m'aider
    0
  9. fabche Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
     
    Mais tu as bien compris le probleme ;).
    0
  10. fabche Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
     
    Activate ne colle pas car en faite dans mon Userform, je doit choisir ce que je dois calculer .
    A moins que je l'ai mal utiliser ?
    0
  11. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    ok.. donc

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    UserForm1.Show
    End Sub

    Pour afficher la form

    dans ta form :

    l'utilisateur fait tous ses choix... liste, case à cocher ect.. tu peux afficher un résultat dans un textbox pour info..

    Apres, 2 solutions :
    soit un bouton 'Envoie dans xl avec ce code dedans :

    ActiveCell.Value = Tresultat.value ' met à jour la cellule où il a dbl cliqué
    unload me 'quitte form

    ou

    dans tresultat change :

    Private Sub Tresultat_Change()
    ActiveCell.Value = Tresultat.Value

    End Sub
    mais la.. a chaque changement de résultat, il met à jour la cellule.. ce qui peut etre embettant si le résultat change pour chaque choix de l utilisateur
    0
  12. fabche Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
     
    J'ai pris la 1ere solution et tout marche correctement.
    je te remercie beaucoup.

    Bonne journée a toi, merci encore
    0
  13. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    ok, met ton post en résolu ;)
    0