Afficher les produits dont quantité est supérieure à zéro

Bonjour le forum

Je souhaite faire apparaître dans mes textbox_Bois les 9 premières boissons de la plage DESTINATION!A3:A15 dont la quantité est supérieure à zéro. La quantité du textbox_bois répondant au critère devra s’afficher aussi dans le textbox_Qte.

NB : La colonne quantité de la feuille "DESTINATION" visée est celle dont la date correspondrait à la date du Textbox2 (Date).

Bonjour,

Un essai ...

Les "TextBox_Bois" sont de 3 à 15.

Pour faciliter la chose, j'ai renommé les "TextBox_Qte" de 3 à 15 itou.

Private Sub UserForm_initialize()
Dim x As Integer
Dim y As Integer
Dim Z As Integer

   TextBox2.Value = Date
   y = 3
   With Worksheets("DESTINATION")
      For x = 2 To 5
         If .Cells(2, x) Like CDate(Me.TextBox2) Then
            For Z = 3 To 15
               If .Cells(Z, x).Value > 0 Then
                  Controls("TextBox_Bois" & y) = .Cells(Z, "A")
                  Controls("TextBox_Qte" & y) = CInt(.Cells(Z, x))
                  y = y + 1
                  If y > 11 Then Exit Sub
               End If
            Next Z
            Exit For
         End If
      Next x
   End With
End Sub

ric

Bonsoir Ric et le forum

Merci pour ta solution qui fonctionne à merveille dans mon cas de test.

Pour mieux l'adapter à mon cas réel, j'aimerai comprendre le code.

For x = 2 To 5

Pourquoi 2 to 5

Est-ce pour délimiter les colonnes comportant les dates? Dans ce cas il faut savoir que la colonne serait évolutive donc une solution dynamique serait mieux.

Aussi cette partie du code m'échappe :

If .Cells(2, x) Like CDate(Me.TextBox2) Then

plus précisément

Cells(2, x)

. Que représente le chiffre 2?

Encore merci pour ton génie

IJexunTr483

Bonjour,

... Pour mieux l'adapter à mon cas réel, j'aimerai comprendre le code.

Pourquoi 2 to 5 ... Est-ce pour délimiter les colonnes comportant les dates? ...

Oui, c'est bien les colonnes comportant les dates.

... "Cells(2, x)" ... Que représente le chiffre 2? ...

Il représente la ligne 2 .

Le code n'est pas prévu pour des plages dynamiques. Ce n'était pas demandé dans l'énoncé.

ric

Bonsoir ric

Merci pour les explications. Je m'excuse aussi pour le temps du feedback.

Le code n'est pas prévu pour des plages dynamiques. Ce n'était pas demandé dans l'énoncé.

Pour moi cette partie de mon besoin faisait allusion à des plages dynamiques:

NB : La colonne quantité de la feuille "DESTINATION" visée est celle dont la date correspondrait à la date du Textbox2 (Date).

Pouvez-vous m'aider pour une plage dynamique?

Merci

Bonjour,

Un essai ...

Private Sub UserForm_initialize()
Dim x As Integer
Dim y As Integer
Dim Z As Integer
Dim Dcol As Integer  ' pour trouver dernière colonne
Dim Dlig As Integer  ' pour trouver dernière ligne

   TextBox2.Value = Date
   y = 3
   With Worksheets("DESTINATION")
      Dlig = .Cells(Rows.Count, "A").End(xlUp).Row  ' dernière ligne basé sur la colonne A
      Dcol = .Cells(2, Columns.Count).End(xlToLeft).Column ' dernière colonne basé sur la ligne 2

      For x = 2 To Dcol    ' to dernière colonne
         If .Cells(2, x) Like CDate(Me.TextBox2) Then
            For Z = 3 To Dlig    ' to dernière ligne
               If .Cells(Z, x).Value > 0 Then
                  Controls("TextBox_Bois" & y) = .Cells(Z, "A")
                  Controls("TextBox_Qte" & y) = CInt(.Cells(Z, x))
                  y = y + 1
                  If y > 11 Then Exit Sub
               End If
            Next Z
            Exit For
         End If
      Next x
   End With
End Sub

ric

Bonsoir ric

Superbe proposition.

Problème résolu.

Merci!!

Rechercher des sujets similaires à "afficher produits quantite superieure zero"