2017-10-16 5 views
0

Je suis actuellement en utilisant un fichier CSV pour remplir les données. Les utilisateurs téléchargent ce fichier CSV, modifient et téléchargent le fichier. Il y a beaucoup de choses qui pourraient mal se passer si je laisse les utilisateurs taper. Donc, je me demandais s'il y avait un moyen de remplir les champs déroulants en utilisant CSV ou XLS ou tout autre format. Au lieu de taper, les utilisateurs peuvent sélectionner dans la liste déroulante.Comment remplir la liste déroulante dans Excel

P.S. Je ne sais pas si c'est important à savoir, mais j'utilise NodeJS pour peupler les données dans des fichiers CSV.

+0

oui. C'est ce qu'on appelle "Data Validation" dans Excel. Vous définissez quelles cellules sont soumises à la validation de données et vous avez défini comment elles sont validées. Une liste provoque une liste déroulante dans la cellule des valeurs autorisées. – JNevill

+0

@JNevill, oui, mais comment puis-je les remplir à travers le code? –

+0

1. Mettez les valeurs que vous voulez dans les cellules qui animent la validation par code 'Range ("A1") Ajouter Type:. = XlValidateList, AlertStyle: = xlValidAlertStop, opérateur: = _ xlBetween, Formule1: =" a, b , c, d "'. 2. Ajoutez un Combo ActiveX comme boîte 'ActiveSheet.OLEObjects.Add (ClassType: = "Forms.ComboBox.1", Lien: = False, _ DisplayAsIcon: = False, Gauche: = 253,5, Top: = 33,75, Largeur: = 122,25, hauteur _ : = 9) 'et le peupler. 3. Ajoutez une zone de liste déroulante de formulaire Excel et liez-la aux cellules 'ActiveSheet.DropDowns.Add (292.5, 108, 105.75, 62.25)'. Il y a beaucoup de façons de résoudre celui-ci et cela dépend de vos besoins. – JNevill

Répondre

0

dire que nous commençons par:

enter image description here

Cet exemple de macro:

Sub ImportFiles() 
    Dim j As Long, k As Long 

    Close #1 
    Open "C:\Users\Garys\Desktop\shop.csv" For Input As #1 
    j = 1 
    Do While Not EOF(1) 
      Line Input #1, TextLine 
      ary = Split(TextLine, ",") 
      k = 1 
      For Each a In ary 
       Cells(j, k) = a 
       k = k + 1 
      Next a 
      j = j + 1 
    Loop 
    Close #1 


    With Columns("B:B").Validation 
      .Delete 
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
      xlBetween, Formula1:="yes,no" 
      .IgnoreBlank = True 
      .InCellDropdown = True 
      .InputTitle = "" 
      .ErrorTitle = "" 
      .InputMessage = "" 
      .ErrorMessage = "" 
      .ShowInput = True 
      .ShowError = True 
     End With 
End Sub 

Est-ce InPort la .csv et la validation des données d'installation sur la colonne B

0

Utilisation une feuille cachée dans votre fichier Excel. Au lieu d'utiliser le fichier CSV, remplissez la feuille masquée avec les mêmes données.

Sur une autre feuille, permet à l'utilisateur d'entrer des données qui seront ramassées de la feuille cachée, en utilisant le menu déroulant. Pour définir la liste déroulante, utilisez Validation des données (onglet Données, Validation des données). Choisissez Liste et sélectionnez comme source les valeurs de la feuille cachée. Pour plus de commodité, vous pouvez afficher temporairement la feuille masquée.