Problème de concaténation VBA

mimy

XLDnaute Occasionnel
Bonjour à tous,

J'ai un petit probème de concaténation.

Je m'explique:

J'ai un array fr1=("hello","bonjour") et un array fr2=("papa","maman","enfant")

Je voudrais faire une boucle qui concatenne ma variable fr à z, mais je n'y arrive pas :(

For z=1 to 2
For i = 1 To UBound(fr)
msgbox=fr & z (i)
next i
next z

Merci pour votre aide
 
G

Guest

Guest
Re : Problème de concaténation VBA

Bonjour,

dans ton exemple, fr2 est un tableau, z est un indice de tableau qui permet à la boucle for de parcourir un à un les éléments du tableau.

Vois ceci:
Code:
Sub trucmachin()
    Dim fr1(0 To 1), fr2(0 To 2)
    Dim i, z
    fr1(0) = "hello": fr1(1) = "bonjour"
    fr2(0) = "papa": fr2(1) = "maman": fr2(2) = "enfants"
    For i = 0 To 1
        For z = 0 To 2
            MsgBox fr1(i) & " " & fr2(z)
        Next z
    Next i
End Sub

A+

[edition]
Hello Job:)
 
Dernière modification par un modérateur:

job75

XLDnaute Barbatruc
Re : Problème de concaténation VBA

Bonjour mimy, salut Hasco, heureux de te croiser,

mimy a parlé d'Array alors :

Code:
Sub Test()
Dim fr1, fr2, i As Byte, j As Byte
fr1 = Array("hello", "bonjour")
fr2 = Array("papa", "maman", "enfant")
For i = 0 To UBound(fr1)
  For j = 0 To UBound(fr2)
    MsgBox fr1(i) & " " & fr2(j)
  Next
Next
End Sub
A+
 

mimy

XLDnaute Occasionnel
Re : Problème de concaténation VBA

Bonjour Hasco et merci pour ta réponse.

Mais n'y a t'il pas un moyen de concaténer l'indice numérique de mon tableau? je voudrais faire une boucle for et avoir ça fr&i(z). On aura alors fr1(z), fr2(z)....

Je te remercie
 

job75

XLDnaute Barbatruc
Re : Problème de concaténation VBA

Re,

On peut se passer d'indices :

Code:
Sub Test2()
Dim fr1, fr2, x, y
fr1 = Array("hello", "bonjour")
fr2 = Array("papa", "maman", "enfant")
For Each x In fr1
  For Each y In fr2
    MsgBox x & " " & y
  Next
Next
End Sub
A+
 
G

Guest

Guest
Re : Problème de concaténation VBA

Re,

A ma connaissance non, pas avec des tableaux. Avec des collections oui dans le style:

Code:
Sub TrucMachin2()
    Dim fr1(0 To 2), fr2(0 To 2), fr3(0 To 1)
    Dim i, z
    Dim col As New Collection
    fr1(0) = "hello": fr1(1) = "bonjour": fr1(2) = "salut"
    fr2(0) = "papa": fr2(1) = "maman": fr2(2) = "enfants"
    col.Add fr1, "fr1"
    col.Add fr2, "fr2"
    For i = 0 To 1
        For z = 0 To 2
            MsgBox col("fr" & i + 1)(z)
        Next z
    Next i
End Sub

A+
Re: Hello Job:)
 

mimy

XLDnaute Occasionnel
Re : Problème de concaténation VBA

Merci Hasco et Jo75 pour vos reponses.

Je vais encore vous déranger un petit instant.
Si j ai:
Nom_1= "bonjour"
Nom_2= " hello"
Nom_3=" ola"
...
On va dire que ca va jusqu à Nom_100.

Est il possible de faire une boucle for de la sorte:
For i=1 to 100
Cells(i,1)=Nom_&i
Next i

J ai essayé mais ca ne marche pas et je voulais savoir si on pouvait concatener comme ca.

Merci beaucoup
 

mimy

XLDnaute Occasionnel
Re : Problème de concaténation VBA

Re,

Mon reel soucis est vraiment la concatenation. Je voulais savoir si c etait possible de concatener une constante avec une variable comme dans l exemple ci dessus.

Si je declare dans mon sub
Nom_1="hello"
Jusqu a
Nom_100="bye"

Et que je fasse une boucle comme dans l exemple ci dessus, je voulais donc savoir si on pouvait concatener comme ca:
Nom_&i.
 

job75

XLDnaute Barbatruc
Re : Problème de concaténation VBA

Re,

Bon, alors s'il s'agit de créer un seul tableau à partir de deux :

Code:
Sub Test3()
Dim fr1, fr2, n As Byte, t(), i As Byte
fr1 = Array("hello", "bonjour")
fr2 = Array("papa", "maman", "enfant")
n = UBound(fr1) + 1
ReDim t(n + UBound(fr2))
For i = 0 To UBound(t)
  If i < n Then t(i) = fr1(i) Else t(i) = fr2(i - n)
  MsgBox t(i)
Next
End Sub
A+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 508
Messages
2 089 143
Membres
104 047
dernier inscrit
bravetta