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 :

Remplir une cellule avec un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Ingénieur génie industriel
    Inscrit en
    Novembre 2016
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur génie industriel

    Informations forums :
    Inscription : Novembre 2016
    Messages : 88
    Par défaut Remplir une cellule avec un userform
    Bonjours à tous

    ci dessous un code qui permet de remplir une feuille à l'aide d'un userform

    J'ai 2 combobox cb_lofc et cb_sem qui correspondent à mes données sur la 1ère ligne et la 1ère colonne respectivement
    A l'aide d'un array j'ai essayé de rechercher :
    - la donnée selectionnée dans Cb_sem dans la première colonne
    - celle selectionnée dans cb_lofc dans ma première ligne

    pour objenir une cellule (i,j) et la renseigner avec une partie des données sélectionnées dans la listbox (celles entre parenthèses) lb_codi

    Or il ne se passe rien au click, mais alors rien,

    Aussi je ne vois pas comment lui dire de renseigner uniquement les données entre parenthèses de la listbox

    Merci d'avance


    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
    Private Sub Valider_Click()
    Dim derl%
    Dim derc%
    Dim ress()
    Dim i As Integer, j As Integer, k As Integer
     
    f1 = "Ressources"
    derl = Worksheets(f1).Cells(Rows.Count, 1).End(xlUp).Row
    derc = Worksheets(f1).Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    ress = Worksheets(f1).Range(Cells(1, 1), Cells(derl, derc)).Value
     
    For i = LBound(ress, 1) To UBound(ress, 1)
        If ress(i, 1) = Cb_sem.Value Then
            For j = LBound(ress, 2) To UBound(ress, 2)
                If ress(1, j) = CB_lofc.Value Then
                    For k = 0 To Lb_codi.ListCount - 1
                        If Lb_codi.Selected(k) = True Then
                        ress(i, j) = ress(i, j) & ";" & Lb_codi.List(k)
                        End If
                    Next
                End If
            Next
        End If
    Next
     
    End Sub

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour et bienvenu sur le Forum,

    Je sais que les pièces jointes sont limitées.
    Mais là, je suis un peu perdu.

    Pourrais-tu joindre un classeur simplifié et reporter les résultats que tu voudrais voir affichés en les explicitant précisément.

  3. #3
    Membre confirmé
    Femme Profil pro
    Ingénieur génie industriel
    Inscrit en
    Novembre 2016
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur génie industriel

    Informations forums :
    Inscription : Novembre 2016
    Messages : 88
    Par défaut
    Ci joint le fichier en xls ou xlsm
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    (Il n'y pas de quoi!)

    Au risque de me montrer abrupt, je dirais que ton développement présente beaucoup d'approximations et de complications
    - Si tu veux activer des procédures, ton classeur doit pouver les activer donc extension ".xlsm"
    - Tu nommes un formulaire de la même façon qu'une feuille de travail ("Ressources")
    Dans ce cas, pourquoi pas Usf_Ressources?
    - Un formulaire doit être chargé avant d'être affiché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Load Usf_Ressources
    Usf_Ressources.Show
    - Les objets doivent bien être attachés en utilisant la méthode With à bon escient
    Exemple

    Remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    f1 = "Ressources"
    derc = Worksheets(f1).Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    codi = Worksheets(f1).Range(Cells(1, 2), Cells(1, derc)).Value
    With CB_lofc
    For i = LBound(codi, 2) To UBound(codi, 2)
            .AddItem codi(1, i)
    Next
    End With
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With Worksheets("Ressources")
            derc = .Cells(1, .Columns.Count).End(xlToLeft).Column
            codi = .Range("B1", .Cells(1, derc)).Value
    End With
    For i = LBound(codi, 2) To UBound(codi, 2)
            CB_lofc.AddItem codi(1, i)
    Next i
    Plus clair, non?
    Bien regarder l'attachement des objets précédés par "."

    Enfin, je trouve ton code lié à la validation de ton formulaire bien compliqué.
    Pourrais-tu retourner l'amont et l'aval de ton développement.
    A savoir à travers un exemple
    Ce que tu choisis dans ton formulaire pour les 3 contrôles ComboBox et ListBox
    Ce que tu souhaites voir apparaître dans la feuille "Ressources" en fonction de ces choix

    A plus.

  5. #5
    Membre confirmé
    Femme Profil pro
    Ingénieur génie industriel
    Inscrit en
    Novembre 2016
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur génie industriel

    Informations forums :
    Inscription : Novembre 2016
    Messages : 88
    Par défaut
    Je sais bien pour le xlsm ... pas besoin d'être un génie.
    J'ai posté les deux car visiblement les xlsm de sont jamais ouvert, on me dit préférer le xls

    Je vais essayer de modifier comme proposé et de formuler à travers un exemple mon besoin

    Merci

    EDIT : Load Usf_Ressources génère une erreur 9 (l'indice n'appartient pas à la section)

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    le "on" qui te dit de préférer les "xls" ne doit pas connaître grand chose à Excel en général, et VBA en particulier.

    Pourquoi cette susceptibilité? Je n'ai pas parlé de "génie".

Discussions similaires

  1. Remplir une ComboBox avec une plage de cellule
    Par zazaraignée dans le forum Contribuez
    Réponses: 2
    Dernier message: 02/03/2012, 18h07
  2. [XL-2007] imposer de remplir une cellule avec "001" au lieu de 1
    Par EmmanuelleC dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/04/2010, 15h39
  3. Réponses: 8
    Dernier message: 02/07/2009, 10h46
  4. Remplir une cellule Excel avec une condition sous vb
    Par enibris dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/01/2008, 13h47
  5. remplir une cellule excel a partir d'un combobox en userform
    Par rocofolie dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/09/2007, 15h54

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