Remplir une base de donnée patrimoniale a l'aide d'un userform | ||
---|---|---|
Inscription: 06/08/2015
De France
Messages:
2
Système d'exploitation: Pc Version Excel utilisée: Excel 2007 |
Posté le : 06-08-2015 16h17
Bonjour à toutes et tous,
Tout juste inscrit sur le Forum, et après avoir parcourus quelques sujets très intéressants et très bien exposés je me permets de vous demander de l'aide. En effet je n'arrive pas à faire ce que je veux, je débute en macro/vba et je n'arrive pas à faire des choses complexes (pour tout dire, même simple c'est limite)
Voici mon problème : Afin de faciliter la saisie de plusieurs tableaux pour mes collègues, et afin que nous puissions faire des requêtes plus facilement, j'ai voulu "automatiser" la base et éviter des erreurs de syntaxe. La base actuelle est composée de formules, de listes déroulante et de cellules qui se remplissent automatiquement, c'est efficace mais assez long à remplir. Nous avons trois tableaux à mettre à jour (dans trois onglets différends) un pour chaque département que nous exploitons (l'Essonne la Seine et Marne et le Val de Marne) Dans chaque tableaux nous avons le nom de chaque postes avec leurs équipements, leur numéros, adresses, cellules HTA, type de batteries, transmission (37 colonnes tout de même) avec environ plus de 500 lignes pour chaque départements (et qui augmente au fur et a mesure des nouveaux dossiers)
Mettre en forme l'userbox n'a pas trop posé de problème (il est assez moche mais bon), mais pour le code je ne m'en sort pas, j'ai bien réussi a en faire un simple grâce a un tutoriel, mais combiner des combobox avec des listbox pour faire un choix ça me dépasse (par exemple je voudrais, lorsque j'écrit le nom d'un poste source qu'il me donne les départs concernés, je clic et hop ça rempli la cellule choix, idem pour les constructeurs des coffrets et leur type) Autre problème, chaque département à ses postes source, certains sont limitrophes, faut il faire un userform pour chaque onglet avec son code qui lui est propre ?
Toujours dans le but d'éviter les erreurs j'ai mis en place dans la base actuelle une formule qui rempli le nombre de batteries et leur type en fonction du coffret choisi. Idem pour les codes postaux des communes. Cela est il réalisable de faire ainsi avec l'userform. Pour ne pas avoir à penser aux batteries et éviter d'apprendre les centaines de CP par cœur, je voudrais qu'il continue à se remplir automatiquement. Egalement, bien qu'il y est une liste déroulante dans le combo box j'ai remarqué que l'on pouvait inscrire une donnée qui n'est pas dans la liste et la rentrée sur le tableau, y'a t'il un moyen de le protéger car avec certains copains du bureau je sens les abréviations venir dans le temps.... ;)
Pour la modification d'une ligne j'ai essayé de mettre en place le double clic vu sur un fichier très intéressant dans un autre Topic posté par le webmaster mDF (vu ici >> http://www.mdf-xlpages.com/modules/ne ... iewtopic.php?topic_id=258 ) j'aimerais vraiment apprendre à faire tout cela aussi facilement que vous l'expliquez. A ce propos le code de mon userbox est fait a partir de celui la. Bien qu'il soit pour les débutants, je n'arrive même pas à le faire fonctionner
Bon, ça commence à faire beaucoup de souci quand même ! Mais le plus embêtant c'est que lorsque je clique sur valider il m'inscrit les données dans un autre onglet.... bon ca marche presque, mais pas sur qu'on s'y retrouve :/ Je vous joins l'ébauche de ma copie lamentable (réduit considérablement vu sa taille) et je retourne plancher dessus en espérant que mon pavé indigeste ait été compris par un expert.
Par avance merci de vos conseils éclairés. Bien cordialement
Ps : pardonnez moi si je suis passez à coté d’un sujet qui explique tout cela.
|
|
|
Re: Remplir une base de donnée patrimoniale a l'aide d'un userform | ||
---|---|---|
Inscription: 06/08/2015
De France
Messages:
2
Système d'exploitation: Pc Version Excel utilisée: Excel 2007 |
Posté le : 12-08-2015 08h27
Bonjour à tous,
Je ne trouve toujours pas ma solution.
Si je tape un code dans ce genre est ce que je pourrais ajouter les choix des list box (si je parviens à le faire) Private Sub CommandButton_fermer_Click() Unload Me End Sub Private Sub Frame_terre_Click() For Each bouton_terre In Frame_terre.Controls If bouton_terre.Value Then terre = bouton_terre.Caption End Sub Private Sub UserForm_Initialize() For i = 1 To 10 ComboBox_aee.AddItem Sheets("aee").Cells(i, 1) Next For i = 1 To 1300 ComboBox_cause.AddItem Sheets("cause").Cells(i, 1) Next For i = 1 To 1222 ComboBox_remede.AddItem Sheets("remede").Cells(i, 1) Next For i = 1 To 1900 ComboBox_description.AddItem Sheets("description").Cells(i, 1) Next End Sub Private Sub CommandButton_ajouter_Click() 'Coloration des Labels en noir Label_aee.ForeColor = RGB(0, 0, 0) Label_cause.ForeColor = RGB(0, 0, 0) Label_date.ForeColor = RGB(0, 0, 0) Label_description.ForeColor = RGB(0, 0, 0) Label_ninc.ForeColor = RGB(0, 0, 0) Label_nom.ForeColor = RGB(0, 0, 0) Label_remede.ForeColor = RGB(0, 0, 0) Label_retour.ForeColor = RGB(0, 0, 0) 'Contrôles de contenu If TextBox_date.Value = "" Then 'SI pas de "date" ... Label_date.ForeColor = RGB(255, 0, 0) 'Label "nom" en rouge ElseIf TextBox_ninc.Value = "" Then Label_ninc.ForeColor = RGB(255, 0, 0) ElseIf TextBox_nom.Value = "" Then Label_nom.ForeColor = RGB(255, 0, 0) ElseIf TextBox_retour.Value = "" Then Label_retour.ForeColor = RGB(255, 0, 0) ElseIf ComboBox_aee.Value = "" Then Label_aee.ForeColor = RGB(255, 0, 0) ElseIf ComboBox_cause.Value = "" Then Label_cause.ForeColor = RGB(255, 0, 0) ElseIf ComboBox_description.Value = "" Then Label_description.ForeColor = RGB(255, 0, 0) ElseIf ComboBox_remede.Value = "" Then Label_remede.ForeColor = RGB(255, 0, 0) Else 'Si le formulaire est complet, on insère les valeurs sur la feuille Dim no_ligne As Integer, terre As String 'Choix de territoire For Each bouton_terre In Frame_terre.Controls If bouton_terre.Value Then terre = bouton_terre.Caption End If Next 'no_ligne = N° de ligne de la dernière cellule non vide de la colonne +1 no_ligne = Range("A65536").End(xlUp).Row + 1 'Insertion des valeurs sur la feuille Cells(no_ligne, 2) = terre Cells(no_ligne, 4) = TextBox_nom.Value Cells(no_ligne, 1) = TextBox_date.Value Cells(no_ligne, 5) = TextBox_ninc.Value Cells(no_ligne, 3) = ComboBox_aee.Value Cells(no_ligne, 6) = ComboBox_cause.Value Cells(no_ligne, 7) = ComboBox_description.Value Cells(no_ligne, 8) = ComboBox_remede.Value Cells(no_ligne, 9) = TextBox_retour.Value 'Après insertion, on remet les valeurs initiales OptionButton1.Value = True TextBox_nom.Value = "" TextBox_date.Value = "" TextBox_ninc.Value = "" TextBox_retour.Value = "" ComboBox_cause.ListIndex = -1 ComboBox_description.ListIndex = -1 ComboBox_remede.ListIndex = -1 ComboBox_aee.ListIndex = -1 End If End Sub Également je n'arrive toujours pas à trouver de solution pour modifier une ligne complète en double cliquant dessus. Je joint le fichier. celui ci fonctionne mais il est beaucoup plus simple. car je n'ai qu'une seule feuille à remplir, pas autant de cellules. pas de list_box et je n'ai pas besoin de verrouiller à des choix strict (pour éviter les erreurs de syntaxe).
Merci.
|
|
|