Lié une cellule à une case cocher sur un formulaire

Bonjour à tous,

Voici mon souci.

J'ai créé un formulaire qui s'affiche grace a un bouton de commande.Jusque là pas de probleme.

Dans ce formulaire il y a des cases à cocher.

Je voudrais qu'en cliquant sur le bouton "valider" les labels qui sont cochés s'affichent dans la colonne "D" ( D6;D7;D8...)

Est ce que vous pourriez m'aider ?

Merci d'avance

54gamme-test.xlsm (29.04 Ko)

Bonjour Emy,

serait-ce ceci dont tu as besoin ?

'
iFlag = 5
For i = 1 To 19
    If Me.Controls("CheckBox" & i).Value = True Then
        iFlag = iFlag + 1
        Worksheets("Gamme").Range("D" & iFlag).Value = Me.Controls("Label" & i).Caption
    End If
Next i
'

(Remerciements à MFerrand pour ses précieuses leçons! )

A+

Merci curulis57 pour ta réponse.

En effet , cela fonctionne parfaitement.

Par contre, comment faire si je décoche un label pour que celui ci ne s'affiche plus dans la colonne ?

Salut Emy,

pas le temps de faire ça avant la fin de soirée...

Dès que c'est fait, je reviens vers toi!

A+

Bonsoir ou bonjour Emy,

voici ton fichier!

J'y ai amené quelques transformations, histoire de me simplifier la vie!

  • Les CheckBox possèdent une propriété CAPTION qui rend inutile la création et l'alignement fastidieux d'une ribambelle de Labels : j'ai donc éliminé les Labels pour nommer directement les CheckBox ;
  • J'ai dé-fusionné les colonnes D:E ce qui facilite et sécurise le code ;
  • Tous ces contrôles peuvent être nommés. Je te conseille de leur donner un nom en rapport avec leur contexte pour faciliter la lecture de ton code futur !

Pour ta demande, j'ai opéré comme suit :

  • le Bouton EDITER UNE GAMME ne doit servir que lors de la création d'un nouveau document. Ça efface tout !
  • pour supprimer une opération, il te suffit de cliquer directement sur celle-ci, en colonne D. Une boîte de dialogue te laissera une chance de refuser la suppression.
  • pour ajouter une opération, il te suffit de cliquer sur la PREMIERE ligne vide en colonne D. La USF s'ouvre, les opérations déjà sélectionnées étant désactivées, histoire de ne pas les sélectionner une deuxième fois. Tu choisis l'opération supplémentaire et tu valides.

Voilà, je pense n'avoir rien oublié!

Bon travail!

Avec plaisir!

A+

58gamme.xlsm (32.67 Ko)

Bonjour curulis57,

Merci beaucoup de t'etre penché sur mon souci.

Le resultat est exactement ce que je souhaitais.

Par contre j'ai rajouté quelques données , remis en forme l'USF car j'ai plusieurs "groupe" de "tache".

Donc ca ne fonctionne plus maintenant

Le nombre de checkbox fonctionne jusqu'a 150 mais toutes les checkbox au dela ne sont pas pris en compte !

Est-il possible egalement de verrouillé toute les cellules pour ne laisser que la colonne D déverouillé ? Quand j'ai essayé de le faire il me signale une erreur

Merci d'avance !!

32gamme-rapide.xlsm (45.44 Ko)

Bonjour Emy,

...que cela ne fonctionne pas au-delà de 150 CheckBox ne m'étonne pas... puisque ta boucle FOR NEXT s'arrête à...150!

Par contre, je vois que tu as utilisé la propriété CAPTION! On gagnera du temps!

Tu veux verrouiller ABC... très bien... comment se remplissent-elles alors? Avec quoi et d'où?

Qui remplit ces colonnes? Quand verrouiller?

Y a-t-il un ordre chronologique logique à respecter dans l'affichage des tâches (je vois N° de tâche...).

Tant qu'à faire, explique-moi tout en détail, histoire de ne pas recommencer à chaque fois...

Bonne journée!

A+

Les colonnes A , B et C se remplissent grace a une recherché vertical ( c'etait le plus simple , je pense )

pour l'ordre chronologique des taches , il faut que je me penche dessus car il faut que je determine un ordre chronologique sur les +190 taches que j'ai dans mon formulaire )

En piece jointe , le fichier avec la feuille qui regroupe les données pour la recherche vertical

Merci pour ton aide

52gamme-rapide.xlsm (187.79 Ko)

Salut Emy,

Ah! Il y a de l'anglais, maintenant! 8)

C'est quoi, CHRONO et CODE ? Ça va servir ? Où, quand, comment ? Dans la feuille "GAMME" ? Je dois préparer quelque chose ?

Je vais prévoir un truc pour un éventuel ordre chronologique des tâches, on ne sait jamais...

Quelle affaire!

Sois précis, stp!

Avec plaisir mais... sans recommencer 20 X, stp!

A+

Oui il y a de l'anglais ( profession oblige ), mais cest pas important pour le fichier car il sera uniquement en français.

Les numeros chrono et code ne servent pas non plus pour mon fichier.

Jai seulement besoin d'indiquer la tache grace aux case cochés puis grace a la recherche verticale les colonnes B et C doivent se remplir.

C'est déjà bien avancé mais niveau codage vba je galere ! Donc merci mille fois pour ton aide

Emy,

j'ai pris note!

Je te ferai quelque chose de bien cette nuit! J'aurai plus de temps devant moi... j'espère!

8)

Ad libitum!

A+

Bonsoir Emy,

dis, camarade, j'apprécierais beaucoup que TU mettes de l'ordre dans tes CheckBox!!!

Qu'elles ne soient pas dans l'ordre numérique est déjà fort gênant (s'il fallait numéroter l'ordre chronologique des tâches) mais, si, en plus, il en manque ( la 157 ?), comment veux-tu qu'une boucle ne plante pas ?

Ce sera avec plaisir mais... dans de meilleures conditions!

A+

Je vais vérifier tout ca et remettre de l'ordre dans les checkbox.

Bon voilà !

J'ai renommé les Cb et modifié le code vba et tout function parfaitement !

J'ai également repris la rechercheV car il y avait des souci d'orthographe.

Donc maintenant chaque Cb cochée s'affiche en colonne "D" et les colonnes "B" et "C" se remplissent grace a la recherche verticale.

Par contre, est ce normal que la mise en forme ( contour de cellule ) se modifie parfois quand on supprime une tache ?

Autre question , comment faire pour que certaines Cb soient lié ? ( si une Cb est coché une autre doit se cocher automatiquement )

Merci d'avance pour le temps passé sur mon projet

18gamme-rapide.xlsm (188.32 Ko)

Salut Emy,

  • Je n'ai pas vu de problème de "contour" à la suppression ici... à vérifier encore...
  • Par contre, je ne sais pas encore comment faire pour garder ta formule RECHERCHEV en cas de supression d'une tâche puis rajout d'une ligne pour garder ton total de 49 lignes

SI L Y A UN AS QUI LIT CECI, MERCI DE REFILER L'INFO!

- A propos de ta Feuil2, "MISE EN PLACE DES APPARAUX DE LEVAGE", ce ne serait pas APPAREILS?

Tu devrais tout mettre en majuscules (j'ai vu CONTRoLE) pour éviter les problèmes d'accent...

On ne peut pas tout savoir, hélàs! ... à réfléchir...

- Quelles Checkbox doivent être liées? Y a-t-il une logique calculable?

Ça va aller!

A+

Concernant la suppression d'une tache, qui fait disparaitre la rechercheV, n'est il pas possible de "forcer " une cellule vide en colonne "B" et "C" a contenir la formule de recherché V

Comme ca , en supprimant les données en "D" la formule reste quand meme presente en "B" et "C". puis active une mise en forme conditionnel ( qui est deja presente, genre si "B";"C" = erreur , la police reste blanche donc invisible )

Pour la feuil2 , en effet on dit un appareil , des appareils. Mais dans ce cas précis ( lors de l'utilisation d'appareil de lavage , manutention .. ) le pluriel se dit des apparaux.

Je pense qu'on est tout pret du but !

Salut Emy,

j'ai trouvé pour la recopie de la formule!

On ne pense jamais assez à ce bel outil qu'est l'enregistreur de macros!!!!

Je n'ai pas eu de réponse pour la sélection jumelée de CheckBox!?! Tu me donnes des infos ?

A+

Concernant le jumelage des checkbox malheureusement aucune logique calculable.

Je pense que je vais devoir faire ca les une apres les autres mais je dois utiliser quel type de code d'après toi ?

Du style if cb1 = true then cb2 = true else nothing ?

Salut Emy,

si pas de logique calculable, peut-être une constante ?

A+

Je me suis finalement decide à lié les cb en faisant

Private Sub cb2_Change()

cb129.Value = cb2.Value

End Sub

peut etre la facon la plus rapide de faire tous les liens , mais ça fonctionne.

Mon souci reste de pouvoir verrouiller toutes les cellules seule la colonne "D" pouvant etre modifiable.

Ma question est donc : N'est -il pas possible dans le code suivant de n'effacer que la colonne "D" ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'

iFlag1 = Range("D200").End(xlUp).Row

If iFlag1 < 5 Then Exit Sub

iFlag2 = Target.Row

'

'on clique sur une opération pour l'éliminer

If Not Application.Intersect(Target, Range("D5:D" & iFlag1)) Is Nothing Then

'

iRéponse = MsgBox("Êtes-vous certain de vouloir supprimer cette opération ?", vbYesNo)

'

If iRéponse = 6 Then 'Oui

Application.ScreenUpdating = False

Range("d" & iFlag2 & ":f" & iFlag2).Delete shift:=xlUp

Range("f" & iFlag1 & ":f" & iFlag1).Insert shift:=xlDown

Application.ScreenUpdating = True

End If

Exit Sub

End If

'

'on clique en-dessous de la dernière opération pour en ajouter une nouvelle

If Not Application.Intersect(Target, Range("D" & iFlag1 + 1)) Is Nothing Then

For x = 1 To 190

UsfPreparation.Controls("Cb" & x).Value = False

UsfPreparation.Controls("Cb" & x).Enabled = True

For y = 5 To iFlag1

If Range("D" & y).Value = UsfPreparation.Controls("Cb" & x).Caption Then

UsfPreparation.Controls("Cb" & x).Value = True

UsfPreparation.Controls("Cb" & x).Enabled = False

End If

Next

Next

'

UsfPreparation.Show modal1

'

Range("A1").Select

End If

'

End Sub

J'ai essayer mais je ne trouve pas la solution !

Merci d'avance

Rechercher des sujets similaires à "lie case cocher formulaire"