liste déroulante

grenouillexcel

XLDnaute Nouveau
Bonjour à tous,

Désolé d'enquiquiner avec une question "bas de gamme" mais j'ai cherché dans le forum sans trouver exactement ce qu'il me faut (dans le genre réponse simplissime) :

1 comment fait-on pour créer une liste déroulante dans un UserForm ?

2 comment faire pour que le choix fait parmi les items de cette liste déroulante s'affiche à la fois dans une textbox (ou label peut-être ?) du même Userform et dans la feuille Excel ? (Dans ce cas, est-il plus simple de prendre le résultat obtenu dans la textbox de l'UserForm pour l'envoyer vers la feuille Excel ?)


En remerciant par avance celle ou celui qui fera preuve d'altruisme envers le débutant que je suis.

Grenouillexcel.
 

ERIC S

XLDnaute Barbatruc
Re : liste déroulante

Bonjour

où se trouvent les données de ta liste?

un exemple, données nommées (liste) par insertion nom définir

pour le code de l'usf, alt F11
 

Pièces jointes

  • liste.xls
    23 KB · Affichages: 186
  • liste.xls
    23 KB · Affichages: 186
  • liste.xls
    23 KB · Affichages: 186
Dernière édition:

grenouillexcel

XLDnaute Nouveau
Re : liste déroulante

ERIC S à dit:
Bonjour

où se trouvent les données de ta liste?

un exemple, données nommées (liste) par insertion nom définir

pour le code de l'usf, alt F11


Mon cher Eric,

Merci pour ton explication, çà marche en effet. Mais est-il obligatoire de mettre les données dans une feuille de calcul - Ne peuvent-elles pas être inscrites dans le programme entre private sub et end sub ?

Maintenant, avec 2 listes déroulantes :
- la première a permis 1 choix dans sa liste
- la seconde a permis 1 choix dans sa liste
- la comparaison entre les 2 choix donne une réponse fonction de ces choix.
Dur, non ?

Je te joins copie de mon pro(blème)gramme, tu verras tout de suite où je coince.

Encore merci pour ton aide, bien cordialement,

Philippe.
PS : Dans la PJ, j'ai noté ce que je voulais demander au départ mais je pense qu'il vaut mieux que je procède par étapes (pas à pas...). J'ai besoin de ce programme pour mon travail, mais vu mon niveau Excel, j'ai peut être été présomptueux...
 

Pièces jointes

  • recapitulatif_doc_unic_.zip
    32.3 KB · Affichages: 55

ERIC S

XLDnaute Barbatruc
Re : liste déroulante

re

liste à l'initialisation, ta première question

"Maintenant, avec 2 listes déroulantes :
- la première a permis 1 choix dans sa liste
- la seconde a permis 1 choix dans sa liste
- la comparaison entre les 2 choix donne une réponse fonction de ces choix.
Dur, non ?"

cela correspond à quoi dans ton fichier (9 et 11)? si oui tu mets une textbox comme dans mon exemple que tu remplis quand clic7 et quand clic8

travail sur document unique???

tu as intérêt à ne réaliser les modifs que par usf (enlever les choix sur la feuille voire protéger la feuille)

sur quel champ choisis-tu la ligne à modifier (gisement?)
 

Pièces jointes

  • liste.xls
    30.5 KB · Affichages: 115
  • liste.xls
    30.5 KB · Affichages: 113
  • liste.xls
    30.5 KB · Affichages: 112
Dernière édition:

grenouillexcel

XLDnaute Nouveau
Re : liste déroulante

Mon cher Eric,

Quel talent ! Vraiment excellent ! Je suis enchanté.

Je vais mettre tout çà dans le programme initial (dans l'exemple envoyé il n'y a pas tout compte tenu de la limite en taille des PJ). Je vais tenir compte de ton analyse concernant l'accès à la feuille et faire en sorte que tout se commande depuis le UserForm.

Dès que j'aurai avancé, je te recontacte pour te dire (et, si tu le permets, pour te reposer encore 1 ou 2 colles).

Jamais je n'aurais pensé qu'Excel soit si puissant, à condition d'être bien utilisé (j'ai fais un grand... pas).

En te remerciant encore, très sincèrement pour ton aide parfaitement efficace et pour le temps consacré à me sortir de l'impasse.

Bien cordialement, Philippe
 

grenouillexcel

XLDnaute Nouveau
Re : liste déroulante

Mon cher EricS,

J'ai tout entré dans le programme de base, impec !

Peux-tu répondre aux questions suivantes ,

1 - Malgré de longues recherches, je n'ai pas trouvé comment faire pour différencier les lignes dans la listbox, un truc du genre couleur de ligne ou de police differente une ligne sur deux (il parait que c'est impossible). As-tu une idée là dessus ?

2 - Je voudrais que msgbox (vous devez remplir toutes les rubriques !) apparaisse dès qu'une rubrique a été oubliée et non pas seulement pour la textbox 1 comme c'était le cas initialement. J'ai réussi en créant un msg box pour chaque rubrique (if textbox 1...end if puis if textbox2...end if etc). Plein de lignes pour pas grand chose...

3 - Je voudrais aussi faire un petit fichier d'information qui remplacerait le userform (le présent programme... cgss...) j'ai pensé fichier hlp ou chm mais il y a peut etre moyen de faire un truc sympa dans un UserForm (comment intégrer des images ?), qu'en penses-tu ?

4 - J'ai vu sur le net qu'il y avait possibilité de faire apparaître le userform de saisie sur une page blanche excel sans barre de menu, sans barre d'outils, bref sans rien sauf un titre (le tableau final étant appelé par un bouton du Userform). les codes proposés ne m'inspirent pas. As-tu qq chose dans tes archives ?

5 - Comment faire pour "protéger le tableau contre toute saisie qui ne serait pas issue du masque de saisie ? (sans voir apparaitre le message feuille protégée...), le retour au masque de saisie se faisant par un bouton "saisie" dans la feuille.

6 - Enfin, comment faire pour que la zone d'impression couvre systématiquement et automatiquement toute la partie écrite sans qu'il soit besoin d'intervenir dans le tableau pour la sélectionner ? (Le tableau final est prévu être imprimé sur feuille 100x50 cm pour affichage dans l'entreprise). En effet, si on protège bien la feuille mais qu'il faille enlever la protection pour imprimer, à quoi bon...

7 - Et une question "annexe" ... Quand je fais une macro dans un fichier pour dire enlevez barre de formule, barre de ... et que je sélectionne "pour ce classeur" dans la boite contextuelle qui va avec, tous mes autres fichiers sont affectés et si je fais réapparaitre les barres dans un fichier quelconque, le fichier protégé prend en compte (bref, je voudrais que la macro ne concerne que le classeur voulu.

___

Je n'ai pas bien compris le fonctionnement de la Textbox20 dans ton exemple, je sais qu'elle a un rôle important concernant la listbox, d'ailleurs quand je l'ai enlevée en me disant "tiens Eric a mis une textbox en trop !" quel cirque dans le programme...

Tu peux prendre ton temps pour répondre, j'imagine ne pas être le seul à te harceler... Mais vraiment, encore merci pour ton aide. Lorsque j'aurais fini l'ensemble je t'enverrai l'oeuvre finale (mais c'est gros) comment procéder ?

Bien cordialement,

Philippe.
 

ERIC S

XLDnaute Barbatruc
Re : liste déroulante

Bonjour

quelques réponses

textbox20 stocke la ligne sélectionnée quand on fait une modif, il y a d'autres façon de la faire mais celle là en vaut une autre je pense

7/ dans ce cas tu modifies l'aspect d'Excel et non celui du fichier donc sauf erreur, si tu as plusieurs fichiers ouverts ils seront tous affectés

6/ normalement excel détermine seul la zone à imprimer selon les lignes utilisées mais certaines mises en forme peuvent générer des erreurs. tu dois pouvoir en macro dans ta feuille utiliser le worksheet_beforeprint et y déclarer ta zone d'impression, voire des paramètres d'agrandissement mais je pense que ce dernier peut être mis par manuellement car jamais modifié.
exemple:
Worksheets("Sheet1").Activate
ActiveSheet.PageSetup.PrintArea = _
ActiveCell.CurrentRegion.Address
ou
Worksheets("Sheet1").PageSetup.PrintArea = "$A$1:$C$5"

5/ quel est le pb que le message apparaisse? sinon pour modifier par macro sans déprotéger tu protèges ta feuille
sheets("toto").protect userinterfaceonly:=true
(tu peux le mettre en workbook_open)

tu peux aussi changer le message
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox ("Les modifications doivent être faites avec le masque de saisie")
Cancel = True
End Sub

4/ je sais que cela existe, je ne l'ai jamais utilisé. si tu le fais n'oublie pas de remettre tout en place en quittant. tu peux par contre masquer les onglets de ton fichier et modifier ton usf1 pour qu'il te permetes de consulter, modifier (en séparant les 2) imprimer...)

3/ dans un usf tu peux mettre une image de fond (dans les outils, au même titre que listbox..). Perso je pense qu'il serait mieux de mettre cette remarque en bas de ton usf1 en italique car cela risque d'énerver l'utilisateur assez vite

2/ je regarde pour un code plus simple

1/ pas d'idée pour l'instant

un dernier truc, virer les listes de validation sur ta feuille, les modifs n ese faisant que par usf
(exemple en J4) tu dois pouvoir sélectionner toute ta feuille et annuler en une seule fois
 
Dernière édition:

ERIC S

XLDnaute Barbatruc
Re : liste déroulante

a essayer

dans workbook

Private Sub Workbook_BeforePrint(Cancel As Boolean)
With Worksheets("Récapitulatif")
.PageSetup.PrintArea = "$A$1:$S$" & .Range("A65536").End(xlUp).Row
End With
End Sub

pour le remplissage :

For Each mycontrol In Controls
If Left(mycontrol.Name, 4) = "Text" Or Left(mycontrol.Name, 4) = "Comb" Then
If Not mycontrol.Name = "TextBox9" And Not mycontrol.Name = "TextBox11" Then
If mycontrol.Value = "" Then
MsgBox "Toutes les rubriques doivent être remplies !"
mycontrol.SetFocus
Exit Sub
End If
End If
End If
Next
 

grenouillexcel

XLDnaute Nouveau
Re : liste déroulante

Mon cher Eric,

Merci pour tes deux derniers messages et les réponses à ma longue liste de question.

Je vais tenir compte de ton avis sur tous les points "conseils".

Concernant les nouvelles lignes de programme, je vais essayer (il me faut un peu de temps avant d'arriver à mettre ce qu'il faut au bon endroit).

Dès que OK, je te préviens.

Vraiment sympa de continuer à chercher concernant les questions en suspens

Bien à toi.

Philippe.
 

grenouillexcel

XLDnaute Nouveau
Re : liste déroulante

Mon cher Eric,

Toujours en train de travailler sur mon programme. Petit souci :

Lorsqu'on utilise les listes déroulantes (combobox), il est possible de mettre n'importe quoi dans la case ou bien on peut choisir parmi les possibilités de la liste.

Pour éviter qu'on puisse mettre n'importe quoi et que l'opérateur soit obligé de faire un choix parmi ceux existants, j'ai mis "dropdownlist" dans les propriétés des 3 combobox concernées.

Cà marche, pour ce qui est de la saisie, mais lorsqu'on veut appeler une ligne, si celle-ci n'est pas renseignée en entier par exemple, on a une erreur qui renvoit systématiquement à la ligne combobox7 (value indéterminée). D'ailleurs, en général, toute erreur que j'ai pu avoir me ramène à la ligne combobox7....3,7.

En remettant drop..combo au lieu de dropdownlist dans les propriétés, çà remarche, mais si on écrit n'importe quoi dans les combobox, la ligne est prise en compte tel quel (avec les "n'importe quoi" bien enregistrés).

Que faire ?

Ps : Ce problème peut-il être réglé avec le msg box (remplir toutes rubriques) que tu m'as envoyé et que je n'ai pas encore mis en place (Si grâce à la commande que tu m'as adressé le programme bloque tant que toutes les cases ne sont pas remplies, je peux mettre mes dropdownlist... Mais j'ai peur que par la suite çà me crée des ennuis à l'utilisation).

Et puis on n'oublie pas que ce pgm sera utilisé par des opérateurs encore plus nul que moi sous Excel (il doit y en avoir)...

En te remerciant... A bientôt,

Philippe.
 

grenouillexcel

XLDnaute Nouveau
Re : liste déroulante

Mon cher Eric,

Je n'ai pas réussi à retrouver la faute (sans doute une mauvaise transcription de ma part). J'ai eu d'autres difficultés (toujours de ma faute).

J'ai tout repris depuis le début et, selon ton adage, "pas à pas".

Naturellement, çà marche et c'est au TOP ! (impression, gestion des modifications, tout !)

____

1 - Je ne peux pas envoyer de morceaux de programme en pièce-jointe (vu mon niveau, lorsque j'enlève des lignes ou autre, çà me met un tas d'erreurs).

2 - Je pense que mon programme, s'il fonctionne bien, n'est pas très "pro" pour ce qui concerne l'écriture (je répète souvent plusieurs lignes pour que çà marche).

3 - J'aurais aimé que tu puisse jeter un oeil sur le produit fini (comment t'envoyer 160 Ko ?)

4 - As-tu pu trouver une solution pour la modification de l'apparence d'une ligne sur deux dans la listbox ? (de mon côté, mes recherches aboutissent à "impossible").

A bientôt, et encore mille fois Merci.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12