Microsoft 365 Amélioration codage

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 cherche à améliorer mon codage dans ce classeur.
J’aimerai dans la feuil BDD colonne D à l’aide du formulaire UF_Plannif avoir lors de l’enregistrement des données, le temps correspondant aux items (évènements) défini dans la feuil Liste.
Je n’arrive pas à modifier le codage qui pour moi serait la dedans :
VB:
'dans Module1
ChargeListBox2
CB_Valider_click dans UF_Planif
            With Sheets("BDD")
                l = .Range("A" & Rows.Count).End(xlUp).Row + 1    'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
                For i = 0 To ListBox1.ListCount - 1
                    If ListBox1.Selected(i) Then
                        .Range("A" & l).Value = MaDate
                        .Range("A" & l).NumberFormat = "dd-mm-yy"
                        .Range("B" & l).Value = ListBox1.List(i)
                        .Range("C" & l).Value = ListBox2
                        [COLOR=rgb(209, 72, 65)]If Left(Me.ListBox2, 1) = "G" Then .Range("D" & l).Value = Val(Mid(Me.ListBox2, 2))[/COLOR]
                        l = l + 1
Code:
'dans UF_Planif
Private Sub ListBox2_Change()    'sigle
Case 2
            For i = 0 To Me.ListBox1.ListCount - 1
                If Me.ListBox1.Selected(i) Then test = True: Exit For
            Next
            If test Then
                For i = 0 To Me.ListBox1.ListCount - 1
                    If Me.ListBox1.Selected(i) Then
                        Me.ListBox1.List(i, 2) = Me.ListBox2
                        If Left(Me.ListBox2, 1) = "G" Then
                            Me.ListBox1.List(i, 3) = Mid(Me.ListBox2, 2)
                        Else
                            Me.ListBox1.List(i, 3) = ""
                        End If
                    End If
Je comprends que ce code en rouge récupère les données après la lettre G, mais ce principe ne correspond plus à mes besoins.
C'est à la place de cela qu'il me faut le souhait en début de texte en haut.

Je vous en remercie par avance.
Cdlt
pompaero;
 

Pièces jointes

Solution
C
Bonsoir pompaero

Pour ma part, ça faisait un moment que je ne t'avais pas dépanné 😜
Bonne année 2024

Alors, ajout d'une petite fonction et modification du code et voilà

A+
Bonjour,

Juste une remarque en passant : on ne peut pas forcer la couleur du texte si on utilise le paramètre vb dans la balise code.
En revanche, on peut le faire si on utilise le paramètre rich, mais on perd alors la coloration syntaxique de VB.

Enrichi (BBcode):
'dans Module1
ChargeListBox2
CB_Valider_click dans UF_Planif
            With Sheets("BDD")
                l = .Range("A" & Rows.Count).End(xlUp).Row + 1    'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
                For i = 0 To ListBox1.ListCount - 1
                    If ListBox1.Selected(i) Then
                        .Range("A" & l).Value = MaDate
                        .Range("A" & l).NumberFormat = "dd-mm-yy"
                        .Range("B" & l).Value = ListBox1.List(i)
                        .Range("C" & l).Value = ListBox2
                        If Left(Me.ListBox2, 1) = "G" Then .Range("D" & l).Value = Val(Mid(Me.ListBox2, 2))
 
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
3
Affichages
595
Réponses
4
Affichages
358
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
246
Réponses
10
Affichages
739
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
498
Retour