Combinaison de ligne et de colonne

Résolu
Bonsoir, alors voilà je cherche depuis quelques semaines une solution pour construire à l'aide du tableur et d'un tableau de donnée d'autre tableau combinant ligne et colonne du premier tableau. Je ne sais pas si j'ai été clair mais je vais essayer de mieux expliquer avec un exemple car je pense qu'il y a un moyen mais je ne sais pas trop comment formuler le problème.
J'ai fait une capture du genre de tableau que j'ai et que je souhaiterai créer (en bleu). En soi pour combiner les valeurs ce n'ai pas très dur avec des valeurs mixtes mais le truc c'est que je voudrais faire ça pour un très grand nombre de valeur (tableau 20x20)

Voilà j'espère que vous avez plus ou moins compris et qu'il y a un solution, je vous remercie par avance de l'attention que vous porterez à ma requête :)

5 réponses

  1. Contributeur
    Salut le Forum

    Quand ton véhicule est en trouble, tu amènes une photo de ton moteur au garagiste.

    Merci de joindre un fichier en utilisant https://www.cjoint.com/
    et recopie le lien fourni dans ton prochain message.

    Mytå
    _--
    Merci de donner suite à votre question, nous ne sommes pas des robots...
    « Si le déboguage est l'art d'enlever les bogues, alors la programmation doit être l'art de les créer. »
    0
    1. J'ai pas tout compris à ce que tu as dit mais déjà :
      https://www.cjoint.com/c/EBfx5mAMiCC
      Et merci je savais pas qu'il fallait passer par cjoint je suis désolé
      0
      1. Contributeur
        Re le Forum

        Je demande un fichier, tu remet une photo et sans aucunes valeurs d'inscrites.

        Essaye en J3 à recopier vers le bas et vers la droite
         =INDEX($C$3:$G$7;EQUIV($I3;$B$3:$B$7);EQUIV(J$2;$C$2:$G$2))

        Mytå
        0
      2. Bonjour,

        Dans la réponse de Mytå, le mot le plus important était "photo".

        Si tu utilises cjoint pour envoyer une photo au lieu d'un fichier avec explications et demande détaillée de ce que tu souhaites comme résultat, j'en conclus que tu n'as pas compris......

        Tes zones en bleues ont besoin d'être expliquées. La façon de remplir tes tableaux, on ne peut pas la deviner.

        Donc, envoie un classeur excel avec les règles de calcul, les règles de construction de tes tableaux bleus.

        cordialement
        0
    2. Bonsoir,
      Je suis désolé je n'avais pas compris la métaphore, à cette heure tardive mon cerveau ne devait fonctionner qu'à moitié. Et de toute manière le tableau que je vous avez fourni n'était pas forcément non plus des plus pertinent !

      Je vous joint donc celui ci maintenant que j'ai compris : https://www.cjoint.com/c/EBgtXw2GFQz
      Mon problème n'est donc pas de remplir les tableaux qui étaient bleus sur la capture mais de les construire car ils seront finalement 324 et je pense qu'il doit y avoir moyen de faire sans copier le tableau et changer les adresses pour les formules de chaque tableau ce que j'ai pour l'instant fait.
      Normalement le dernier 'tableau' qui sera en bas à droite ne devrait être qu'une simple cellule avec une valeur numérique encadrée à gauche et au dessus par deux autre qr et qr.

      Si vous n'avez toujours pas compris exactement vous pouvez évidement me redemander des précisions et en tous cas merci de votre patience !
      0
      1. Bonjour, n'ayant toujours pas de réponse je me permet de vous ressolliciter pour mon problème...
        0
        1. Bonjour,

          voici une proposition par macro pour créer tes tableaux :
          Sub canevas()
          vTitresH = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r")
          vTitresV = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r")
          titresH = vTitresH
          titresV = vTitresV
          colSep = 1: ligSep = 1
          coinSupX = 2: coinSupY = 2
          colTitre = 2: ligTitre = 2
          largeur = UBound(titresH) + 1: hauteur = UBound(titresV) + 1
          coinY = coinSupY
          lettreTitreHaut = "": lettreTitreGauche = ""
          Cells.HorizontalAlignment = xlCenter
          Cells.VerticalAlignment = xlCenter
          For j = hauteur To 1 Step -1
          coinX = coinSupX
          For i = largeur To 1 Step -1
          Cells(coinY, coinX + colTitre) = lettreTitreHaut
          Cells(coinY, coinX + colTitre).Resize(1, i).Merge
          Cells(coinY + 1, coinX + colTitre).Resize(1, i) = titresH
          Cells(coinY + ligTitre, coinX) = lettreTitreGauche
          Cells(coinY + ligTitre, coinX).Resize(j, 1).Merge
          Cells(coinY + ligTitre, coinX + 1).Resize(j, 1) = WorksheetFunction.Transpose(titresV)
          coinX = coinX + colSep + colTitre + i
          lettreTitreHaut = titresH(0)
          For k = 0 To i - 2: titresH(k) = titresH(k + 1): Next k
          Next i
          lettreTitreHaut = ""
          titresH = vTitresH
          coinY = coinY + ligSep + ligTitre + j
          lettreTitreGauche = titresV(0)
          For k = 0 To j - 2: titresV(k) = titresV(k + 1): Next k
          Next j
          End Sub


          cordialement
          0
          1. peut-être des commentaires :
            colSep et ligSep = nbre de colonnes et de lignes séparant les tableaux
            coinSupX et coinSupY = colonne et ligne du coin supérieur gauche du 1er tableau
            colTitre et ligTitre = nbre de colonnes et de lignes des titres correspondants
            lettreTitreHaut et lettreTitreGauche = valeurs mise en titre de niveau 1
            0
          2. @JvDoJ'ai crus que j'allais un peu pinailler pour comprendre mais j'ai compris le principe !
            Je te remercie infiniment en tout cas JvDo c'est exactement ce que je cherchais, bonne fin de soirée.
            0