Bonjour,
J'effectue un satge sous Excel et j'ai un petit soucis : j'aimerai que lorsque l'utilisateur double clic dans une cellule, un formulaire s'ouvre. Ensuite, il sélectionne une valeur dans une liste déroulante puis clic sur un bouton OK. Une fenetre s'ouvre lui demandant de confirmer son choix. S'il confirme, j'aimerai que la valeur sélectionnée dans la liste soit copiée/collée dans la cellule où l'utilisateur a double cliqué.
Voici le code VB que j'ai créé :
Option Explicit
Public cible As String
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, cancel As Boolean)
cible = Target.Address
UserForm1.Show
cancel = True
End Sub
Private Sub BoutonOK_Click()
If MsgBox("Voulez-vous appliquer le motif " & ListBox1.Value & "?", vbYesNo) = vbYes Then
ActiveSheet.Range(cible).Value = ListBox1.Value
End If
SendKeys "{ENTER}"
SendKeys "{UP}"
Unload UserForm1
End Sub
Private Sub UserForm_Initialize()
'remplissage de la zone de liste
With ListBox1
.AddItem "ALM"
.AddItem "ASA"
.AddItem "ASAI"
.AddItem "ATA"
.AddItem "ATM"
.AddItem "CA"
.AddItem "CFS"
.AddItem "CGM"
.AddItem "FORM"
.AddItem "GREV"
.AddItem "JAS"
.AddItem "MAT"
.AddItem "QS"
End With
'sélectionner le premier élément de la liste
ListBox1.ListIndex = 0
End Sub
Le problème est que lorsque je sélectionne une valeur, clic sur ok puis sur oui, aucune valeur ne se met dans la cellule où j'ai double cliqué. Comment faire pour que la valeur apparaisse ?
Merci d'avance.
J'effectue un satge sous Excel et j'ai un petit soucis : j'aimerai que lorsque l'utilisateur double clic dans une cellule, un formulaire s'ouvre. Ensuite, il sélectionne une valeur dans une liste déroulante puis clic sur un bouton OK. Une fenetre s'ouvre lui demandant de confirmer son choix. S'il confirme, j'aimerai que la valeur sélectionnée dans la liste soit copiée/collée dans la cellule où l'utilisateur a double cliqué.
Voici le code VB que j'ai créé :
Option Explicit
Public cible As String
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, cancel As Boolean)
cible = Target.Address
UserForm1.Show
cancel = True
End Sub
Private Sub BoutonOK_Click()
If MsgBox("Voulez-vous appliquer le motif " & ListBox1.Value & "?", vbYesNo) = vbYes Then
ActiveSheet.Range(cible).Value = ListBox1.Value
End If
SendKeys "{ENTER}"
SendKeys "{UP}"
Unload UserForm1
End Sub
Private Sub UserForm_Initialize()
'remplissage de la zone de liste
With ListBox1
.AddItem "ALM"
.AddItem "ASA"
.AddItem "ASAI"
.AddItem "ATA"
.AddItem "ATM"
.AddItem "CA"
.AddItem "CFS"
.AddItem "CGM"
.AddItem "FORM"
.AddItem "GREV"
.AddItem "JAS"
.AddItem "MAT"
.AddItem "QS"
End With
'sélectionner le premier élément de la liste
ListBox1.ListIndex = 0
End Sub
Le problème est que lorsque je sélectionne une valeur, clic sur ok puis sur oui, aucune valeur ne se met dans la cellule où j'ai double cliqué. Comment faire pour que la valeur apparaisse ?
Merci d'avance.