Si variable vide, l'ignorer en VBA

NeriXs Messages postés 258 Date d'inscription lundi 4 mai 2015 Statut Membre Dernière intervention 27 février 2024 - 23 oct. 2023 à 19:54
NeriXs Messages postés 258 Date d'inscription lundi 4 mai 2015 Statut Membre Dernière intervention 27 février 2024 - 23 oct. 2023 à 22:03

Bonjour,

Je récupère la valeur de variables dans une TextBox.

Exemple avec 3 variables, mais il y en a plus.

MaVariable1 ="123Ab"
MaVariable2 ="AbC45"
MaVariable3 ="Ab1234r6CdEf"

Je les affiche dans ma TextBox1 sur plusieurs lignes:

UserForm1.TextBox1 = MaVariable1 & vbCr & MaVariable2 & vbCr & MaVariable3

Si une ou plusieurs variables sont vide, j'ai une ou plusieurs lignes vide dans ma TextBox.

Comment faire pour, si variable vide passer à la suivante sans faire de saut de ligne dans ma TextBox?

2 réponses

Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 656
23 oct. 2023 à 19:57

Au lieu de plusieurs variables, peux-tu utiliser une collection ou un tableau ?

Si oui, tu fais une boucle et tu ne concatènes pas les vides.


0
NeriXs Messages postés 258 Date d'inscription lundi 4 mai 2015 Statut Membre Dernière intervention 27 février 2024 1
Modifié le 23 oct. 2023 à 22:05

Heu! Pour être franc je ne sais pas trop!

C'est toujours sur le projet de ma discussion précédente "[REGEX] Recherche Patten de capture, un défi ?"

Plus précisément:

'on écrit le résultat complet
resultat = resultat + vbCrLf + "(01) GTIN de l’article: " + gtin + vbCrLf + "(11) Date de production: " + dateProd + vbCrLf + "(17) Date d'expiration : " + dateExpi + vbCrLf + "(10) Numéro de lot: " + numLot + vbCrLf + "(21) Numéro de série: " + numSerie

Sauf que j'utilise des TextBox.

UserForm1.TextBox1 = "(01) GTIN de l’article: " + gtin + vbCrLf + "(11) Date de production: " + dateProd + vbCrLf + "(17) Date d'expiration : " + dateExpi + vbCrLf + "(10) Numéro de lot: " + numLot + vbCrLf + "(21) Numéro de série: " + numSerie

Je regarde comment est construit une collection.

Declare				Dim coll As Collection

Create at run time		Set coll = New Collection

Declare and Create		Dim coll As New Collection

Add item			coll.Add "Apple"

Access item 			coll(1) or coll(2)

Access item added first 	coll(1)

Access item added last		coll(coll.Count)

Get number of items		coll.Count

Access all items(For)		Dim i As Long
				For i = 1 To coll.Count
   					Debug.Print coll(i)
				Next i

Access all items(For Each)	Dim fruit As Variant
				For Each fruit In coll
   					Debug.Print fruit
				Next fruit

Remove item			coll.Remove(1)

Remove all Items		Set coll = New Collection

C'est chaud, en plus j'ai du texte avant la variable!

0
Rejoignez-nous