Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Liste déroulante et texte libre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

diego3110

XLDnaute Junior
Bonjour,

Voila mon pb. Je créer un formulaire afin de créer des fiches métiers et d'alimenter au final une BDD.

J'arrive au bout mais il me reste un ou deux pb que je n'arrive pas à regler.


1. j'ai créer des menu déroulant qui renvoie a des compétences. Certaines compétences ne sont pas referencés et ne sont donc pas dans la liste déroulante. Je voudrais laisser le choix à l'utilisateur de taper du texte libre dans ce cas précis ?

Quand j'ecris quelque chose : excel me dit " la valeur que vous avez saisie n'est pas valide - un utilisateur à restreint les valeurs que peut prendre cette cellule"

Qulelqu'un pourrait il m'aider car la je crois être arriver à mes limites.....merci d'avance
 
Bonjour,

Menu Données/validation
Onglet Alerte d'erreurs
Décocher la case "Quand des données non valides sont tapées"

Refaire la manip pour chaque liste de validation

Il n'y aura plus d'avertissement.

A+
 
Re : Liste déroulante et texte libre

Bonjour,

Peut-être comme cela si je ne suis pas à côté de la plaque🙄
Code à mettre dans le Module de l'UserForm

Code:
Option Explicit
Dim X As Integer, Y As Integer, C As Range, i As Byte, temp

Private Sub CommandButton1_Click()
    With ComboBox1
        If .Text <> "" And .ListIndex < 0 Then
            .AddItem ComboBox1, 0
            .ListIndex = -1
        End If
    End With
Range("A1").End(xlUp).Value = ComboBox1.Value
If ComboBox1.ListCount = 0 Then Exit Sub
With Sheets("Feuil1")
    For i = 0 To ComboBox1.ListCount - 1
        .Cells(i + 1, 1) = ComboBox1.List(i)
    Next i
End With
End Sub

Private Sub UserForm_Initialize()
For Each C In Sheets("Feuil1").Range("A:A")
    If Not C = "" Then ComboBox1.AddItem C
Next C
With ComboBox1
For X = 0 To .ListCount - 1
    For Y = 0 To .ListCount - 1
        If .List(X) < .List(Y) Then
            temp = .List(X)
            .List(X) = .List(Y)
            .List(Y) = temp
        End If
    Next Y
    Next X
End With
End Sub
Soit on prend une valeur existante, soit on l'intègre dans une Base de Données en Colonne A... A adapter...

EDIT: Bonjour Hasco... oui c'est aussi une (Excellente) Solution 😱

Bonne Journée
 

Pièces jointes

Dernière édition:
Re: Re : Liste déroulante et texte libre

Re,

Je crois que notre ami parle de liste de validation sur feuille de calcul car le message d'erreur est:

" la valeur que vous avez saisie n'est pas valide - un utilisateur à restreint les valeurs que peut prendre cette cellule"

Qui est le message par défaut d'excel dans ce cas là.

A+
 
Dernière modification par un modérateur:
Re : Liste déroulante et texte libre

Salut Hasco, le Fil

Peut-être comme cela si je ne suis pas à côté de la plaque🙄
à côté de la plaque est un euphémisme... désolé 😱 mais je n'est pas honte... je suis dans l’embarras 😱 et... Si... je suis mort de honte 😱 Ce code pourrait servir à un autre XLD'naute ...s"il arrive à le retrouver😀

encore désolé 🙂

Bonne Journée
 
Re : Re: Re : Liste déroulante et texte libre

Cool, merci pour vos réponses rapides.J'ai utilisé la méthode HASCO.

Autre pb, je suis en train de me demander si je ne fait pas complétement fausse route sur le projet que je suis en train de mettre en place. Si vous aviez 2 minutes pour y jeter un oeil.Ci joint mon fichier en exemple.

Je vous explique :
- 1 er Onglet : j'ai créer sur cette feuille de quoi renseigner une fiche métier. Est-ce bon comme cela ou dois je passer par un USER FORM ou formulaire ?
- 2 eme onglet : une fois que les renseignement seront validé, je lance la macro avec le bouton en bas du 1er onglet pour copier les valeurs saisie dans ma base de données.
- les autres onglet sont les listes pour mes menus déroulants.

Croyez vous que cela est une bonne méthode?

Niveau technique, il me reste un trucs sur lequel je bloque :
_ J'ai creer different menus déroulant dont certains en cascade (exemple ligne 32 ...le menu deroulant de la cellule D32 s'affiche à parti de la selection du menu deroulant de B32. Ok?
- A parti de la si l'utilisateur ajoute une compétence ne se trouvant pas dans la liste, je voudrais l'ajouter à la liste du menu deroulant de la cellule B32 ....pas evident à comprendre, j m'y perds moi même..lol.
Dans ce cas précis , je voudrais ajouter "savoir lire et ecrire en anglais" à la liste "LIRE" se trouvant dans l'onglet "compétences" dans la colonne G.

Encore merci pour votre aide.
 

Pièces jointes

Bonsoir Diego, Dl_13, le fil et le forum,

Diego, comme tu sembles ne pas trop maîtriser encore VBA, je crois que le mode formulaire sur feuille de calcul sera plus simple. De plus coupler avec un peu de vba, on peut faire des choses interressantes.

Voici un exemple à partir de ton fichier.

A+
 
Re : Liste déroulante et texte libre

Bonjour Hasco, le fil et forum,

Merci d'avoir pris du temps sur mon fichier Hasco. Je vois que j'ai enore plein de chose à apprendre.

Si tu crée une macro dans la feuill, il n'y a pas besoin de la lancer et cela est automatiquement lancé lors que tu remplis tes champs...génial.

Un autre truc que je voudrais faire : au niveau des missions (cellule B23), je voudrais proposer une saisie automatique à partir de la liste se trouvant dans l'onglet "MISSIONS"...tu sais comment faire? ...J'ai regardé un peu sur le forum mais cela m'a l'air assez chaud.
Ensuite , idem, si pas dans la liste proposer de l'integrer (mais cela je peux me debrouiller avec ton programme).

En tout cas merci pour tout. C'est genial de trouver des forums et des personnes prêtent à vous aider
 
Re: Re : Liste déroulante et texte libre

Bonjour,

Tu as su faire pour les listes 'Type de compétence' et 'compétence', je te laisse faire pour 'Missions'. Le principe est le même. Crée comme je l'ai fait une formule de contrôle, et dans l'évènement Worksheet_Change, tu devras rajouter une section:

Code:
ElseIf Not Intersect(Target, Range("B23:B27") Is Nothing Then
    '........etc
     AjouterElementAListe Sheets("MISSIONS").range("NomDeLaPlage"), Target.Text

Si tu crée une macro dans la feuill, il n'y a pas besoin de la lancer et cela est automatiquement lancé lors que tu remplis tes champs...génial.

Attention: la macro Worksheet_Change est ce qu'on appelle une macro évènementielle. C'est excel qui en crée la structure (Sub....End sub). Ces macros dites 'évènementielles' répondent à des actions (évènements) de l'interface utilisateur. Celle que j'ai employée répond aux changements de contenu des cellules de la feuille.

S'il est possible d'écrire des macros ordinaires dans le module d'une feuille ou du classeur, on réserve en général ces derniers à la gestion des évènements. C'est pourquoi, la macro 'AjoutElementAListe' se trouve dans un module de code ordinaire.

A+
 
Re : Liste déroulante et texte libre

Nickel,

J'ai compris à quoi cela sert les macro dans les feuilles.

"je te laisse faire pour 'Missions"

C'est juste qu'au niveau de mission, je ne veux pas proposer une liste déroulante mais une saisie semi auto...je pense me débrouiller, j'ai vu un tutoriel la dessus.

J'ai pu rajouter 2 ou 3 trucs...cela prends forme.J'adore!

- Un truc dans la macro que j'ai récuperer c'est le fait de selectionner dans mon 2 eme onglet la premiere cellule vide de la colonne A afin d'y integrer les valeurs se trouvant dans la fiche.

Pb: quand je lance la macro, excel se positionne en ligne 58 ou 59 alors que la 2 eme est déja vide????

Le bout de code utilisé :

'défini la ligne sur laquelle les données seront saisie'
Dim der As Long
der = Range("A65536").End(xlUp).Row + 1

'integre les valeurs dans la base de données
.Cells(der, 1).Value = MET

Sais tu comment lui demander de repartir de la ligne 1 et de voir la premiere cellule vide ??
 
Re,

Hello Chris🙂 (accompagné de bises)

Diego, Chris a entièrement raison d'autant plus que tu ne lui a pas répondu dans ton autre message. Je crois qu'un tour de lecture du côté de la Lien supprimé s'impose.

Sinon, une autre manière de faire dans le classeur joint (pour la liste des missions)
Avec un "combobox" issu de la barre d'outils "Boîte à outils contrôles".

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…