Remplir une base de donnée patrimoniale a l'aide d'un userform
#1
Débutant XLPages

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.

 

 

 

 

 

 

 

 

 

 

 

 

Pièce jointe:
zip projet2.zip   [ Taille: 78.78 Ko - Téléchargements: 489 ]
Hors Ligne
Rapport   Haut 

Re: Remplir une base de donnée patrimoniale a l'aide d'un userform
#2
Débutant XLPages

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.

 

 

Pièce jointe:
xlsm INCIDENTS.xlsm   [ Taille: 39.81 Ko - Téléchargements: 523 ]
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes