Tableau Excel avec VBA
mariecaro
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
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, est il possible de le mettre en PJ ? Ce serait 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
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, est il possible de le mettre en PJ ? Ce serait 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
A voir également:
- Tableau Excel avec VBA
- Tableau word - Guide
- Trier un tableau excel - Guide
- Imprimer tableau excel sur une page - Guide
- Liste déroulante excel - Guide
- Tableau ascii - Guide
1 réponse
Bonjour,
pour mettre un fichier en pj suivez ce lien https://www.cjoint.com/
n'oubliez pas de copier/coller le lien cree.
pour mettre un fichier en pj suivez ce lien https://www.cjoint.com/
n'oubliez pas de copier/coller le lien cree.
Voici mon fichier,
il y a une première macro synthèse qui fonctionne très bien.
Je rencontre des difficultés uniquement avec ma macro graphique...
http://cjoint.com/?3FCwr0FF6K2
Merci d'avance !
si c'est résolu, marque-le (en haut vers ton titre)
Merci
eric