Comment associer 2 tableaux imbriqués ?

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

J

jlcharat

Guest
Bonsoir à tous

Je cherche, à partir d'un tableau n° 1 et d'un tableau n° 2, à créer un tableau n° 3, reprenant chaque ligne du tableau n° 1, dupliquées en fonction des lignes du tableau n° 2.

Ex :

Tableau n° 1
1er étage
2ème étage

Tableau n°2
Appartement n° 1
Appartement n° 2
Appartement n° 3


Tableau n° 3
1er étage Appartement n°1
1er étage Appartement n° 2
1er étage Appartement n° 3
2ème étage Appartement n° 1
2ème étage Appartement n° 2
2ème étage Appartement n° 3

Merci d'avance pour l'aide apportée.
 

Pièces jointes

Re : Comment associer 2 tableaux imbriqués ?

Bonjour jlcharat
Essayez
Code:
[COLOR="DarkSlateGray"][B]=DECALER($B$4;(LIGNE()-12)/3;0)[/B][/COLOR]
en D12 et
Code:
[COLOR="DarkSlateGray"][B]=DECALER($G$4;MOD(LIGNE()-12;3);0)[/B][/COLOR]
en E12, puis recopiez les formules vers le bas.​
ROGER2327
#2691
 
Re : Comment associer 2 tableaux imbriqués ?

Bonjour à tous (et à toutes !).

J'ai tenté d'améliorer le code de ROGER2327, pour donner une dimension variable aux tableaux de données :

m = nombre de lignes du tableau n° 1 (Client)
n = nombre de lignes du tableau n° 2 (Produit)
p = nombre de lignes du tableau résultant n° 3

Code:
Dim k, m, n, p
    k = 0
    m = 0
    n = 0
    p = 0
    [COLOR="DarkRed"][B]m = "=(Rows(Client) - 2)"
    Range("a1") = m
    n = "=(rows(Produit)-2)"
    Range("b1") = n
    Range("a2").Value = Range("e1").Value * Range("f1").Value
    p = Range("a2").Value[/B][/COLOR]
    Columns("C:D").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    For k = 1 To p
    Range("C" & k).Select
    ActiveCell.FormulaR1C1 = "=OFFSET(R4C1,(ROW()-1)/(ROWS(Produit)-2),0)"
    Range("D" & k).Select
    ActiveCell.FormulaR1C1 = "=OFFSET(R4C2,MOD((ROW()-1),(ROWS(Produit)-2)),0)"
    Next k

Je ne suis pas arrivé à exploiter directement les variables.
La formule : p=m*n
renvoie : "Erreur d'exécution '13': Incompatibilité de type "

J'ai utilisé le subterfuge de les affecter à des plages (Range(...)), mais ce n'est pas satisfaisant intellectuellement

Merci pour vos lumières.
jlcharat
 
- 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
2
Affichages
918
Réponses
23
Affichages
679
  • Question Question
Réponses
13
Affichages
437
Réponses
12
Affichages
774
Retour