Recherche & référence MergeArrays

  • Initiateur de la discussion Initiateur de la discussion Magic_Doctor
  • 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 !

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:
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
😉
 
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
 
- 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
0
Affichages
519
Réponses
11
Affichages
762
Réponses
10
Affichages
1 K
Retour