IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

declaration de données


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut declaration de données
    Voila j'ai un problème pour insérer des données dans une combobox. Pour suivre, il faut ouvrir le fichier paint joint. Je vais tenter d'être le plus clair possible car c un peu long.

    Ps "Debutant" et Excel 2007

    Alors.

    Le but c de pouvoir réaliser un choix sur plusieur critère différents.

    Alors j'ai commencer par déclarer le type de structure
    "Structure"
    Ensuite j'ai déclarer le type de famille comme suit "MetsoFamille"
    Puis J'ai declarer l'ensemble encadrer par le carré bleue "Metso_"
    et enfin celui du carré rose "M_Al_EBC_caract"

    Ensuite le but dans le userform c arriver a sortir un produit pour une raison qui est ce k'el est. mon code (la combobox n'a aucune influence, donc je commence a la 2)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private sub combobox2_change ()
            If Userform1.combobox2.value = "Alimentateur" then 
            Userform1.combox3.rowsource = "Metso_"
            End If
    end sub
    -------------------------------------------------------------------------
    Private sub combobox3_change ()
           If userform1.combobox3.value = "EBC" then
           Userform1.combobx4.rowsource = "M_Al_EBC_caract"
           end if
    end sub
    Donc le truc: si on choisi dans la combobox2, le mot "alimentateur", il aparait dans la combobx 3 tous les produit relatif a la famille "alimentateur". Ensuite dans la combobox3, si on choisi EBC qui apartient a l'alimentateur, dans ce cas la, aparait dans la combobox4 les différent caractéristique de l'EBC.

    Problème, excel ne prend pas la plage de donnée en ligne, donc m'inserre pas les valeurs du cadre rose dans la combobox4.

    J'ai tenter par un code comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If userform1.combobox3.value = "EBC" then
    Userform1.combobx4.rowsource = "H25:J25"
    end if
    Sa marche pas non plus.

    Ayant énormément de critère a rentrer.

    Auriez vous une solution please

    Merci beaucoup d'avance
    Images attachées Images attachées  

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    bonjour

    j'ai mis du temps à comprendre ce que tu voulais et j'espère que c'est bien ça.

    pour afficher plusieurs valeur sur une même ligne dans ton combobox4 il faut ajouter deux lignes de code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub combobox3_change()
      If UserForm1.combobox3.Value = "EBC" Then
        UserForm1.combobx4.ColumnCount = 4 'nombre de colonne à afficher
        UserForm1.combobx4.ColumnWidths = "90;72;90;90" 'si tu veux, largeur des colonnes
        UserForm1.combobx4.RowSource = "M_Al_EBC_caract"
      End If
    End Sub
    bonne journée

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Non en fait, tout ce que je veut, c'est pouvoir avoir une liste déroulante dans la combobox4 ou les valeurs du cadre rose en sont les valeur de cette liste.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Dans ce cas il faut les ajouter un par un comme dans le code ci dessous ou par un boucle mais la manière de faire est identique


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub combobox3_change()
      If UserForm1.combobox3.Value = "EBC" Then
       ComboBox4.AddItem Range("a2") 'valeur de la 1er col
       ComboBox4.AddItem Range("b2") 'valeur de la 2eme col
       ComboBox4.AddItem Range("c2")
       ComboBox4.AddItem Range("d2")
      End If
    End Sub

  5. #5
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for indx = 0 To  4 
     
    userform1.combobox4.AddItem(Cells(Rowindex,colindex+index))
     
    Next indx
    Sur l'image joint j'ai aperçus que la table Armoire electrique est 3ème et elle est la 4ème dans la list des type de famille si vous voulez une fonction dynamique il faut repecter l'ordre et eviter les bloc de if
    Mais avec la participation de zyhack et le code que j'ai cité sera long
    je t'enoyerai une fonction

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Un code long sa me pose pas de problème, je vien de dépasser les 2200 ligne de code

    Non sans rire, tout marche correct, pas de souci, sauf que si on les rajoute manuellement sa va faire une liste impossible

    Un coup on sélectionne dans la combobox3 "totto"
    combobox4 (choix) = totto1
    totto2
    totto3

    Puis si on selectionne après dans la combobo3 "tattie"
    combobox4 (choix dans la liste ) = totto1
    totto2
    totto3
    tattie1
    tattie2
    etc,....

    Le but c de n'avoir que les critère relatif a soit totto soit tattie (en fait j'ai 31 Famille)


    Alors petite explication le but et de faire un chiffrage temps le plus simple possible.

    Donc on doit rtentrer des famille de produit par constructeur
    puis par sous famille puis par produit puis par evolution
    ensuite il fo pouvoir rentrer de nouvelle donnée en stock continuellement quand on a de nouveau temp

    ensuite

    il faut pouvoir aller chercher ces temps, enfin ce dont on a besoin pour réaliser le devis pré-etude. voila

    ouffff galère


    Ps = j'ai bien fait pour le moment plus de 2200 lignes de codes

  7. #7
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Cette fonction traite toutes vous pouvez la simplifier selon votre cas
    j'aimerai bien avoir plus d'information sur les trois autre combobox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Function Read_Array(Start, lenght, Index, Offsets, Table_Col_Count, _
      Table_Row_Count, Tables_Top, Tables_Left, Espace, H_V As Boolean, Types As Boolean)
     'Inserer le code de verif
      Lenth = lenght - 1
      ReDim TempArray(Lenth, 0)
     
    If Types Then
                          SetAtrr = Tables_Top + (Espace + Table_Row_Count) * Index
     
                          If H_V Then
                                    For indx = 0 To Lenth
                                                TempArray(indx, 0) = Cells(SetAtrr + Start + indx, Tables_Left + Offsets)
                                    Next indx
                           Else
                                    For indx = 0 To Lenth
                                                TempArray(indx, 0) = Cells(SetAtrr + Start, Tables_Left + Offsets + indx)
                                    Next indx
                           End If
     
                 Else
     
                SetAtrr = Tables_Left + (Espace + Table_Col_Count) * Index
                         If H_V Then
                                    For indx = 0 To Lenth
                                            TempArray(indx, 0) = Cells(Tables_Top + Offset + indx, SetAtrr + Start)
                                    Next indx
                         Else
                                    For indx = 0 To Lenth
                                             TempArray(indx, 0) = Cells(Tables_Top + Offset, SetAtrr + Start + indx)
                                    Next indx
                        End If
     
           End If
    Read_Array = TempArray
     
    End Function
    il y a un userform dans ce fichier joint essaie le
    Si sa marche pas non plus !!!!

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    delphidelphi ==> Je t'envoi par MP mon fichier excel, sa sera plus simple que tu voit l'original.

  9. #9
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    J'ai du installer l'office 2007 et la fonction que j'ai t'envoie hier marche parfaitement
    Ouvrer le dossier compressé il y a deux exemple le 1ere avec la fonction d'hier et le 2eme fonction d'accès direct
    Il y a aussi deux fichier vBasic"UserForm1.frm,UserForm1.frx"
    Ouvrer votre fichier dans l'editeur basic est supprimer le Userform1 cliquer sur le menu fichier et importer le ficher "UserForm1.frm" le form sera creer automatiquement

    j'insiste que
    Sur l'image joint j'ai aperçus que la table Armoire electrique est 3ème et elle est la 4ème dans la list des type de famille si vous voulez une fonction dynamique il faut repecter l'ordre
    C'est à dire dans la liste "Type de famille" les elemement sont dans le ordre suivant :Aiment pemanant , Alimentateur , Alimentateur pimaire ,Armoir électrique"
    dans la feuille Excel sont :"Aiment pemanant , Alimentateur ,Armoir électrique" le champ "Armoir électrique" et en 3eme position dans la liste de cmbobox2 mais le 4eme sur la feuille on travaille par index c'est à dire par ordre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/03/2009, 14h40
  2. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  3. compression de données du point de vue algorithmique
    Par GoldenEye dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 26/06/2002, 15h51
  4. [Kylix] Sauvegarde de donnée utilisateur....
    Par Eclypse dans le forum EDI
    Réponses: 1
    Dernier message: 11/05/2002, 17h21
  5. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo