Userform - Excel -Signature

Bonjour à tous et merci par avance.

Pour aider un ami dans la tenue du magasin d'un festival, je lui prépare un petit fichier excel des emprunts du materiels par les bénévoles.
On va éviter des tonnes de papier cette année.

Bon je débute en Userform, j'avoue clairement.

j'ai déja récupéré un code pour la signature manuscrite des gens...et elle s'adapte automatiquement dans la cellule sélectionnée avant dans excel.
Ca c'est top.

mais j'avoue je cale sur le reste.

En fait j'aurais 5 champs.

Date, Emprunteur, Comission, Produit, Quantité et signature.

Emprunteur, Comission, Produit seraient si possible liste déroulante à partir de données disponibles dans feuille du classeur.

Et dans userform, je ne sais pas comment faire pour que mes saisies aillent directement dans le fichier excel...comme des entrée que j'aurais fait moi même dans le fichier excel en mode tableur.

Ci joint le fichier sur lequel je bosse avec mon mode signature, l'idée c'est que j'intègre la saisie de données sur le même userform.

20test-userform.xlsm (29.37 Ko)

Bonsoir,

ci-joint un premier jet :

31test-userform1.xlsm (32.07 Ko)

Merci beaucoup

Je vais travailler à partir de cette base.

Merci Merci

Je viens de checker ton fichier.
Très bien.
Petite question, le champ emprunteur dans le userform comment tu vas chercher les données. Je n'ai rien vu dans le code, et rien dans les propriétés.

Petite question, le champ emprunteur dans le userform comment tu vas chercher les données

Propriété RowSource de la Combobox affectée directement dans la définition du contrôle ActiveX, donc à la compilation (et non à l'exécution = code).

J'ai bien vu Rowsource mais c'est écrit "empunteurs" et j'ai rien qui s'appele "empunteurs".

directement dans la définition du contrôle ActiveX--> tu m'as perdu en route :-)

J'ai bien vu Rowsource mais c'est écrit "empunteurs" et j'ai rien qui s'appele "empunteurs".

"Emprunteurs" est le nom du tableau structuré présent dans la feuille Emprunteur. La plage de cellules à laquelle ce nom fait référence est indiquée dans le Gestionnaire de noms (pour y accéder, cliquer sur l'onglet Formules).

NB : Pour comprendre ce qu'est un tableau structuré, voir le tutoriel de Pedro22 : https://www.excel-pratique.com/fr/astuces/tableau-structure

Me voilà un petit peu de retour...j'ai bossé sur mon fichier.
Petit question à force de faire des essais j'ai beau effacer mes essais, il ne redémarre pas sur la première ligne quand j enregistre de nouvelles entrées.
Comment je reinitialise l'index à zero pour qu'il comprenne qu'il faut recommencer sur la premiere ligne.

Comment je reinitialise l'index à zero pour qu'il comprenne qu'il faut recommencer sur la premiere ligne.

Pour recommencer à la première ligne, il ne faut pas effacer mais supprimer toutes les lignes du tableau structuré.

Merci j'y avais pas pensé.

Bon j'ai un petit hic quand même dans mon fichier.
1- Parfois message d'erreur : La méthode Sélect de la classe range a échoué.
Ca arrive quand je bascule d'un module à l'autre, mais ça enregistre quand même mes données.

2 - Sur mon module Talkie ou j'ai fait copié collé avec les modifs un message erreur quand je veux enregistrer un emprunt mais là je vois pas pourquoi.

ci joint le programme ca sera plus simple

Sur mon module Talkie ou j'ai fait copié collé avec les modifs un message erreur quand je veux enregistrer un emprunt mais là je vois pas pourquoi.

car votre tableau situé sur la feuille Talkie n'est pas un tableau structuré. Pour le créer :

1- sélectionner la plage de cellules A1à F2

2- cliquer sur l'onglet Insertion, puis sur le bouton Tableau

3- la fenêtre "créer un tableau" s'affiche

4- cocher "Mon tableau comporte des entêtes" et cliquer sur "OK'

5- votre tableau structuré est créé.

Après, il faut affecter à votre tableau structuré le nom : Talkies. Pour cela, cliquer sur n'importe quel élément du tableau et un nouvel onglet vert s'affiche dans le menu du ruban, en haut à droite.

1- cliquer sur cet onglet vert

2- vous voyez alors apparaître en haut à gauche le nom du tableau créé par défaut

3- remplacez-le par : Talkies et validez votre modification en appuyant sur la touche Entrée.

Merci beaucoup c'est corrigé.
Parfait

Et une petite idée sur ce message d'erreur récurrent .

est ce que c'est le fait d'avoir trois modules de signatures ? ca marche un coup sur deux sans erreurs et l'erreur apparait quand on change de module.

Je viens de comprendre mais j'avoue ne pas savoir comment faire.
Le message arrive quand la feuille excel qui est active en dessous mon userform n'est pas celle qui correspond à l 'enregistrement que je veux faire.
ex : feuille emprunt active et je saisi un pret talkie message erreur

si je suis sur emprunt et saisie emprunt pas d'erreur.

Et une petite idée sur ce message d'erreur récurrent .

Je pense que le changement de module est trop rapide et que la procédure du précédent n'a pu eu le temps de se terminer : l'instruction "cadre.Chart.Paste" ne s'est pas forcément entièrement finalisée.

Une solution pourrait être de conditionner le lancement d'un nouveau module au déchargement du précédent. Autrement dit, au lancement, il ne doit rester qu'un seul UserForm en mémoire, le UserForm2. Ci-dessous code :

Private Sub Bouton_emprunt_mat_Click()
    If Not UserForms.Count > 1 Then UserForm1.Show
End Sub

Private Sub Bouton_emprunt_talk_Click()
    If Not UserForms.Count > 1 Then UserForm4.Show
End Sub

Private Sub Bouton_emprunt_veh_Click()
    If Not UserForms.Count > 1 Then UserForm3.Show
End Sub

Arf...
j'ai mis ton code dans userform2, mais toujours le même problème.

Oui, autant pour moi. On oublie ma précédente remarque et la modification du code correspondante.

Il faut tout simplement ajouter l'instruction : feuille.Activate

        With signature
            feuille.Activate
            Set cadre = feuille.ChartObjects.Add(.Left, .Top, .Width, .Height)

PARFAIT

Merci encore.

Bonjour
C'est la derniere ligne droite...

'remplissage ligne
.ListColumns("DATE").DataBodyRange(i) = Now
.ListColumns("EMPRUNTEUR").DataBodyRange(i) = Me.cbx_emprunteur_veh
.ListColumns("VÉHICULE").DataBodyRange(i) = Me.cbx_véhicule
.ListColumns("COMMISSION").DataBodyRange(i) = Me.cbx_commission_veh
.ListColumns("RETOUR").DataBodyRange(i) = xxxxxxxxx

J'aimerais que la ligne retour, la valeur "N" lui soit affecté directement. Sans saisi, sans box direct.
Je vois pas quelle formule mettre.

merci

ListColumns("RETOUR").DataBodyRange(i) = "N"

Hello

Désolé beaucoup de boulot cette semaine.
Petite question , l'ultime car demain c'est le début du grand montage donc on utilise le fichier excel pour gérer tout ça.

Si je mets une case à cocher dans mon userform , comment je peux l'associer à un champ, et dire

si cocher elle prend telle valeur, si non cochée ,elle prend telle valeur.

Rechercher des sujets similaires à "userform signature"