Dessin à main levé VBA

Bonjour,

Je voudrais savoir si il était possible de créer une macro qui lorsque l'on clique sur une certaine cellule cela fait une insertion dessin à main levé ?

Pcq l'enregistreur de macro ne prend pas en compte l'insertion il prend que la sélection et le dessin qu'on fait et sur internet j'ai trouvé qui se rapprochait de mon problème.

L'insertion dessin serait pour faire une signature lorsque l'on clique sur la case à signer.

Merci d'avance à vous.

up

Vraiment personne ?

Bonjour

Personnellement je ne comprends pas ce que tu cherches à faire

Kant1 a écrit :

dessin à main levé

C'est quoi (oui je sais j'en ai fait des dessins à main levé) mais pour toi cela veut dire quoi : tu veux sélectionner une cellule et ensuite tu dessines dans l'écran ?

Tu as une image de ta signature et tu veux la coller dans une cellule ?

Fais des recherches sur insertion image

Et pourquoi Internet ?

Ton dessin est sur internet ?

Un fichier est souvent utile, tu y indiques manuellement ce que tu veux obtenir

JE voudrais que lorsque je clique sur une cellule l'outil dessin à main levé s'enclenche automatiquement (Insertion>Forme>(Rubrique ligne toute a gauche)Dessin à main levé). Ce serait pour faire signer le document avec un stylet.

Mais l'enregistreur de macro ne comprend pas l'insertion.

Bonjour

Ah je comprends pourquoi je ne comprends pas

Cette option n'est pas disponible avec 2003

Désolé

Ah ok du coup ça va être dur de me répondre mais merci quand même d'avoir tenté.

Bonjour à tous,

Je ne pense pas que tu puisses faire saisir une signture avec cet objet.

Quand tu le crées tout doit s'enchainer : le dessin avec la souris y compris. Tu ne peux pas le rééditer ou le compléter ensuite.

BuildFreeform, méthode

S'applique àExempleDétailsCette méthode crée un objet de forme libre. Elle renvoie un objet FreeformBuilder qui représente la forme libre telle qu'elle est constituée. Utilisez la méthode AddNodes pour ajouter des segments à la forme libre. Après avoir ajouté au moins un segment à la forme libre, vous pouvez utiliser la méthode ConvertToShape pour convertir l'objet FreeformBuilder en un objet Shape ayant la description géométrique que vous avez définie dans l'objet FreeformBuilder.

Exemple de code :

With ActiveSheet.Shapes.BuildFreeform(msoEditingCorner, 108.75, 52.5)
    .AddNodes msoSegmentCurve, msoEditingCorner, 119.25, 72.75, 135.75, 82.5, _
    152.25, 96.75
    .AddNodes msoSegmentCurve, msoEditingCorner, 156.75, 100.5, 159.75, 105#, _
    164.25, 108.75
    .AddNodes msoSegmentCurve, msoEditingCorner, 169.5, 113.25, 174#, 117#, _
    179.25, 121.5
    .ConvertToShape.Select
End With

@banzai : tu peux l'avoir sur 2003, il faut ajouter la barre d'outils 'Dessin'.

eric

Bonsoir

Merci eric

J'ai la barre dessin toujours affichée, mais jamais je n'avais fait attention à cette option

Tous les jours j'apprends

Je vais m’amuser un peu

Salut,

Peut-être que ce code ci correspond à ceux que tu cherche.

Il est a copier dans le fichier code dédié à ta feuille.

    
Private Sub Worksheet_SelectionChange(ByVal Target As range)
        If Not Application.Intersect(Target, range("A1")) Is Nothing Then
                CommandBars("Drawing").Controls(3).Controls("&Lignes").Controls(6).Execute
        End If
End sub

Dans ce code, lorsque tu sélectionne la cellule A1, tu lance la main levée.

Cordialement à toi

Bonjour,

je ressuscite ce sujet.

J'ai utilisé cette fonction durant longtemps, mais depuis la dernière MAJ d'Office, elle ne marche plus !

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("F:F")) Is Nothing Then
        CommandBars("Drawing").Controls(3).Controls("&Lignes").Controls(6).Execute
    End If
End Sub

Sur un Excel 2016 16.0.4498.1000, cette fonction marche bien.

Sur la dernière MAJ en Excel 2016 16.0.11629.20164, ça ne marche plus !

J'obtiens le message suivant :

capture capture2

Auriez vous idée de la cause de cette erreur ?

Merci.

Bonjour,

le plus simple est d'enregistrer une macro pour définir la position de la case signature sur la feuille.

est d'insérer le "contrôle activX" InkPicture

 ActiveSheet.OLEObjects.Add(ClassType:="msinkaut.InkPicture.1", Link:=False _
        , DisplayAsIcon:=False, Left:=674.25, Top:=72.75, Width:=165, Height _
        :=88.5).Select

Bonjour et merci de cette réponse rapide,

Cette solution ne me convient pas trop. Il s'agit d'un tableau avec une signature en bout de chaque ligne saisie.

Je remplie les valeurs des colonnes 1 à 4 au clavier et au moment ou je sélectionne la cellule 5 il ouvre automatiquement une saisie a main levée que je peux faire avec une petite tablette signature

De plus votre solution ne me propose pas de saisie manuscrit, cela crée juste un petit rectangle blanc.

Bonjour et merci de cette réponse rapide,

Cette solution ne me convient pas trop. Il s'agit d'un tableau avec une signature en bout de chaque ligne saisie.

Je remplie les valeurs des colonnes 1 à 4 au clavier et au moment ou je sélectionne la cellule 5 il ouvre automatiquement une saisie a main levée que je peux faire avec une petite tablette signature

De quelle manière ? un userform s'ouvre pour dessiner ?

De plus votre solution ne me propose pas de saisie manuscrit, cela crée juste un petit rectangle blanc.

Ben oui un rectangle blanc mais on peut justement écrire à la souris ou a la tablette

Rechercher des sujets similaires à "dessin main leve vba"