Redimensionnement de tableau - VBA

Bonjour à tous, URGENT!

Je souhaite redimensionner un tableau dynamique existant, et fixé à 30 lignes dans la feuille "Modèle" : c'est une feuille modèle générée automatiquement à partir de la feuille office en cliquant sur le bouton "Création onglets", à partir de deux variables X et Y, qui définissent le nombre de lignes et colonnes:

1. les nombres de lignes sont variables

2. les nombres de colonnes sont fixées :

a. de B13 à AN13, soit 39 colonnes, si le mois en cours est de 31 jours,

b. de B13 à AN12, soit 38 colonnes, si le mois en cours est de 30 jours,

c. de B13 à AN11, soit 37 colonnes, si le mois en cours est de 29 jours,

d. de B13 à AN10, soit 36 colonnes, si le mois en cours est de 28 jours,

3. La formule existante dans ce tableau =IFERROR(INDEX(Tabel1[Equipment];SMALL(IF(Tabel1[Lines]=$D$8;ROW(Tabel1[Equipment])-7);ROWS($1:1));1);"") elle répète les valeurs demandées.

image

Normalement le tableau doit :

- Le mois encours commence du 15eme du mois au 14eme jour du mois suivant: ex, du 15 Août au 14 Septembre 2024; 15 Février au 14 Mars 2025.

- Chaque Equipment doit apparaitre une seule fois durant tous le mois si a le même numéro de WO NO, par contre si l'Equipment change son numéro WO NO doit avoir une nouvelle ligne séparée.

- Les Equipment apparaitront dans le tableau selon les dates de travail de Haut vers le bas comme exemple dans le tableau ci-dessous

image

Cordialement

El Hacen

Bonjour

Sur un forum l’urgence n'existe pas : nous sommes tous bénévoles...

J'espère que tu n'as pas trop d'onglets car ce type de formules sur un grand nombre d'onglets va ramer, ce sans doute pourquoi tu l'as mis en calcul manuel...

Il conviendrait aussi de gérer les noms des tableaux structurés car

Table4678910111213144151617181920212223

est ingérable

Il faut privilégier les noms signifiants

Bonjour 78chris;

Désolé, le nom de la table est T_Model fait référence à Table4678910111213144151617181920212223

Note:

Ajouter ou supprimer ou corriger tous que vous voyez inutile

cordialement

El Hacen

RE

Il ne fait pas créer un alias mais modifier le nom du tableau

Le souci depuis le début des tes fils c'est que tu es parti sur une "solution" sans expression claire du besoin opérationnel.

Or j'ai l'impression que tu ne pars pas sur la bonne solution mais comme on n'a ni les tenants, ni les aboutissants, les problèmes apparaissent au fur et à mesure...

Je vois que tu as posté ailleurs : conformément à la charte de ce forum tu dois clore l'un ou l'autre des fils.

Bonjour,

Je vais clôturer l'autre et on continue sur ce sujet

Merci

El Hacen

Bonjour 78chris,

Aide moi, je n'arrive pas à fermer les autres sujets, s'il vous plaît il y a un moyen de m'aider à fermer les?

Cordialement

El Hacen

RE

Comme déjà dit il faudrait expliquer ton process opérationnel : tu gères quoi exactement, comment, pourquoi...

Pour comprendre le besoin et non partir sur TA solution qui a mon avis risque fort de ne pas marcher avec moult onglets remplies de ce type de formules

En plus si on regarde l'historique de tes fils on vois des TCD et requête PowerQuery qui ont disparu ( a priori tu n'en voulais pas)

Bonjour Chris,

D'abord, je comprend pas trop le français, si vous voulez qu'est ce que je veux? je vais essayer de résumer tous comme suit:

Notez bien que

- Tous mes liens entres les feuilles sont basés sur LA COLONNE H DE LA FEUILLE TIMESHEET RECORD = Lines

- Vous pouvez changer, supprimer ou modfier toutes les fonctions Excel ou code VBA dans ce ficheir.

- Je veux que les fonctions Excel ou code VBA

- J'aimerai bien avoir ce ficher marche avant le 14 Septembtre S'IL VOUS PLAIT.

Alors, mon fichier contient 5 feuilles:

1. La feuille Timesheet Record: c'est une feuille qui sera rempli journalièrement, selon les travails de mes engins, cette feuille contient un tableau de B à S,

- Les colonnes C, E, G, P, Q, R et S sont générés par des formules.

- Les colonnes B, D, F, H, I, J, K, L, M, N et O à remplir chaque jours

2. La feuille Modèle, contient un tableau fixe, c'est une feuille modèle générée automatiquement à partir de la feuille office en cliquant sur le bouton "Création onglets"

Je souhaite redimensionner le tableau existant à un tableau dynamique a deux variables X et Y, qui définissent le nombre de lignes et colonnes:

1. les nombres de lignes sont variables

2. les nombres de colonnes sont fixées :

a. de B13 à AN13, soit 39 colonnes, si le mois en cours est de 31 jours,

b. de B13 à AN12, soit 38 colonnes, si le mois en cours est de 30 jours,

c. de B13 à AN11, soit 37 colonnes, si le mois en cours est de 29 jours,

d. de B13 à AN10, soit 36 colonnes, si le mois en cours est de 28 jours,

3. La formule existante dans ce tableau =IFERROR(INDEX(Tabel1[Equipment];SMALL(IF(Tabel1[Lines]=$D$8;ROW(Tabel1[Equipment])-7);ROWS($1:1));1);"") elle répète les valeurs demandées.

image

Normalement le tableau doit :

- Le mois encours commence du 15eme du mois au 14eme jour du mois suivant: ex, du 15 Août au 14 Septembre 2024; 15 Février au 14 Mars 2025.

- Chaque Equipment doit apparaitre une seule fois durant tous le mois si a le même numéro de WO NO, par contre si l'Equipment change son numéro WO NO doit avoir une nouvelle ligne séparée.

- Les Equipment apparaitront dans le tableau selon les dates de travail de Haut vers le bas comme exemple dans le tableau ci-dessous

image

3. La feuille Invoice, contient deux tableaux, le premier tableau (Indirect Cost - Fixed Monthly Lump Sum As Per Contract) ses valeurs sont fixe et inchangeable, le deuxieme tableau (Equipment with Operator (Dry Rental)), ce tableau contient 7 colonnes de B à H, et ce tableau doit avoir nombres de lignes identique a la liste des ongles definit dans la feuille Office:

- La colonne C = Lines ses valeurs sont identiques à la liste des lines dans la feuille Office,

- La colonnes D = Description, ses valeurs sont générés automatique de la nouvelle feuille modele créer elle se renomme automatiquement à partir de la liste Lines dans la feuille Office: Line #01, Line #02, Line #03, .... cette discription change selon le nom de la feuille créer.

- La colonne E = Total Equipment Hours (All Types), meme chose que dans la colonne D, elle retourne la totalité des heures travailles dans cette feuille soit =Total Hrs dans la colonne AL de la feuille modele.

- La colonne G = Work Order No, meme chose que dans les cas precedentes , mais cette fois on dois concatiner le nombres de tous les numeros "WO No" dans la colonne F de la feuille modele.
- La colonne H = TOTAL MRU, meme chose que dans les cas precedentes, elle retourne la somme total de la feuille modele = soit Total Cost (MRU) dans la colonne AN de la feuille modele.

4. La feuille Office: a deux roles

- la liste Lines est généré automatiques de la colonne H dans la feuille Timesheet Record, cette liste doit être trier et de valeur unique.

- Si on obtient cette liste on doit avoir un code VBA pour génerer automatique de creation des onglets à partir de la feuille modele.

Cordialement

El Hacen

Rechercher des sujets similaires à "redimensionnement tableau vba"