J'essaie, mais sans succès, de reproduire ce que je peux faire au moyen de la souris ... A savoir :
- Sélection de DRAW
- Sélection d'un Drawing Tools (par exemple : pencil 1mm)
pour ensuite pouvoir aller signer une zone de la feuille Excel.
Je n'ai pas trouvé les instructions qui permettent d'atteindre cet objectif soit en simulant ce que j'ai décrit ci-dessus, soit en allant directement dans Excel pour obtenir la sélection du pencil et son usage pour signer dans une zone.
J'ai très souvent le code erreur 348 (parfois le 1004 selon mes versions de tests)
Ci après, ma dernière tentative pour donner une idée globale de ce que je souhaite réaliser ... tout fonctionne, SAUF ... :
Sub EnableDrawMode()
Dim ws As Worksheet
Set ws = ActiveSheet
' Déprotéger temporairement la feuille (modifier le mot de passe si nécessaire)
ws.Unprotect
' Désactiver les volets figés si nécessaire
If ActiveWindow.FreezePanes Then
ActiveWindow.FreezePanes = False
End If
' Zoom à 150% pour mieux voir la zone de signature
' ActiveWindow.Zoom = 150
' Sélectionner la cellule de signature R19 (zone de signature)
' ws.Range("R19").Select
' Attendre un instant pour laisser le temps d'effectuer les changements visuels
Application.Wait Now + TimeValue("00:00:2")
' Afficher un message pour indiquer que vous pouvez maintenant signer
MsgBox "Vous pouvez maintenant signer ! Pensez à reprotéger la feuille après la signature.", vbInformation, "Signature"
' Ouvrir l'onglet Draw avec un délai plus long pour l'affichage
Application.SendKeys "%J" ' ALT + J pour ouvrir l'onglet Draw
Application.Wait Now + TimeValue("00:00:5") ' Attendre 5 secondes pour voir si l'onglet Draw s'ouvre
' Vérifier si l'onglet "Draw" est bien actif
On Error Resume Next
Dim drawTab As Object
Set drawTab = Application.CommandBars("Ribbon").FindControl(ID:="TabDraw")
On Error GoTo 0
If Not drawTab Is Nothing Then
MsgBox "L'onglet Draw est activé", vbInformation, "Draw Activé"
Else
MsgBox "L'onglet Draw n'a pas pu être activé", vbCritical, "Erreur"
Exit Sub
End If
' Sélectionner le crayon noir 1mm
On Error Resume Next
Application.CommandBars.ExecuteMso "PenBlack\_1mm" ' Sélectionner le crayon 1mm
On Error GoTo 0
' Vérifier si le crayon a bien été sélectionné
If Application.CommandBars("Ribbon").FindControl(ID:="PenBlack\_1mm").Enabled Then
MsgBox "Le crayon est sélectionné, vous pouvez maintenant signer.", vbInformation, "Crayon sélectionné"
Else
MsgBox "Impossible de sélectionner le crayon, vérifiez si l'onglet Draw est actif.", vbCritical, "Erreur"
End If
End Sub