Concatener deux matrices excel dans un tab memoire

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

S

sygtrygg

Guest
Bonjour,

J'ai dû diviser une matrice sur deux feuilles à cause de la limite de 256 colonnes sur une feuille.
Du coup j'aimerais savoir s'il existe une fonction qui permette de récupérer ces deux tableaux et de la reconstituer dans un tableau en mémoire.

Merci
 
Bonjour sygtrygg, re le forum

En imaginant tes données dans les feuilles 1 et 2, commencant dans la cellule A1 (pour le currentregion), cette macro va te créer un tableau final reprenant les deux feuilles.

on pourrait éviter les deux premiers tableaux (tablo1 et tablo2) et boucler sur les deux feuilles, mais comme tu parles de limite de 256 colonnes , j'ai supposé que tu avais beaucoup de données. Et passer par des tableaux variant est plus rapide.

Par contre il te faudra sans doute fort adapter ce code à ta présentation.

en espérant t'avoir aidé

Sub Bouton1_QuandClic()
Dim tablo1 As Variant
Dim tablo2 As Variant
Dim tablores() As String
Dim i As Integer, j As Integer

'création des 2 tableaux provisoires
tablo1 = Sheets('feuil1').Range('a1').CurrentRegion
tablo2 = Sheets('feuil2').Range('a1').CurrentRegion

'dimensionnement du tableau final
ReDim tablores(1 To UBound(tablo1, 1) + UBound(tablo2, 1), UBound(tablo1, 2) + UBound(tablo2, 2))

'renvoi du premier tableau dans le tableau de résultat
For i = 1 To UBound(tablo1, 1)
   
For j = 1 To UBound(tablo1, 2)
        tablores(i, j) = tablo1(i, j)
   
Next j
Next i

'renvoi du deuxième tableau dans le tableau de résultat à la suite du premier tableau (i + UBound(tablo1, 1))
For i = 1 To UBound(tablo2, 1)
   
For j = 1 To UBound(tablo2, 2)
        tablores(i + UBound(tablo1, 1), j) = tablo2(i, j)
   
Next j
Next i

'Sheets('feuil3').Range('a1').Resize(UBound(tablores, 1), UBound(tablores, 2)) = tablores
End Sub

salut
 
Re:Concatener deux matrices excel dans un tab memo

Merci beaucoup je pense pouvoir m'en sortir avec ce code. Je ne connaissais pas la fonction UBound pour les limites des tableaux c'est bien pratique dans ce cas la.
J'espere que meme avec beaucoup de données les affectations d'un tableau à un autre seront rapide.

Encore merci
 
Re:Concatener deux matrices excel dans un tab memo

re

il existe aussi Lbound pour connaitre la limite inférieur d'un tableau;

Attention si tes tableaux dépassent les 32768 lignes passe les variables i et j en long

Je viens de faire un essai avec 2 matrices de 256 colonnes et 10000 lignes chacunes, le traitement se fait en 10 secondes environ;

salut
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
522
Réponses
1
Affichages
2 K
Retour