Recherche & référence MergeArrays

Magic_Doctor

XLDnaute Barbatruc
VB:
Function MergeArrays(arr1() As Variant, arr2() As Variant) As Variant
'*********************************************
'Fusionne 2 matrices de longueurs différentes
'*********************************************
'- arr1 : 1ère matrice
'- arr2 : 2ème matrice
'https://stackoverflow.com/questions/1588913/how-do-i-merge-two-arrays-in-vba

Dim returnThis() As Variant, len1 As Integer, len2 As Integer, lenRe As Integer, counter As Integer
  
    len1 = UBound(arr1)
    len2 = UBound(arr2)
    lenRe = len1 + len2
    ReDim returnThis(1 To lenRe)
    counter = 1

    Do While counter <= len1 'get first array in returnThis
        returnThis(counter) = arr1(counter)
        counter = counter + 1
    Loop
    Do While counter <= lenRe 'get the second array in returnThis
        returnThis(counter) = arr2(counter - len1)
        counter = counter + 1
    Loop

    MergeArrays = returnThis

End Function
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
Bonjour
en plus simple
VB:
Function MergeArrays(ByRef arr1() As Variant, arr2() As Variant) As Variant
  Dim t
  t = Join(arr1, ";") & ";" & Join(arr2, ";")
    MergeArrays = Split(t, ";")
End Function
;)
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour
oui j'ai voulu garder ton"byref arr1() as variant" mais c'est pas bon
j'enleve donc les parenthezes de dimentionnement sinon tu ne peux pas injecter toute forme d'array
VB:
Sub test()
Dim arr1, arr2() As Variant
'arr1 = Array(1, 2, 3, 4, 5)'array codé en dur
arr1 = Split("1,2,3,4,5", ",") ' array issu d'un split
arr2 = Array(6, 7, 8, 9, 10)
MsgBox Join(MergeArrays(arr1, arr2), ";")
End Sub

Sub test2()
Dim arr1() As Variant, arr2() As Variant
arr1 = Array("toto", "titi", "riri")
arr2 = Array("fifi", "loulou", "truc")
MsgBox Join(MergeArrays(arr1, arr2), ";")
End Sub

Function MergeArrays(ByRef arr1 As Variant, ByRef arr2 As Variant) As Variant
  Dim t
  t = Join(arr1, ";") & ";" & Join(arr2, ";")
    MergeArrays = Split(t, ";")
End Function
demo7.gif
 

Discussions similaires

Réponses
0
Affichages
256
Réponses
11
Affichages
512

Statistiques des forums

Discussions
312 108
Messages
2 085 371
Membres
102 876
dernier inscrit
BouteilleMan