Coller sur une cellule sélectionné par un clique souris
Bonsoir,
Je viens vers vous pour un petit problème de VBA. En effet j'essaie de faire un solitaire en pion sur Excel, mais je débute sur VBA.
Je me demande si il est possible de coller une cellule préalablement couper par un simple clique de souris. En effet, j'ai trouvé le code pour pouvoir couper une cellule, mais je me demande si il est possible de cliquer sur une autre cellule pour pouvoir coller la cellule présélectionner.
J'ai une autre petite question, est-il possible de faire une "fonction" si en incluant dans des cliques de souris. En effet il faudrait que le clique qui permette de coller soit conditionné, que cette cellule soit vide et situé 2 cellules plus loin que la cellule initiale, peut importe la direction (haut bas droite gauche).
Je vous joins mon code, et le dossier
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Plage As Range
If Target.Cells.Count > 1 Then
MsgBox "Sélectionnez une seule cellule."
Exit Sub
End If
Set Plage = Range("grille")
If Application.Intersect(Target, Plage) Is Nothing Then
MsgBox "Hors cible."
Else
Selection.Cut
End If
End SubSi vous avez une solution sur l'une de ces questions, je vous serez très reconnaissante ! même une petite idée
Bonne journée
Bonjour et bienvenue sur le forum
Tu écris :
Je me demande si il est possible de coller une cellule préalablement couper par un simple clique de souris
Je ne pense pas que ce soit possible par un deuxième clic. En tout cas, je ne sais pas faire.
est-il possible de faire une "fonction" si en incluant dans des cliques de souris. En effet il faudrait que le clique qui permette de coller soit conditionné, que cette cellule soit vide et situé 2 cellules plus loin que la cellule initiale, peut importe la direction (haut bas droite gauche).
Essaie ce code qui complète le tien :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Plage As Range
If Target.Cells.Count > 1 Then
MsgBox "Sélectionnez aune seule cellule."
Exit Sub
End If
Set Plage = Range("grille")
If Application.Intersect(Target, Plage) Is Nothing Then
MsgBox "Hors cible."
Else
If Target.Offset(0, 2).Value = "" Then
Selection.Cut Selection.Offset(0, 2)
ElseIf Target.Offset(-2, 0).Value = "" Then
Selection.Cut Selection.Offset(-2, 0)
ElseIf Target.Offset(0, -2).Value = "" Then
Selection.Cut Selection.Offset(0, -2)
ElseIf Target.Offset(2, 0).Value = "" Then
Selection.Cut Selection.Offset(2, 0)
End If
End If
End SubBye !
Merci beaucoup à gp et banzai64.
J'essaie de comprendre les codes et peut être en adapter quelques uns à ma sauce.
Encore merci d'avoir pris le temps de me répondre