Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Documenter la cellule sélectionnée à partir d'un useform

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 !

Dravol

XLDnaute Junior
Re-Bonjour,

Pour finaliser mon projet, je souhaiterai que mon useform ci-dessous viennent documenter mes cellules en fonction de mes choix.

Actuellement, elle se trouve dans un module mais ne fait pas le lien avec les cellules. Quand je sélectionne ma cellule et que j'effectue un choix, elle n'incrémente pas cette cellule (sans doute à cause de la dernière partie de mon code).

Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 1
.ColumnWidths = "200"
End With
Me.ListBox1.List = [aliments].Value
End Sub

Private Sub TextBox1_Change()
Me.ListBox1.Clear
i = 0
For Each c In Application.Index([aliments], , 0)
If UCase(c) Like "*" & UCase(Me.TextBox1) & "*" Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Offset(0, 0).Value
i = i + 1
End If
Next c
End Sub

Private Sub CommandButton1_Click()

flag = True
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
flag = False
End If
Next i
If flag Then
MsgBox "Choisir un article !"
Exit Sub
End If

der = Range("A" & Application.Rows.Count).End(xlUp).Row + 1
Range("A1").Value = Me.ListBox1.Column(0)
Me.Hide

End Sub

Mon fichier en pj.
si vous cliquez dans la journée du lundi sur une des cellules "D" "O" ou "Z" vous verrez que mon useform se déclenche bien mais quand je sélectionne un critère, il ne vient pas remplir la cellule.
Petite précision, je souhaiterai plutôt qu'il affiche la valeur en colonne "B" de l'onglet "Liste useform"

Drav.
 

Pièces jointes

Dernière édition:
Solution
Bonjour @Dravol 🙂, @BrunoM45 😉,

BrunoM45 t'a indiqué la correction à faire.
Pour ma contribution, code ci-dessous pour ne pas utiliser le 'flag', d'où se passer d'une boucle inutile en soit
VB:
Private Sub CommandButton1_Click()
    If ListBox1.ListIndex <> -1 Then '=-1 signifie pas de selection'
        der = Range("A" & Application.Rows.Count).End(xlUp).Row + 1
        Selection.Value = Me.ListBox1.Column(0)
    Else
        MsgBox "Choisir un article !"
        Exit Sub
    End If
    Me.Hide
End Sub
Bonjour Dravol

C'est normal, la cellule à remplir est inscrite en dur 😱
VB:
Range("[B]D87[/B]").Value = Me.ListBox1.Column(0)

Il faut donc inscrire la valeur dans la cellule sélectionnée
VB:
Selection.Value = Me.ListBox1.Column(0)

A+
 
Bonjour @Dravol 🙂, @BrunoM45 😉,

BrunoM45 t'a indiqué la correction à faire.
Pour ma contribution, code ci-dessous pour ne pas utiliser le 'flag', d'où se passer d'une boucle inutile en soit
VB:
Private Sub CommandButton1_Click()
    If ListBox1.ListIndex <> -1 Then '=-1 signifie pas de selection'
        der = Range("A" & Application.Rows.Count).End(xlUp).Row + 1
        Selection.Value = Me.ListBox1.Column(0)
    Else
        MsgBox "Choisir un article !"
        Exit Sub
    End If
    Me.Hide
End Sub
 
Dernière édition:
Bonjour BrunoM45 & cp4,

Merci pour vos retours^^, c'est parfait.

Drav.
 
- 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
569
Réponses
4
Affichages
439
Réponses
4
Affichages
332
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
481
Réponses
10
Affichages
714
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…