Ecrire résultat d'un userform dans cellules
je souhaiterai que pour le résultat de mon userform2, noté dans "TextBox_Choix" après avoir utilisé le bouton "CommandButton1", soit copier, imbriquer ou dupliquer pour la cellule que j'active dans un code VBA de la feuille ("Fiche") où sont toutes les cellules que je souhaiterai activer.
J'active ma cellule comme ceci pour la cellule D14 (par exemple):
Private Sub Worksheet_BeforerightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$D$14" Then
UserForm2.Show
Cancel = True
End If
End Sub
Mais le souci c'est que j'ai beaucoup de cellules à activer à part celle-la et donc beaucoup de résultat à dupliquer.
Voici en Pj un fichier test pour plus de facilité de compréhension.
Il y a beaucoup d'élément donc j'ai mis en rouge ce que je voulais dans la feuille "Fiche".
En clair, j'appuie sur un endroit de la cellule (bouton ou autre) --> Ouverture de l'UserForm2 --> Après avoir appuyer sur le bouton valider marque le résultat écris dans "TextBox_Choix" dans la cellule où j'ai appuyer préalablement.
Je connais pas cet formule, je débute sur VBA
Merci par avance
Cordialement.
bonjour,
En partant de ton fichier, code à mettre concernant le CommandButton :
Private Sub CommandButton1_Click()
Range("D" & Range("D56").End(xlUp).Row + 1).Value = TextBox_Choix.Value
End Sub
Si j'ai bien compris, ca devrait te convenir !
A plus !
Merci pour ta réponse, elle fonctionne mais c'était pas exactement ce que je voulais.
Voici, ce que j'ai trouvé.
Dans userform2
Private Sub CommandButton1_Click()
UserForm2.Hide ' cache l'userform2
End Sub
Dans la feuille "Fiche"
Private Sub Worksheet_BeforerightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$D$14" Then
UserForm2.Show
Cancel = True
Target.Select
Target.Cells.Offset(0, 0) = UserForm2.TextBox_Choix.Value
Range("D14:D15").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
End If
Ceci duplique le résultat et refusionne les cellules par la suite.
Mrci encore
Cordialement.