Vb appel d'une UserForm

fabche Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
jjsteing Messages postés 1670 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

jjsteing Messages postés 1670 Date d'inscription   Statut Contributeur Dernière intervention   181
 
et avec Load UserForm1 ??
0
fabche Messages postés 30 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
jjsteing Messages postés 1670 Date d'inscription   Statut Contributeur Dernière intervention   181
 
Load Form1 alors... enfin.. Form1 est le nom de ta feuille (propriete, name)
0
fabche Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
Nan ma feuille s'appelle UserForm1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jjsteing Messages postés 1670 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
jjsteing Messages postés 1670 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
fabche Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
Merci je vais tester tout sa et je te redit ;).

merci de m'aider
0
fabche Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
Mais tu as bien compris le probleme ;).
0
fabche Messages postés 30 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
jjsteing Messages postés 1670 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
fabche Messages postés 30 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
jjsteing Messages postés 1670 Date d'inscription   Statut Contributeur Dernière intervention   181
 
ok, met ton post en résolu ;)
0