| ||||||||
Petit astucien | Bonjour. Je cherche à pouvoir remplir facilement des cellules Excel 2010 avec des options comme « Oui | Peut-être | Non »… De ce que j’en connais, les contrôles ActiveX sont des objets qu’on associe à une feuille, non à une cellule. Comment faire pour avoir ces options qui apparaissent au niveau de la cellule ? Merci d’avance pour votre aide. Pjouv Windows 10 Office 2010 | |||||||
Publicité | ||||||||
| ||||||||
Petit astucien | Bonjour Je n'ai pas Excel 2010, mais je pense que c'est pareil, utilisez la "Validation de données". Positionnez-vous sur la cellule de votre choix -Dans le bandeau, sélectionnez "Données" -Dans l'onglet "Outils de données", sélectionnez "Validation de données" -Dans la fenêtre qui s'ouvre, dans l'onglet "Options", dans "Autoriser", sélectionnez "Liste" -Dans "Source" , tapez: Oui;Peut-être;Non -Fermez en cliquant sur "OK" -Vous pouvez recopier cette cellule autant de fois que vous le voulez. Cdlt
| |||||||
Petit astucien | Merci beaucoup pour votre réponse qui est intéressante, mais qui ne répond pas à mon besoin : je trouve les listes de valeur peu pratiques pour affecter à une cellule des options aussi simples.
En continuant mes recherches, j’ai trouvé quelqu’un qui proposait une solution plus proche de ce que je cherche : en contrôlant le double-clic sur une feuille, on peut affecter le caractère « √ » à une cellule, ou faire une bascule entre deux valeurs « Oui | Non » par exemple.
Pas encore exactement ce que j’aurais souhaité, mais ça s’en rapproche. J’en mets le code VBA ci-dessous. Il faut le coller dans le code de la feuille concernée.
Version avec coche' De Zeitouni - 10/04/2006. ' http://forum.telecharger.01net.com/forum/high-tech/LOGICIELS/Bureautique/cocher-cellule-excell-sujet_255041_1.htm Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ' Fonctionne en faisant, à l'intérieur d'une zone de cellules choisie, ' un double clic sur la cellule pour faire apparaître ou disparaître la coche. ' Adapté par Pjouv le 9/7/2016. Dim CocheSt As String CocheSt = ChrW(8730) ' Caractère Unicode représentant une coche (en fait le signe "racine carrée"). With ActiveCell ' Mettre ici les limites de colonnes et des lignes : If (.Column > 11 And .Column < 15) And (.Row > 11 And .Row < 10000) Then ' Si la case est déjà cochée : If .Value = CocheSt Then .ClearContents Else .Value = CocheSt ' Mise en forme (optionnel) : .Font.Name = "Arial" .Font.Size = 12 .Font.Bold = True .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End If ' Sort de la cellule (Escape) : Cancel = True ' Sinon, peut aussi se déplace sur la cellule suivante : ' Cells(.Row, .Column + 1).Activate End If End With End SubVersion Oui | NonPrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With ActiveCell ' Mettre ici les limites de colonnes et des lignes : If .Column >= 4 And .Column <= 6 And .Row > 1 Then Select Case .Value ' Si la case est vide ou déjà mise à Non : Case Is = "Non", "" .Value = "Oui" ' Sinon : Case Else .Value = "Non" End Select ' Sort de la cellule (Escape) : Cancel = True End If End With End Sub
| |||||||
Petit astucien | RE Ma proposition simple ne vous convient pas, vous préférez passer par du VBA, pourquoi pas? Voici, double-cliquez dans la cellule de votre choix pour voir apparaître le liste de choix http://www.cjoint.com/c/FGkmNdhkvLw Cdlt
| |||||||
![]() ![]() |
C'est pourtant ce qu'il y a de mieux et de plus simple dans ce cas ! Mais pourquoi faire simple... Cordialement.
| |||||||
Petit astucien | Merci beaucoup d’avoir pris le temps de me répondre.
Non, cette solution est moins bonne que la première que vous aviez proposée car il faut en plus faire un double clic avant d’accéder au menu.
Car c’est cela que je trouve pénible dans la solution de la validation de données : il faut d’abord cliquer sur le triangle du menu pour le faire apparaître, puis aller sur l’item choisi. Quand on a un grand nombre de modifications à faire, ça devient vite pénible.
Ce que je cherche, ce serait d’avoir dans chaque cellule d’un champ quelque chose qui ressemble à cela :
Merci encore de vous être intéressé à la question. | |||||||
Astucienne ![]() |
http://www.top-assistante.com/bureau/excel/formulaire/formulaire2.php http://www.admexcel.com/guides/excel2007_03/excel2007-03_019.htm
Edit : un fichier exemple dans le premier lien est accessible Modifié par Gabrilou le 10/07/2016 17:22 | |||||||
Petit astucien | Je reprends la parole car votre réponse "Quand on a un grand nombre de modifications à faire, ça devient vite pénible." me surprend. En effet, si vous tenez vraiment à appliquer des cases d'options affecter à chaque cellule et que la quantité de cellules soit importante le mot "pénible" va prendre tout son sens, parce que il faut affecter une cellule liée à l'option autant de fois qu'il y a de cellules. pas sûr que cela soit plus pratique. Une dernière fois je peux vous proposer de reprendre le code que je vous ai fourni, mais plutôt que de l'affecter à la macro "Worksheet_BeforeDoubleClick", remplacez le nom de la macro "Worksheet_BeforeDoubleClick" par "Worksheet_SelectionChange", ce qui évitera le double -clic, il ne restera qu'à faire le choix dans la liste. Si cela ne vous convient pas, essayez d'appliquer la méthode de Gabrilou que je salue. Cdlt | |||||||
Petit astucien | Merci beaucoup, mais il s’agit toujours de contrôles associés à une feuille, non à une cellule.
Mais je ne connaissais pas ces sites. Top-assistante semble bien fait. C’est intéressant en tout cas.
Merci encore. | |||||||
Petit astucien | mais il s’agit toujours de contrôles associés à une feuille, non à une cellule, OUI, mais n'ayant pas vu comment était fait votre fichier, on ne peut faire que des suppositions, maintenant dans le code fourni, on peut spécifier une plage de cellules et non la feuille entière (il suffit de rajouter une ligne de code), mais pour cela il faut nous donner cette plage de cellules.
| |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|
Sujets relatifs | ||
|