Intégrer les différents résultats d'une boucle dans une variable texte

  • Initiateur de la discussion Initiateur de la discussion ninajams
  • Date de début Date de début

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 !

ninajams

XLDnaute Junior
Bonjour,

J'ai un formulaire contenant les champs Couleur_1, Couleur_2 ect.. jusqu'à Couleur_20.
J'ai fait ce petit code très basic qui reprend la valeur des différents champs pour les intégrer dans une variable string ce qui donnera :
Les couleurs disponible sont : couleur 1 , couleur 2, ect jusqu'à couleur 20.

VB:
'Ma condition est d'avoir au moins 2 couleurs donc si le champs 2 est vide je ne veux rien faire
If Couleur_2.Value = "" Then
Else
CouleurBatterie = "Les couleurs disponible sont : " & Couleur_1.Value & Couleur_2.Value & Couleur_3.Value & Couleur_4.Value
End If

Mais j'aimerais améliorer le code pour ne prendre en compte que les champs non vide sinon ça donne comme résultat Couleur1, Couleur2,,,,,,,,,,,,,,,,,,,.
Ce qui n'est pas très jolie.

J'ai essayé plusieurs variantes de boucle mais je n'ai pas réussi à obtenir quelque chose d'exploitable notamment pour ma variable texte qui doit lister les couleurs disponible.

Voici un exemple qui ne fonctionne pas

Code:
Dim T(21) As Variant

For c = 1 To 20
T(c) = Couleur_c.Value
Next
CouleurBatterie = "Les couleurs disponible sont : " & T(0) & T(1) & T(2)

Merci pour votre aide.
 
Bonsoir Ninajams,
Un petit essai :
Code:
Sub essai()
Dim T(21) As Variant
CouleurBatterie = "Les couleurs disponible sont : "
For c = 1 To 20
    T(c) = Couleur_c.Value
    If T(c) <> "" Then
        CouleurBatterie = CouleurBatterie & T(c) & ","
    End If
Next
CouleurBatterie = Mid(CouleurBatterie, 1, Len(CouleurBatterie) - 1) ' supprime la virgule finale
End Sub
 
Merci beaucoup. J'ai du le retravailler légèrement parce que les objets aiment pas beaucoup les .value.

Maintenant ça marche.

Et merci encore pour le coup de mettre la variable texte dans la boucle. C'est un truc que je vais réutiliser souvent.

VB:
Dim TableauCouleur(19) As Variant
CouleurBatterie = "Les couleurs disponible sont : "
For c = 0 To 19
    TableauCouleur(c) = UserForm1.Controls("Couleur_" & c + 1).Value
    If TableauCouleur(c) <> "" Then
        CouleurBatterie = CouleurBatterie & TableauCouleur(c) & ","
    End If
          
Next
CouleurBatterie = Mid(CouleurBatterie, 1, Len(CouleurBatterie) - 1) & "." ' supprime la virgule finale
 
- 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

Retour