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 :

Feuille de temps - tableau excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 48
    Par défaut Feuille de temps - tableau excel
    Bonjour à tous,

    Je souhaiterais élaborer une macro sur excel pour une feuille de temps (que je joindrai en PJ si nécessaire).

    La feuille de temps se décompose ainsi : une feuille excel par mois (avec le détail des temps par jour et un total) et une feuille total (regroupant les totaux de chaque mois et le total général pour l'année). L'idée étant de copier la colonne total de chaque feuille mois et de la copier dans la colonne correspondante dans la feuille total.

    J'ai donc pensé à utiliser un tableau pour y copier toutes ces valeurs (je débute en VBA et l'erreur d’exécution 1004 définie par l'objet ou l'application qui est annoncée est loin d'être la seule à mon avis!) :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Public plage As Range
    Sub feuille_temps()
     
    Dim tableau_temps() As Variant
    ReDim tableau_temps(56, 12)
    Dim column_tableau As Integer
     
     
    For Each sheet In ThisWorkbook.Worksheets
     
        If sheet.Name <> "total" Then
     
        sheet.Activate
        Range("AH7:AH52").Select 'plage AH7:AH52 est la plage total d'une feuille mois
        Selection.Copy
        Set plage = Selection
        row_tableau = row_tableau + 1
        column_tableau = column_tableau + 1
        tableau_temps = tableau(sheet, tableau_temps, row_tableau)
     
        End If
     
    Next sheet
     
    Worksheets("total").Activate
    Range("C6").Select
    Range(Selection, Selection.Offset(55, 11)).Value = tableau_temps
     
     
     
    End Sub
     
    Function tableau(sheet, tableau_temps, row_tableau)
     
    tableau_temps(row_tableau, column_tableau) = sheet.Name
     
    For i = 2 To 54
    tableau_temps(row_tableau(i), column_tableau) = "plage"
    Next i
     
    End Function

    Quelqu'un peut-il m'aider à corriger cette erreur 1004 ? Par ailleurs, c'est aussi la première fois que j'utilise un tableau et une sub function, je reste sceptique quant à la syntaxe que j'ai proposé...

    D'avance merci à tous.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Pour ton cas, pourquoi passer par une variable tableau (que tu utilise mal)
    Joins un fichier exemple

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 48
    Par défaut feuilles de temps
    Re bonjour,

    En annexe, ladite feuille de temps (complétée avec des valeurs rapidement).

    En ce qui concerne le tableau, j'ai opté pour cette option car je pensais que ce serait plus rapide ainsi et surtout dans l'espoir d'apprendre à utiliser les tableaux à travers un exemple.
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Si tu avais nommé intelligemment les titres du tableau total, le code serait plus concis.

    Un peux de gymnastique pour transférer les données vers total (le fichier ne doit pas contenir d'autres feuilles hormis les 12 feuilles mensuelles nommées en mois et la feuille total)

    Autre chose, j'ai supposé que les dossiers sont identiques pour chaque mois
    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
    Sub Archivage()
    Dim Sh As Worksheet
    Dim Mois As String
    Dim m As Integer
     
    Application.ScreenUpdating = False
    For Each Sh In ThisWorkbook.Worksheets
        Mois = Sh.Name
        If Mois <> "total" Then
            m = Month(DateValue("01 " & Mois)) - 6
            If m < 3 Then m = m + 12
            Worksheets("total").Cells(7, m).Resize(55, 1).Value = Sh.Range("AH7:AH61").Value
        End If
    Next Sh
    End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 48
    Par défaut Feuille de temps
    Très bien merci.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/01/2015, 19h16
  2. importer un tableau excel dans une autre feuille
    Par mogo107 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/06/2013, 12h11
  3. [XL-2007] Tableau excel > macro pour faire correspondre plusieurs feuilles.
    Par DAVIDSAVOIE dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/02/2012, 16h12
  4. Réponses: 1
    Dernier message: 09/12/2010, 08h43
  5. [VC++6]intégrer un tableau excel
    Par albireo29 dans le forum MFC
    Réponses: 2
    Dernier message: 16/09/2004, 12h44

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