Vb appel d'une UserForm
fabche
Messages postés
33
Statut
Membre
-
jjsteing Messages postés 1803 Statut Contributeur -
jjsteing Messages postés 1803 Statut Contributeur -
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
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:
- Vb appel d'une UserForm
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appel privé - Guide
- Vb - Télécharger - Langages
- Double appel - Guide
- Votre appel ne peut aboutir - Forum Mobile
12 réponses
Merci pour cette reponse rapide .
Mais
Load (UserForm1)
Sa me met Erreur d'excecution '361'
Impossible de charger ou de decharger cet objet
Mais
Load (UserForm1)
Sa me met Erreur d'excecution '361'
Impossible de charger ou de decharger cet objet
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
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 ?
A moins que je l'ai mal utiliser ?
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
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