XL 2010 Nom de CheckBox variable - lancer une macro

Bulr6

XLDnaute Nouveau
Bonjour à tous,
je pense déjà qu'il me faudrait un coup de main pour utiliser les bons termes pour ma demande.

Je vais être le plus simple possible. J'ai un fichier dans lequel je récupère des mails provenant de outlook. ça c'est ok ! Je copie certaines de ces infos dans la première ligne vide de ma feuille (pour l'instant sheets(1)) et sur la dernière colonne je crée une checkbox avec une caption fixe (traiter ! ) et un nom variable (CheckBox + numéro de la ligne).
Le résultat est visible sur l'image. En ligne 3 le contrôle s'appelle CheckBox3 et en ligne 16 il s'appelle CheckBOx16

Ma question c'est comment faire réagir ces controles (lancer une macro) alors que ces contrôles n'ont pas de code.

In fine le but sera de lancer différentes actions : envoi mail / déplacer la ligne vers une autre feuille /donc supprimer la ligne et surtout supprimé le checkbox

J'espère que certains d'entre vous aurons la patience de me lire et de me guider dans ma démarche
 

Pièces jointes

  • Sans titre.png
    Sans titre.png
    40.3 KB · Affichages: 45

LaCeline

XLDnaute Nouveau
Bulr6, Chti160, le forum,

Il y a des checkbox de formulaire et des chechbox de contrôle ActiveX. Il se manipule différemment.

Les checkbox de formulaire doivent être liés à une cellule (menu contextuel, "Format de contrôle", onglet Contrôle) . Ensuite, menu contextuel à nouveau sur le checkbox "Affecter une macro".

Les chechbox de contrôle ActiveX , menu contextuel sur le checkbox "Visualiser le code".



LaCéline
 

Bulr6

XLDnaute Nouveau
oui oui ça j'ai compris ... mais mon problème c'est qu'elles sont créé de manière dynamique .

En gros, je récupère des informations de mail via outlook et dans cette procédure à chaque mail reçu j'insère une check box

ligne = Sheets(1).[A65000].End(xlUp).Row + 1
L = Cells(ligne, 14).Left
T = Cells(ligne, 14).Top
W = Cells(ligne, 14).Width
H = Cells(ligne, 14).Height
Set Obj = Sheets(1).OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=L, Top:=T, Width:=W, Height:=H)
Obj.Name = "CheckBox" & ligne
Obj.Object.Caption = "Traiter ! "

Donc a chaque nouveau mail sur les colonnes A:M j'insère des éléments du mail et en colonne N j'insère une checkbox ... Donc celle ci n'a aucun code de base.

moi il me faudrait une sorte de code générique (dans la feuille j'imagine) qui a chaque que je clique sur la checkbox traite la ligne concernée .... ce sera de déplacer la ligne vers une autre feuille puis de supprimer la ligne et la checkbox dans le feuille d'origine.

Désolé par contre pour la forme du message j'ai un petit bug sur mon navigateur qui m'empêche de baliser mon petit morceaux de codes
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Bonjour à tous,

oui oui ça j'ai compris ... mais mon problème c'est qu'elles sont créé de manière dynamique .

En gros, je récupère des informations de mail via outlook et dans cette procédure à chaque mail reçu j'insère une check box

et c'est bien là le problème,
si le nombre de lignes est important, le nombre de CheckBox le sera également
la solution la plus simple pour ne pas alourdir inutilement le fichier est l'utilisation de fausses cases à cocher

voir fichier joint

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    122.3 KB · Affichages: 29

Bulr6

XLDnaute Nouveau
Pour un retour ... j'ai bossé sur la proposition des fausses cases à cocher. Qui au final répond bien à ce que je voulais faire ... donc par rapport à ma demande le sujet est résolu :)
Merci à tous
phlaurent55 je vais regarder ta proposition aussi, un grand merci pour le temps accordé à ma requête.

dans mon fichier il ne me reste qu'un problème quand à la lecture d'email d'outlook mais je vais ouvrir un post dédié pour plus de clarté
 

Statistiques des forums

Discussions
294 211
Messages
1 936 897
Membres
188 099
dernier inscrit
dedispotter01