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

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

  • 14_AT_Test TRS avec chgnt de cde v3.xlsm
    320.3 KB · Affichages: 14
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
C

Compte Supprimé 979

Guest
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+
 

cp4

XLDnaute Barbatruc
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:

Dravol

XLDnaute Junior
Bonjour BrunoM45 & cp4,

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

Drav.
 

Discussions similaires

Réponses
4
Affichages
398
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…