XL 2021 VBA : Afficher plusieurs résultats d'une boucle dans une cellule

Claudinedu13

XLDnaute Junior
Bonjour,

C'est encore moi avec mes histoires de boucles

VB:
Sub BoutonColonnesA()
TabAcomptes = Feuil1.Range("A5:F" & Feuil1.Range("A" & Rows.Count).End(xlUp).Row).Value
    For i = 1 To UBound(TabAcomptes)
    If TabAcomptes(i, 2) = "D231201" Then
    MsgBox TabAcomptes(i, 1)
    'Feuil1.Range("B17") = TabAcomptes(i, 1)
    End If
    Next
End Sub

1/ je voudrais savoir si ce code est correct ou si il y a plus simple ?

2/ MsgBox me renvoie bien mes résultats , mais je ne sais pas comment faire pour afficher tous les résultats à la suite (AC240700003 - AC240700007 - AC240700011 ) dans la celllule B17

J'espère que mes demandes sont bien claires, pas évident d'expliquer . Merci
 

Pièces jointes

  • AfficherResultats.xlsm
    20.7 KB · Affichages: 1
Solution
Bonjour.
Comme ça par exemple :
VB:
Sub BoutonColonnesA()
   TabAcomptes = Feuil1.Range("A5:F" & Feuil1.Range("A" & Rows.Count).End(xlUp).Row).Value
   ReDim TJn(1 To UBound(TabAcomptes, 1)) As String
   For i = 1 To UBound(TabAcomptes, 1)
      If TabAcomptes(i, 2) = "D231201" Then n = n + 1: TJn(n) = TabAcomptes(i, 1)
      Next i
   If n > 0 Then
      ReDim Preserve TJn(1 To n)
      Feuil1.[B17].Value = Join(TJn, " - ")
   Else
      Feuil1.[B17].Value = Empty
      End If
   End Sub

job75

XLDnaute Barbatruc
Bonjour Claudinedu13,

Tout à fait classique :
VB:
Sub BoutonColonnesA()
Dim TabAcomptes, i&, x$
TabAcomptes = Feuil1.Range("A5", Feuil1.Range("A" & Rows.Count).End(xlUp)).Resize(, 2)
For i = 1 To UBound(TabAcomptes)
    If TabAcomptes(i, 2) = "D231201" Then x = x & " - " & TabAcomptes(i, 1)
Next
Feuil1.Range("B17") = Mid(x, 4)
End Sub
A+
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Comme ça par exemple :
VB:
Sub BoutonColonnesA()
   TabAcomptes = Feuil1.Range("A5:F" & Feuil1.Range("A" & Rows.Count).End(xlUp).Row).Value
   ReDim TJn(1 To UBound(TabAcomptes, 1)) As String
   For i = 1 To UBound(TabAcomptes, 1)
      If TabAcomptes(i, 2) = "D231201" Then n = n + 1: TJn(n) = TabAcomptes(i, 1)
      Next i
   If n > 0 Then
      ReDim Preserve TJn(1 To n)
      Feuil1.[B17].Value = Join(TJn, " - ")
   Else
      Feuil1.[B17].Value = Empty
      End If
   End Sub
 

Claudinedu13

XLDnaute Junior
Bonjour.
Comme ça par exemple :
VB:
Sub BoutonColonnesA()
   TabAcomptes = Feuil1.Range("A5:F" & Feuil1.Range("A" & Rows.Count).End(xlUp).Row).Value
   ReDim TJn(1 To UBound(TabAcomptes, 1)) As String
   For i = 1 To UBound(TabAcomptes, 1)
      If TabAcomptes(i, 2) = "D231201" Then n = n + 1: TJn(n) = TabAcomptes(i, 1)
      Next i
   If n > 0 Then
      ReDim Preserve TJn(1 To n)
      Feuil1.[B17].Value = Join(TJn, " - ")
   Else
      Feuil1.[B17].Value = Empty
      End If
   End Sub
Super , merci à @Dranreb et @job75 pour vos réponses/solutions. 👍
 

Discussions similaires

Réponses
4
Affichages
449

Statistiques des forums

Discussions
315 085
Messages
2 116 071
Membres
112 648
dernier inscrit
Otete Christian