Tableau Excel avec VBA

Bonjour à tous,

Je dois créer une macro permettant de créer un tableau, à partir d'un premier tableau.

Je rencontre quelques difficultés et faute de solution (et de personne pour m'aider!), je me tourne vers ce forum. Je remercie d'avance toutes les personnes qui pourront jeter un coup d'oeil à mon problème !

Sur une première feuille excel appelée "Données", j'ai un tableau :

Il y a trois lignes : métier 1, métier 2, métier 3,

J'ai 5 colonnes correspondant à cinq périodes différentes. dans chacune de ces colonnes figures des durées (par exemple, 4 jours, 2 jour, 1 jours).

Sur une ligne juste au dessus figurent les jours cumulés (en reprenant le premier exemple : 4 jours, 6 jours, 7 jours).

Dans les cases figures des montants.

Dans ma deuxième feuille excel nommée "Final", je veux créer un tableau presque pareil que le premier.

Néanmoins, je souhaiterais avoir une colonne par jour et non une colonne par durée comme c'était le cas précédemment.

De plus, j'aurais aimé que les montants qui figurent dans ma première feuille excel soit divisés par le nombre de jours correspondants.

C'est un peu compliqué je vous l'accorde... J'ai créé mon document avec cet exemple, et dans la page final j'ai tapé manuellement le rendu que je souhaite. Je l'ai ajouté en PJ, ce sera sans doute plus simple pour vous !

J'ai écris une première macro. Je débute vraiment en VBA, et rien ne fonctionne ! Rien ne s'affiche, je ne sais pas du tout comment faire...

Je pense que mon raisonnement est correct, mais je suppose que j'ai dû me tromper dans la formulation...

Voici ma macro :

Public Sub Synthèse()

Dim n As Integer

Dim i As Integer

Dim j As Integer

For n = 2 To 5

'n correspond au nombre de périodes

For j = Sheet("Données").Cells(1, n).Value - Sheet("Données").Cells(2, n).Value + 1 To Sheet("Données").Cells(2, n).Value

'ce qui me donne pour ma première boucle for j=1 To 4,

'pour la seconde colonne : For j=3 To 6 etc... (c'est le T0 de la période)

'j correspond au nombre de colonnes

For i = 3 To 5

'i correspond au nombre de ligne, j'ai 3 postes donc 3 lignes (L3, L4 et L5)

Sheet("Final").Cells(i, j + 1).Value = Sheet("Données").Cells(i + 1, n).Value / Sheet("Données").Cells(2, n).Value

Next i

Next j

Next n

End Sub

Peut être que c'est ma formulation "Sheet("nom de la feuille").Cells(i,j).Value qui est fausse ?

Bref, je suis complètement bloquée pour le moment...

Un grand merci à ceux ou celles qui pourront m'aider !

marie

12synthese-test.xlsm (15.81 Ko)

Bonjour mariecaro et

Voici une solution avec les commentaires dans le code

22synthese-test.xlsm (20.17 Ko)

A+

Bonjour Frangy !

je ne sais comment vous remercier... Vous avez vraiment réalisé un travail formidable je vous suis extrêmement reconnaissante !

je vais lire en détails le code que vous avez rédigé (en espérant que je comprenne !)

merci 1000 fois !!!

Rechercher des sujets similaires à "tableau vba"