Alimentation d'une base de données

Bonsoir le Forum

dans un formulaire avec 2 combobox, je souhaite avoir la possibilité de rajouter des nouveaux éléments dans la "base de données"

la 1ere combobox " Equipe" : possibilité d'en rajouter une nouvelle avec de nouveaux noms

la 2eme combobox "Nom" : possibilité de rajouter des noms dans une équipe existante ou dans une nouvelle équipe

en PJ le fichier

merci d'avance

Option Explicit
Dim Ws As Worksheet

Private Sub UserForm_Initialize()
List
End Sub

Private Sub ComboBox1_Change()

Dim J As Long
Dim Colonne As Integer

  Me.ComboBox2.Clear
  If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Colonne = Me.ComboBox1.ListIndex + 1
  For J = 2 To Ws.Cells(Rows.Count, Colonne).End(xlUp).Row
  Me.ComboBox2.AddItem Ws.Cells(J, Colonne)
  Next J

End Sub

Sub List()
Dim I As Integer
  ' Modèle
  Set Ws = Sheets("EQUIPE")
  With Me.ComboBox1
    For I = 1 To Ws.Range("A1").End(xlToRight).Column + 1
      .AddItem Ws.Cells(1, I)
    Next I
  End With

End Sub
25base.xlsm (18.63 Ko)

Bonjour,

Question trop imprécise.

Signification de "ajouter" ?

  • ajouter dans la liste ?
  • ajouter dans la feuille ?
  • ajouter au niveau de la sélection ? là tu peux le faire, la propriété MatchRequired étant laissée à False (sa valeur par défaut) tu peux saisir autre chose que ce qui est dans la liste déroulante.

Bonjour

Désolé pour ces imprécisions...

Mon besoin c'est d'ajouter dans les listes "Equipes" et "Noms"

je sais pas si c est plus précis çà...

merci

Bonjour,

Non, ça n'apporte rien de plus. Il y a 3 principales méthodes :

1) Modifier les listes indépendamment de tes ComboBox, éventuellement en utilisant un Userform ou non. Il s'agit de procédures autonomes par rapport à celles déjà en place, dédiées à la modification des listes.

2) Tu peux au lieu de sélectionner un élément dans la liste, dans tes ComboBox, en taper un hors liste. Dans ce cas, à la sortie (on ignore en quoi elle consiste dans l'état actuel de ton code) il faudra prévoir une procédure de mise à jour des listes par l'ajout de ces éléments.

3) Variante mais à bien distinguer de la précédente, un ajout d'élément hors liste donne lieu à mise à jour immédiat des listes et rafraichissement immédiat aussi dans la liste du ComboBox. Il faut alors modifier tes procédures actuelles.

Cordialement

la méthode 2 me parait la plus appropriée et la plus pratique non ?

pour moi le code actuel "charge" les 2 combobox des éléments existants déjà dans les listes

Le formulaire existant avec les 2 combo box permet à l'utilisateur d'en rajouter tout en vérifiant s'ils n'existent pas déjà dans les listes.

J essaie d'etre le plus explicite possible mais c pas évident

merci en tous cas pour ton aide

Tout dépend aussi de ce que tu fais par la suite...

En tout cas, le fait de charger une liste dans ComboBox1 avec un élément vide est soit une erreur, soit une mauvaise idée, car les éléments listés ne renvoient une valeur de ListIndex que si sélectionnés tels qu'ils sont listés (ce qui peut entraîner des confusions).

Ok je vais donc plutôt modifier les listes par un formulaire en utilisant une procédure autonome

merci pour tes bons conseils

si je bloque, avec ta permission je me permettrai de te solliciter

Ma remarque sur la liste chargée dans ComboBox1 était indépendante des choix concernant la méthode de modification des listes.

Il me paraît préférable de rectifier cette anomalie dans tous les cas (même si elle n'aurait sans doute pas eu d'incidence avec des listes fixes, mais il y a toujours un risque, accru en tout cas avec des listes variables).

La méthode de modification me semble devoir surtout tenir compte de la façon dont tu vas utiliser ta sélection.

si je peux ce soir en rentrant du taf te faire parvenir le fichier complet ce serait surement plus explicite pour toi, pour m'aider.

Ces listes en fait servent de "bases de données" pour l'utilisation d'un autre formulaire

Thanks

Bonjour MFerrand

J étais un peu pris par le taf mais je reviens vers toi pour ma question

je joins le fichier pour que tu ais une idée plus précise de ce que je souhaite faire

pour la question de "charger une liste dans ComboBox1 avec un élément vide est soit une erreur, soit une mauvaise idée" j utilise la propriété "Value" de la combobox pour afficher la première valeur de la liste

es ce la bonne méthode

merci d'avance pour tes conseils

cordialement

31fich-test.xlsm (46.56 Ko)

bonsoir,

j ai un doute sur le fait que mon message soit parti ce matin

donc je le renvoie à nouveau

merci

Rechercher des sujets similaires à "alimentation base donnees"