Liste déroulante et texte libre

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
 

chris

XLDnaute Barbatruc
Re : Liste déroulante et texte libre

Rebonjour

...
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
...

Il doit y avoir quelque chose (un espace ?) à la ligne 58 ou 59 d'où le positionnement.
 

diego3110

XLDnaute Junior
Re : Liste déroulante et texte libre

Bonjour Chris,

Merci bcp de ta reponse. Etant nouveau à la fois sur ce forum et dans l'utilisation, je pensais ne pas avoir était assez claire dans la formulation de mon premier message.

Petite astuce : je suis en train de parcourir le forum pour savoir comment arriver à suivre une discussion....même pour cela je dois pas être doué!!lol
Est il possible d'être prévenu lors de la reponse à l'un de mes messages?

Pour revenir à mon pb au niveau des MISSIONS:
. J'ai reussi à créer un menu avec saisie semi-automatique (yeaaahhh)
. à créer les formules pour savoir si ce que j'ai écrit est dans la liste (les formules)
. Par contre au niveau de l'integration dans les listes la macro bug...je remets mon fichier modifié. Je pense qu'il y a un pb dans la macro de la feuill1 quand j'apl la macro "AjouterElementAListe"


Encore désolé chris de pas avoir répondu lors de mon premier post.
 

Pièces jointes

chris

XLDnaute Barbatruc
Re : Liste déroulante et texte libre

Bonjour

Ton calcul der se réfère à la feuille active : il faut ajouter un point devant range pour faire le lien avec With...
Code:
der = .Range("A65536").End(xlUp).Row + 1
Pour le suivi soit tu cliques sur tableau de bord en haut de la page pour voir tous les fils auxquels tu as participé soit tu demandes, en bas de page du mode de rédaction avancé, dans la zone abonnement, à recevoir un mail
 
Dernière édition:

diego3110

XLDnaute Junior
Re : Liste déroulante et texte libre

Chris , Hasco,

Merci bcp pour votre aide précieuse.

La combo box pour les missions.....c'st exactement cela que je voulais réalisé !!!!!!..de la bombe.

Concernant l'utilisation du forum, je le decouvre et ne voulais surtout pas zappé qq un ayant pris le temps de me répondre. J'y ferais attention à l'avenir.

Merci à vous deux.
 

diego3110

XLDnaute Junior
Re : Liste déroulante et texte libre

Bonjour le forum,

Après un bon week-en, je suis de retour avec mon formulaire. J'espere que vous aussi avez passé un bon week .

Hasco, j'ai repris le formulaire et l'ai adaptée selon les demandes des utilisateurs...

Si j'ai bien compris, c'est avec la macro suivante que l'on ajoute une compétence à la liste si elle n'est pas présente :

Public Sub AjouterElementAListe(Liste As Range, ByVal Element As String)
Dim nm As Name
With Liste
Set nm = .Name
.Offset(.Rows.Count - 1).Resize(1) = Element
'redéfinition du nom avec la nouvelle ligne
nm.RefersTo = "=" & .Parent.Name & "!" & .Resize(.Rows.Count + 1).Address
End With
End Sub

Je ne comprends pas à quel moment, on dit :
- ajouter l'element à la fin de la liste ? (Pb : quand je le fait la premiere fois cela me remplace le dernier items de la liste au lieu de rajouer l'items à la fin de la liste).
- pourrais tu m'expliquer vite fait ce que fait cett macro exactement : name, liste ?


...je dois pas encore être bien clair...je remets mon dernier fichier. Merci à tous
 

Pièces jointes

G

Guest

Guest
Re : Liste déroulante et texte libre

Bonjour,

Oui il y a erreur dans .Offset(.Rows.Count - 1).

Ci-dessous la procédure corrigée et commentée.

La plage de cellules que tu passes à la fonction doit correspondre à une liste nommée.

Code:
Public Sub AjouterElementAListe(Liste As Range, ByVal Element As String)
    Dim nm As Name
   'On travail sur la plage nommée passée en paramètre
    With Liste
        'Récupèrer le nom de la plage nommée (de la liste) pour pouvoir la retaillée ci-dessous
       Set nm = .Name
        'rajouter l'élément dans la première ligne sous la liste
        'c'est à dire décaler la plage de son nombre de lignes à partir de la première
        ' retaillée à une ligne
        .Offset(.Rows.Count).Resize(1) = Element
        'redéfinition du nom avec la nouvelle ligne
'C'est à dire retailler la plage à +1 ligne et renvoyer son address dans sa définition
       nm.RefersTo = "=" & .Parent.Name & "!" & .Resize(.Rows.Count + 1).Address
    End With
End Sub

A+
 

diego3110

XLDnaute Junior
Re : Liste déroulante et texte libre

Merci hasco,

C à peu près ce que j'avais compris.

Je souhaiterai une fois l'élement ajouté à la liste (sauf le titre de la colonne).

Avec mes maigres compétences, j'arrive à le faire dans une nouvelle macro que le lance juste après celle ci sur l'ensemble des liste suceptible d'avoir étaient modifiés mais je sais que ce n'est pas l'idéal.

exemple :
Sheets("missions").Columns("A:A").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Sais tu comment l'inclure dans ce bout de programme juste après avoir redimensionné la nouvelle liste ? merci d'avance
 

diego3110

XLDnaute Junior
Re : Liste déroulante et texte libre

re,

Je ne l'ai pas retenu ......pour l'instant (j'ai gardé le fichier que tu as réalisé pour pouvoir l'utiliser plus tard et m'entrainer!!).

La solution que j'ai gardé est la plus simple et c'est surtout celle que j'ai réussi à mettre en place. Je pense que la combobox est plus conviviale mais j'essaie d'être le plus autonome possible (tu vois c pas gagné ...vu le nombre de questions que j'ai pu te poser).

La combobox marche très bien dans le fichier que tu as fait mais quand j'ai voulu reprendre ton programme et le réaliser dans mon fichier ...rien du tout (rien n'apparait dans la liste déroulante).

Je ne voulais pas abuser de temps temps sachant que j'ai une solution qui marche. J'avais pas mal de questions à poser pour arriver à la mettre en place (je suis allé sur les tutoriels pour savoir comment intégré une combobox dans une feuille excel...et encore la zone disparait quand je ne suis plus en mode création!!!...je pars de loin).

Je suis en train de me former en même temps que je réalise ce travail mais si tu as un peu de temps, je voudrais bien essayé de la réaliser en te posant les questions qui font que je n'y suis pas arrivé ?

...mais bon j'ai déja l'impression que c'est toi qui a réalisé les 3/4 de mon taf... et vu la distance qui nous séparent (challans-paris), je ne pourrais pas te payer un coup pour te remercier!!:):)
 

Discussions similaires

Réponses
10
Affichages
792
Réponses
0
Affichages
849
  • Question Question
Réponses
8
Affichages
1 K