Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Balayage tableaux pour reconstruire les tableaux avec tous les cas possibles

3 réponses
Avatar
mowtors
Bonjour,

1/ Mon contexte :
J ai 5 tableaux dans une feuille (Feuil1) qui se superposent avec une
structure similaire :
DIRECTION / DOMAINE / SITES

2/ Illustration :

[Tableau 1]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir1 | Domaine 1 | Site1 |
Dir1 | Domaine 2 | Site2 |
Dir1 | Domaine 3 | Site3 |
Dir1 | Domaine 4 | Site4 |
------------------------------------------------------------------

[Tableau 2]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir2 | Domaine 6 | Site1 |
Dir2 | Domaine 7 | Site8 |
Dir2 | Domaine 8 | Site9 |
Dir2 | Domaine 9 | Site5 |
Dir2 | Domaine 10 | Site6 |
-------------------------------------------------------------------

[Tableau 3]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir3 | Domaine 11 | Site1 |
Dir3 | Domaine 12 | Site2 |
Dir3 | Domaine 13 | Site12 |
Dir3 | Domaine 14 | Site15 |
Dir3 | Domaine 15 | Site16 |
-------------------------------------------------------------------

[tableau 4]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir4 | Domaine 16 | Site17 |
Dir4 | Domaine 17 | Site18 |
Dir4 | Domaine 18 | Site19 |
Dir4 | Domaine 19 | Site20 |
Dir4 | Domaine 20 | Site21 |
-------------------------------------------------------------------

[tableau 5]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir5 | Domaine 21 | Site17 |
Dir5 | Domaine 22 | Site18 |
Dir5 | Domaine 23 | Site19 |
Dir5 | Domaine 24 | Site20 |
Dir5 | Domaine 25 | Site21 |
-------------------------------------------------------------------

Informations annexes :
- Seuls les 'sites' peuvent =EAtre dans les 5 tableaux
- Les directions et les domaines =E9tant sp=E9cifiques =E0 chaque tableau.
- Je s=E9pare chacun des 5 tableau par une ligne vide (format que je
peux modifier)

3/ Mon objectif :
Trouver une macro capable :
a=2E de parcourir les 5 tableaux pour les reconstruire 1 par 1 dans une
nouvelle feuille (Feuil2) en reconstruisant les tableaux en mettant
autant de lignes que de cas possibles dans le trio 'Direction +domaine
+ site'


Illustration du r=E9sultat attendu en reprenant le [tableau 1] :

{Feuil2} [tableau 1] obtenu =E0 partir de la {Feuil1} [tableau 1] :
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir1 | Domaine 1 | Site1 |
Dir1 | Domaine 1 | Site2 |
Dir1 | Domaine 1 | Site3 |
Dir1 | Domaine 1 | Site4 |
Dir1 | Domaine 1 | Site5 |
Dir1 | Domaine 2 | Site2 |
Dir1 | Domaine 2 | Site3 |
Dir1 | Domaine 2 | Site4 |
Dir1 | Domaine 2 | Site5 |
Dir1 | Domaine 2 | Site2 |
Dir1 | Domaine 3 | Site1 |
Dir1 | Domaine 3 | Site2 |
Dir1 | Domaine 3 | Site3 |
Dir1 | Domaine 3 | Site4 |
Dir1 | Domaine 3 | Site5 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
-------------------------------------------------------------------


Voila, je bloque sur cette macro depuis un moment donc si quelq'un
voit la lumi=E8re, s'il veut bien me guider.
J'esp=E8re que mon explication est claire.
Bonne journ=E9e =E0 tous & merci par avance aux bonnes =E2mes.

Mowtors

3 réponses

Avatar
FxM
Bonsoir,

Un exemple ici. Lancer la macro test et jeter un oeil dans Feuil2.
http://cjoint.com/?hew4wDp7Cn

@+
FxM


Bonjour,

1/ Mon contexte :
J ai 5 tableaux dans une feuille (Feuil1) qui se superposent avec une
structure similaire :
DIRECTION / DOMAINE / SITES

2/ Illustration :

[Tableau 1]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir1 | Domaine 1 | Site1 |
Dir1 | Domaine 2 | Site2 |
Dir1 | Domaine 3 | Site3 |
Dir1 | Domaine 4 | Site4 |
------------------------------------------------------------------

[Tableau 2]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir2 | Domaine 6 | Site1 |
Dir2 | Domaine 7 | Site8 |
Dir2 | Domaine 8 | Site9 |
Dir2 | Domaine 9 | Site5 |
Dir2 | Domaine 10 | Site6 |
-------------------------------------------------------------------

[Tableau 3]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir3 | Domaine 11 | Site1 |
Dir3 | Domaine 12 | Site2 |
Dir3 | Domaine 13 | Site12 |
Dir3 | Domaine 14 | Site15 |
Dir3 | Domaine 15 | Site16 |
-------------------------------------------------------------------

[tableau 4]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir4 | Domaine 16 | Site17 |
Dir4 | Domaine 17 | Site18 |
Dir4 | Domaine 18 | Site19 |
Dir4 | Domaine 19 | Site20 |
Dir4 | Domaine 20 | Site21 |
-------------------------------------------------------------------

[tableau 5]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir5 | Domaine 21 | Site17 |
Dir5 | Domaine 22 | Site18 |
Dir5 | Domaine 23 | Site19 |
Dir5 | Domaine 24 | Site20 |
Dir5 | Domaine 25 | Site21 |
-------------------------------------------------------------------

Informations annexes :
- Seuls les 'sites' peuvent être dans les 5 tableaux
- Les directions et les domaines étant spécifiques à chaque tableau.
- Je sépare chacun des 5 tableau par une ligne vide (format que je
peux modifier)

3/ Mon objectif :
Trouver une macro capable :
a. de parcourir les 5 tableaux pour les reconstruire 1 par 1 dans une
nouvelle feuille (Feuil2) en reconstruisant les tableaux en mettant
autant de lignes que de cas possibles dans le trio 'Direction +domaine
+ site'


Illustration du résultat attendu en reprenant le [tableau 1] :

{Feuil2} [tableau 1] obtenu à partir de la {Feuil1} [tableau 1] :
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir1 | Domaine 1 | Site1 |
Dir1 | Domaine 1 | Site2 |
Dir1 | Domaine 1 | Site3 |
Dir1 | Domaine 1 | Site4 |
Dir1 | Domaine 1 | Site5 |
Dir1 | Domaine 2 | Site2 |
Dir1 | Domaine 2 | Site3 |
Dir1 | Domaine 2 | Site4 |
Dir1 | Domaine 2 | Site5 |
Dir1 | Domaine 2 | Site2 |
Dir1 | Domaine 3 | Site1 |
Dir1 | Domaine 3 | Site2 |
Dir1 | Domaine 3 | Site3 |
Dir1 | Domaine 3 | Site4 |
Dir1 | Domaine 3 | Site5 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
-------------------------------------------------------------------


Voila, je bloque sur cette macro depuis un moment donc si quelq'un
voit la lumière, s'il veut bien me guider.
J'espère que mon explication est claire.
Bonne journée à tous & merci par avance aux bonnes âmes.

Mowtors



Avatar
mowtors
Bonsoir,
Après un rapide coup d'oeil, ca semble idéal !
J'essaie de désosser un peu le code demain pour tacher de comprendre
comment fonctionne la macro.
Grand grand merci.

Bonne soirée & a bientot !
Mowtors


Bonsoir,

Un exemple ici. Lancer la macro test et jeter un oeil dans Feuil2.
http://cjoint.com/?hew4wDp7Cn

@+
FxM


Bonjour,

1/ Mon contexte :
J ai 5 tableaux dans une feuille (Feuil1) qui se superposent avec une
structure similaire :
DIRECTION / DOMAINE / SITES

2/ Illustration :

[Tableau 1]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir1 | Domaine 1 | Site1 |
Dir1 | Domaine 2 | Site2 |
Dir1 | Domaine 3 | Site3 |
Dir1 | Domaine 4 | Site4 |
------------------------------------------------------------------

[Tableau 2]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir2 | Domaine 6 | Site1 |
Dir2 | Domaine 7 | Site8 |
Dir2 | Domaine 8 | Site9 |
Dir2 | Domaine 9 | Site5 |
Dir2 | Domaine 10 | Site6 |
-------------------------------------------------------------------

[Tableau 3]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir3 | Domaine 11 | Site1 |
Dir3 | Domaine 12 | Site2 |
Dir3 | Domaine 13 | Site12 |
Dir3 | Domaine 14 | Site15 |
Dir3 | Domaine 15 | Site16 |
-------------------------------------------------------------------

[tableau 4]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir4 | Domaine 16 | Site17 |
Dir4 | Domaine 17 | Site18 |
Dir4 | Domaine 18 | Site19 |
Dir4 | Domaine 19 | Site20 |
Dir4 | Domaine 20 | Site21 |
-------------------------------------------------------------------

[tableau 5]
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir5 | Domaine 21 | Site17 |
Dir5 | Domaine 22 | Site18 |
Dir5 | Domaine 23 | Site19 |
Dir5 | Domaine 24 | Site20 |
Dir5 | Domaine 25 | Site21 |
-------------------------------------------------------------------

Informations annexes :
- Seuls les 'sites' peuvent être dans les 5 tableaux
- Les directions et les domaines étant spécifiques à chaque table au.
- Je sépare chacun des 5 tableau par une ligne vide (format que je
peux modifier)

3/ Mon objectif :
Trouver une macro capable :
a. de parcourir les 5 tableaux pour les reconstruire 1 par 1 dans une
nouvelle feuille (Feuil2) en reconstruisant les tableaux en mettant
autant de lignes que de cas possibles dans le trio 'Direction +domaine
+ site'


Illustration du résultat attendu en reprenant le [tableau 1] :

{Feuil2} [tableau 1] obtenu à partir de la {Feuil1} [tableau 1] :
------------------------------------------------------------------
Direction | Domaine | Site |
------------------------------------------------------------------
Dir1 | Domaine 1 | Site1 |
Dir1 | Domaine 1 | Site2 |
Dir1 | Domaine 1 | Site3 |
Dir1 | Domaine 1 | Site4 |
Dir1 | Domaine 1 | Site5 |
Dir1 | Domaine 2 | Site2 |
Dir1 | Domaine 2 | Site3 |
Dir1 | Domaine 2 | Site4 |
Dir1 | Domaine 2 | Site5 |
Dir1 | Domaine 2 | Site2 |
Dir1 | Domaine 3 | Site1 |
Dir1 | Domaine 3 | Site2 |
Dir1 | Domaine 3 | Site3 |
Dir1 | Domaine 3 | Site4 |
Dir1 | Domaine 3 | Site5 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
Dir1 | Domaine 4 | Site1 |
-------------------------------------------------------------------


Voila, je bloque sur cette macro depuis un moment donc si quelq'un
voit la lumière, s'il veut bien me guider.
J'espère que mon explication est claire.
Bonne journée à tous & merci par avance aux bonnes âmes.

Mowtors





Avatar
FxM
Bonsoir,

Bonsoir,
Après un rapide coup d'oeil, ca semble idéal !
Chouette !


J'essaie de désosser un peu le code demain pour tacher de comprendre
comment fonctionne la macro.
Un ch'ti résumé en dessous :o)


Grand grand merci.
Bonne soirée & a bientot !
Mowtors


Z'en prie.

@+
FxM




tablo1 et tablo2 vont contenir respectivement les domaines et les sites.

prem1 est l'adresse de la première contenant "Direction"
col est le n° de la colonne
lig est le n° de la ligne

tag1 sert à vérifier que trois cellules cote à cote contiennent
respectivement "Direction", "Domaine" et "Site". OK -> tag1 = TRUE

For boucle = 1 To 5
-> parcourir pour 5 tableaux

derlig est la dernière ligne de la colonne "A" de feuil2

.Cells(lig - 1, col).Resize(3, 3).Copy sht2.Cells(derlig, "A")
recopie les entêtes (3 lignes)

Do Until (.Cells(lig, col)) = ""
...faire jusqu'à une cellule vide

If Mid(.Cells(lig, col), 3, 2) <> "--" Then (snip)
lire le domaine et le site pour remplir les tablo1 et tablo2

dire est le nom de la direction

Ensuite deux boucles imbriquées pour inscrire dans les cellules.

ReDim tablo1(0): ReDim tablo2(0)
efface les données déjà écrites fand les tableaux