Microsoft 365 Amélioration code vba

  • Initiateur de la discussion Initiateur de la discussion pompaero
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pompaero

XLDnaute Impliqué
Bonjour le forum,

Je poursuis mon aventure avec ce fichier joint dont je bloque sur l'amélioration du codage vba.
Le formulaire "FormSequence" est une réplique d'une autre appli en ma possession que j'aimerai adapter et améliorer à ce document.
J'ai déjà bien avancé dans la présentation et le codage mais la j'ai besoin d'aide car je je patauge un peu pour adapter.
Le principe de fonctionnement est de choisir une date, inscrire hr début et Hr fin, sélectionner des agents, un programme et une séquence (qui correspond au programme), puis on click sur "Ajouter la séance" qui bascule ces informations dans le ListBox4 en bas du formulaire.
Si nécessaire on répète l'opération, sinon on click sur le bouton vert "Valider l'ensemble des séances" qui envoie les infos dans la BDD.
Les différentes listes (Param_Liste) sont construites à telle que je l'ai pensé mais elles peuvent être ajustées. Ces listes sont amenées à évoluer.
Pour résumer :
- Je bloque au niveau du Listbox3 dont je voudrais 2 colonnes afin d'y charger les différentes listes de l'onglet "Param_Liste" suite au choix de la ListBox2. Le code est dans le formulaire, qui bug, du coup je l'ai mis en suspend.
Le ListBox3 doit contenir "le code et la séquence" qui doit être reporté ensuite dans le LIstBox4.
Voilà déjà mon premier bug à ajuster et ensuite j'aimerai pouvoir ajouter des boutons afin de Modifier et supprimer des données.
Merci à vous par avance pour votre soutien et aide.
Si mes explications sont incomplètes je reste à disposition pour de plus amples détails.

Cdlt
pompaero
 

Pièces jointes

Bonsoir Chti160, le fil,

Tu as effectivement fais avancer le Chimilimblic!
Le principe est là, malgré que je n'arrive pas à relire, déchiffrer, ces codes et j'imagine pour les lignes vide qu'il y a moyen de remédier à ça.
Je pense que la ListBox3 à bien 2 col qui prend en compte les codes dans la 1ère col et les séquences dans la 2ème col du ListBox.
Car quand je valide la séquence, le code s'affiche bien dans le ListBox4 mais la séquence reste vide..
J'ai cherché un peu et pense que cela se passe dans la macro du "CommandButton2_Click", il y a cette ligne
VB:
If .Selected(i) Then résumé.Add Array(date_séance, agent, thème, programme, "séquence", heure_début, heure_fin, durée)
avec des nom dont je me rappel plus de leur fonction. J'imagine aux colonnes de la BDD car j'ai ajouter entre "" après programme le mot séquence et celui ci s'inscrit bien dans la BDD quand je valide sur le bouton (vert) Valider l'ensemble des séquences.
Ce que j'aimerai est que dans la BDD je retrouve le code en col D et la séquence en col E.
Merci

Cdlt
pompaero
 
Bonsoir Marcel32, Chti160, le fil,

Après une grande période de recherche et d'essais, je suis arrivé à effectuer ce que je veux et pense avoir trouvé une solution mais reste à voir si cela est correctement construit.
Il y a bien 2 colonnes dans le ListBox3 (Merci Chti160).
Dans la macro du CommandButton2, j'ai ajouté une variable "programmeA" que j'ai ensuite mis dans la partie de cette macro
VB:
    'récup programme
    With Me.ListBox3
        programme = ""
        [COLOR=rgb(184, 49, 47)]programmeA = ""[/COLOR]
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                If programme <> Empty Then programme = programme & ","
                programme = programme & .List(i)
                [COLOR=rgb(184, 49, 47)]programmeA = programmeA & .List(i, 1)[/COLOR]
            End If
        Next i
    End With
    
    'récup agent
    With Me.ListBox1
        For i = 0 To .ListCount - 1
            agent = .List(i)
            If .Selected(i) Then résumé.Add Array(date_séance, agent, thème, programme, [COLOR=rgb(184, 49, 47)]programmeA[/COLOR], heure_début, heure_fin, durée)
        Next i
    End With
cela donne le résultat souhaité mais pas du tout sur de mon coup et que cela soit correct !!
Si quelqu'un peut jeter un œil pour vérifier ça serai sympa.
Merci par avance.

Cdlt
pompaero
 

Pièces jointes

Bonsoir Pompaero
Bonsoir le Fil
je me suis posé la question suivante :
Est-ce que tu effectues ou as-tu prévues des recherches sur ta BDD ?
Car la façon de récupérer les données via "programmeA" ne me semble pas adaptée à une future recherche !
Si tu peux me dire !
J'ai modifié la procédure pour récupérer une Ligne par Agent est par séquence et non pas une Ligne par agent avec toutes les Séquences !
a voir Lol
Merci par avance
Jean marie
 

Pièces jointes

  • Pompaero-1.gif
    Pompaero-1.gif
    527.4 KB · Affichages: 28
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
46
Affichages
3 K
Réponses
5
Affichages
563
Réponses
3
Affichages
248
Réponses
2
Affichages
736
Réponses
17
Affichages
2 K
Réponses
4
Affichages
1 K
Réponses
8
Affichages
912
Retour