IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Besoin d'aide Tableau VBA [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Par défaut Besoin d'aide Tableau 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 ! mais je n'ai pas réussi à joindre le doc XL avec la macro :/ (le format .xlsm est refusé).

    J'ai écris une première macro. Je début 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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Fichiers attachés Fichiers attachés

  2. #2
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Par défaut fixation du tableau
    combien de lignes as tu au total
    3 pour les métiers
    1 pour le cumul
    1 pour nombre de jours dans la période

    Est ce bon ?

    D'autre part combien de jours dans une période, ou ces périodes sont elles semblables semaines mois ?

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Par défaut
    Bonjour Nils78,

    Merci beaucoup pour ta réponse,
    Oui tout à fait en fait j'ai 5 lignes :
    la première : cumul des durées
    la seconde : durées
    et trois pour les métiers

    Toutes les durées de périodes ont la même unité (par exemple jours), mais elles sont toutes différentes et surtout susceptibles de varier (d'où ma volonté de faire quelque chose de totalement générique).
    dans ma PJ je les ai écrite en dur mais en réalité elles seront réliées à un autre document.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut
    Salut,

    Je ne peux pas ouvrir ton fichier excel mais pour t'aider jaurai besoin d'avoir un aperçu. Peux-tu faire une copie d'écran de tes 2 feuilles?

    Jean

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Par défaut
    Bonjour Jean,
    Voici les copies d'écran.
    Je te remercie pour ton aide !
    Images attachées Images attachées   

  6. #6
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Par défaut Suite
    Utilise un tableau intermédiaire pour transférer tes données depuis la premère feuille vers la seconde exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim MyTableau (6,6) as Variant
    Sheets("Données").Select
    For i= 1 to 6
       For j = 1 to 6
          MyTableau(i,J) = Cells(J,i)
       Next J
    Next i
     
     
    Sheets("Final").Select
    Ensuite créer tes colonnes au fur et à mesure

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Par défaut
    Merci Nils, mais malheureusement je ne comprends pas du tout l'intérêt et le principe de cette solution... :/

    Je comprends bien comment elle fonctionne (un équivalent de copié collé si je ne fais pas d'erreur), mais pourquoi le faire dans ce cas là ?
    De plus, le nombre de colonne est totalement variable...

    En fait je pense que la logique de ma macro est juste, mais j'ai du oublier des déclarations importantes qui font que rien ne s'affiche quand j'appuie sur F5. Peut être que c'est normal et que je ne connais pas ces commandes permettant d'afficher ce que ma macro fait, mais c'est ça justement ce dont j'ai besoin !

    Merci tout de même pour ton post !

  8. #8
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Par défaut merci !
    En fait j'avais tout simplement oublié des "s" à "sheets" et c'est pour cela que rien ne s'affichait !
    Ma macro ne fonctionne pas parfaitement mais les premières colonnes s'affichent, c'est déjà ça !
    C'est votre message qui m'a permis de prendre conscience de ce problème donc je vous remercie beaucoup !

    Si jamais quelqu'un voit une explication au fait que mes autres colonnes ne s'affichent pas, je suis preneuse !

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut
    Voilà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Public Sub Synthèse()
     
    Dim n As Integer
    Dim i As Integer
    Dim j As Integer
    Dim debut, fin As Integer
     
    debut = 1
    fin = Sheets("Données").Cells(1, 2)
    For n = 2 To 5
    'n correspond au nombre de périodes
        For j = debut To fin
            Sheets("Final").Cells(2, j + 1).Value = j
            For i = 3 To 5
                Sheets("Final").Cells(i, 1).Value = Sheets("Données").Cells(i, 1).Value
                Sheets("Final").Cells(i, j + 1).Value = Sheets("Données").Cells(i, n).Value / Sheets("Données").Cells(2, n).Value
            Next i
        Next j
        debut = j
        fin = Sheets("Données").Cells(1, n + 1)
    Next n
     
    End Sub

  10. #10
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Par défaut merci !
    Super merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Besoin d'aide Tableau
    Par laurentny dans le forum Excel
    Réponses: 3
    Dernier message: 05/05/2010, 16h50
  2. besoin d'aide sur VBA d'excel
    Par taraud dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/03/2010, 15h25
  3. [Tableaux] besoin d'aide tableau multidimensionnel
    Par nevax dans le forum Langage
    Réponses: 3
    Dernier message: 25/03/2008, 13h19
  4. Besoin d'aide en vba
    Par Grechtouille dans le forum VB.NET
    Réponses: 1
    Dernier message: 07/02/2007, 11h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo