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

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 !

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

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
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+
 
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
 
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. 👍
 
- 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
4
Affichages
177
Réponses
2
Affichages
511
Retour