Microsoft 365 Amélioration code vba

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

  • Suivi instruction test pompaero.xlsm
    457.7 KB · Affichages: 15

ChTi160

XLDnaute Barbatruc
Bonsoir le Fil ,le Forum

Une approche perfectible ou je n'ai fait qu'alimenter la ListBox3 sans tenir compte (des lIgnes Vides)
utilisation de Tableaux Structurés etc etc
en espérant avoir fait avancer le Chimilimblic!
Bonne fin de Soirée
Jean Marie
 

Pièces jointes

  • Suivi instruction test pompaero Chti160.xlsm
    454.3 KB · Affichages: 5

pompaero

XLDnaute Impliqué
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
 

pompaero

XLDnaute Impliqué
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

  • Suivi instruction test pompaero Chti160.xlsm
    212.9 KB · Affichages: 2

ChTi160

XLDnaute Barbatruc
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: 27
Dernière édition:

Statistiques des forums

Discussions
315 090
Messages
2 116 104
Membres
112 661
dernier inscrit
ceucri