Vb appel d'une UserForm

Fermé
fabche Messages postés 30 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 16 novembre 2010 - 24 juil. 2009 à 09:35
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 24 juil. 2009 à 11:20
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
A voir également:

12 réponses

jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 09:55
et avec Load UserForm1 ??
0
fabche Messages postés 30 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 16 novembre 2010
24 juil. 2009 à 10:01
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 vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 10:14
Load Form1 alors... enfin.. Form1 est le nom de ta feuille (propriete, name)
0
fabche Messages postés 30 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 16 novembre 2010
24 juil. 2009 à 10:20
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 vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 10:35
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 vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 10:37
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 mardi 31 mars 2009 Statut Membre Dernière intervention 16 novembre 2010
24 juil. 2009 à 10:44
Merci je vais tester tout sa et je te redit ;).

merci de m'aider
0
fabche Messages postés 30 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 16 novembre 2010
24 juil. 2009 à 10:44
Mais tu as bien compris le probleme ;).
0
fabche Messages postés 30 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 16 novembre 2010
24 juil. 2009 à 10:48
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 vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 10:51
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 mardi 31 mars 2009 Statut Membre Dernière intervention 16 novembre 2010
24 juil. 2009 à 10:59
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 vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 11:20
ok, met ton post en résolu ;)
0