Calendrier annuel

Bonsoir,

J'ai de la difficulté à construire un calendrier annuel selon les différentes opérations au courant de l'année et voudrais solliciter votre aide.

Dans la première feuille se trouvent les opérations, les dates et les charges en heures.

Dans la deuxième feuille se trouve le calendrier annuel où je voudrais faire la sommation des charges de travail pour chaque opération selon les mois. Je ne sais pas si c'est assez claire comme demande..

Normalement, je rentre les charges manuellement, mais cela prends beaucoup de temps

Quelqu'un aurait-il (elle) une idée?

Cordialement,

Olivia

Bonjour

j'ais mis un bouton recape

a voir si j'ais bien compris

A+

Maurice

Bonjour olivia-c18,

Voyez si le fichier joint vous convient

Bonjour a tous

avec un TCD

Cdlmnt

Bonjour,

Une nouvelle proposition.

Cdlt.

Bon matin!

Merci beaucoup à vous tous d'avoir pris le temps de m'aider! J'apprécie vraiment!

Bonjour

j'ais mis un bouton recape

a voir si j'ais bien compris

A+

Maurice

Calendrier annuel.xlsm

J'aurais une question qui peut paraître anodin, mais où sont les déclarations des variables? J'essaie de reproduire le même résultat avec ce code, mais sans succès...

Sub testRecap()
Set Sh = Feuil1
Set Sh1 = Feuil4
Sh.Select
Application.ScreenUpdating = False
Nlig = Sh.Cells(Rows.Count, 1).End(xlUp).Row
    For T = 2 To Nlig
        Opert = Range("A" & T)
        Col = Month(Range("B" & T)) + 1
        Charge = Range("C" & T)
            For L = 2 To 19
                If Opert = Sh1.Range("A" & L) Then
                    Sh1.Cells(L, Col).Value = Charge
                    Exit For
                End If
            Next
    Next
Sh1.Select
End Sub

Amicalement,

Olivia

Bonjour

Voila avec les variables

sur Set Sh1 = Feuil4

tu peux mettre Set Sh1 = Feuil2 pour ton fichier

A+

Maurice

Option Explicit

Sub testRecap()
Dim Nlig&, Flig, T&, L&, Col&, Charge&
Dim Opert As String
Dim Sh As Object
Dim Sh1 As Object
' Sheets("Opérations") - sont Codename = Feuil1
Set Sh = Feuil1 ' Feuil1 = Codename
Set Sh1 = Feuil4
Sh.Select
Application.ScreenUpdating = False
Nlig = Sh.Cells(Rows.Count, 1).End(xlUp).Row
Flig = Sh1.Cells(Rows.Count, 1).End(xlUp).Row
    For T = 2 To Nlig
        Opert = Range("A" & T)
        Col = Month(Range("B" & T)) + 1
        Charge = Range("C" & T)
            For L = 2 To Flig
                If Opert = Sh1.Range("A" & L) Then
                    Sh1.Cells(L, Col).Value = Charge
                    Exit For
                End If
            Next
    Next
Sh1.Select
End Sub

Bonjour,

Une nouvelle proposition peu ou prou identique à la précédente (sans ajout de colonne).

Les TCds sont actualisés automatiquement (procédure événementielle).

Maintenant, tu peux nous dire si le total des heures correspond à la valeur 443 ou 557.

(suivant réponse de archer, que je salue. )

Cdlt.

Bonjour

merci a toi Jean-Eric et je te salue aussi

A+

Maurice

Bonjour,

Une nouvelle proposition peu ou prou identique à la précédente (sans ajout de colonne).

Les TCds sont actualisés automatiquement (procédure événementielle).

Maintenant, tu peux nous dire si le total des heures correspond à la valeur 443 ou 557.

(suivant réponse de archer, que je salue. )

Cdlt.

Calendrier annuel.xlsm

Bonjour

Voila avec les variables

sur Set Sh1 = Feuil4

tu peux mettre Set Sh1 = Feuil2 pour ton fichier

A+

Maurice

Option Explicit

Sub testRecap()
Dim Nlig&, Flig, T&, L&, Col&, Charge&
Dim Opert As String
Dim Sh As Object
Dim Sh1 As Object
' Sheets("Opérations") - sont Codename = Feuil1
Set Sh = Feuil1 ' Feuil1 = Codename
Set Sh1 = Feuil4
Sh.Select
Application.ScreenUpdating = False
Nlig = Sh.Cells(Rows.Count, 1).End(xlUp).Row
Flig = Sh1.Cells(Rows.Count, 1).End(xlUp).Row
    For T = 2 To Nlig
        Opert = Range("A" & T)
        Col = Month(Range("B" & T)) + 1
        Charge = Range("C" & T)
            For L = 2 To Flig
                If Opert = Sh1.Range("A" & L) Then
                    Sh1.Cells(L, Col).Value = Charge
                    Exit For
                End If
            Next
    Next
Sh1.Select
End Sub

C'est super! Merci beaucoup!

Le total normalement est bien 557.

Je pense qu'il y a un problème lorsqu'il y a une opération semblable qui se produit dans le même mois.

Cordialement,

Olivia

Re

désoler je suis un peux miro

Voila la modif

A test biensur

A+

Maurice

Sub testRecap()
Dim Nlig&, Flig, T&, L&, Col&, Charge&
Dim Opert As String
Dim Sh As Object
Dim Sh1 As Object
' Sheets("Opérations") - sont Codename = Feuil1
Set Sh = Feuil1 ' Feuil1 = Codename
Set Sh1 = Feuil4
Sh.Select
Application.ScreenUpdating = False
Nlig = Sh.Cells(Rows.Count, 1).End(xlUp).Row
Flig = Sh1.Cells(Rows.Count, 1).End(xlUp).Row
  Sh1.Range("B2:M" & Rows.Count).ClearContents
    For T = 2 To Nlig
        Opert = Range("A" & T)
        Col = Month(Range("B" & T)) + 1
        Charge = Range("C" & T)
            For L = 2 To Flig
                If Opert = Sh1.Range("A" & L) Then
                    Sh1.Cells(L, Col).Value = Sh1.Cells(L, Col).Value + Charge
                    Exit For
                End If
            Next
    Next
Sh1.Select
End Sub

Re

désoler je suis un peux miro

Voila la modif

A test biensur

A+

Maurice

Sub testRecap()
Dim Nlig&, Flig, T&, L&, Col&, Charge&
Dim Opert As String
Dim Sh As Object
Dim Sh1 As Object
' Sheets("Opérations") - sont Codename = Feuil1
Set Sh = Feuil1 ' Feuil1 = Codename
Set Sh1 = Feuil4
Sh.Select
Application.ScreenUpdating = False
Nlig = Sh.Cells(Rows.Count, 1).End(xlUp).Row
Flig = Sh1.Cells(Rows.Count, 1).End(xlUp).Row
  Sh1.Range("B2:M" & Rows.Count).ClearContents
    For T = 2 To Nlig
        Opert = Range("A" & T)
        Col = Month(Range("B" & T)) + 1
        Charge = Range("C" & T)
            For L = 2 To Flig
                If Opert = Sh1.Range("A" & L) Then
                    Sh1.Cells(L, Col).Value = Sh1.Cells(L, Col).Value + Charge
                    Exit For
                End If
            Next
    Next
Sh1.Select
End Sub

Merci!

Olivia

Bonjour Olivia-c18,

pour faire la somme des opérations par mois :

je rajoute une colonne à gauche de la base de données où je concatene les infos que je veux sommer dans la page récap (opération & année & mois),
dans la page récap je positionne en marge de la matrice de récap les données sur lesquelles je vais requêter (année & mois),
puis j'utilise la formule Somme.si() sur l'ensemble du tableau en n'oubliant pas les $ pour ne pas perdre les arguments de ma requête en copiant la formule d'une colonne ou ligne sur l'autre.

Tu pourrais faire encore plus rapidement avec un tableau croisé dynamique, mais j'aime pas les TCD...

PS : utiliser le critère (année & mois) au lieu de (mois) seulement peut te permettre d'afficher un tableau sur plusieurs années (la vie ne s’arrête pas au 31 décembre).

PS 2 : j'ai mis un vérificateur sur le total du tableau récap et la somme de ma page détail pour m'assurer que je n'ai rien oublié...

En espérant que cela te soit utile, bonne journée!

Re,

Que veux-tu dire par là ?

Si on doit comprendre que l'on ne doit pas prendre en compte d'éventuels doublons, cela va compliquer les choses.

Le total normalement est bien 557.

Je pense qu'il y a un problème lorsqu'il y a une opération semblable qui se produit dans le même mois.

Bonjour Olivia-c18,

pour faire la somme des opérations par mois :

je rajoute une colonne à gauche de la base de données où je concatene les infos que je veux sommer dans la page récap (opération & année & mois),
dans la page récap je positionne en marge de la matrice de récap les données sur lesquelles je vais requêter (année & mois),
puis j'utilise la formule Somme.si() sur l'ensemble du tableau en n'oubliant pas les $ pour ne pas perdre les arguments de ma requête en copiant la formule d'une colonne ou ligne sur l'autre.

Tu pourrais faire encore plus rapidement avec un tableau croisé dynamique, mais j'aime pas les TCD...

PS : utiliser le critère (année & mois) au lieu de (mois) seulement peut te permettre d'afficher un tableau sur plusieurs années (la vie ne s’arrête pas au 31 décembre).

PS 2 : j'ai mis un vérificateur sur le total du tableau récap et la somme de ma page détail pour m'assurer que je n'ai rien oublié...

En espérant que cela te soit utile, bonne journée!

Bonjour Pascal,

On est deux alors à ne pas s'entendre avec les TCDs!

C'est sûr que toutes vos solutions contribuent énormement!

Merci encore;

Olivia

Re,

Que veux-tu dire par là ?

Si on doit comprendre que l'on ne doit pas prendre en compte d'éventuels doublons, cela va compliquer les choses.

Le total normalement est bien 557.

Je pense qu'il y a un problème lorsqu'il y a une opération semblable qui se produit dans le même mois.

Rebonjour,

Non, non, les doublons ont leurs importances. hihi!

Je faisais seulement référence au code initiale d'@Archer qui ne prenait pas en compte les doublons..(Mais @Archer l'a modifié)

Olivia

Bonjour

bon une dernier

merci pour les merci

A+

Maurice

Re,

Il est dommage que tu n'aies pas opté pour le TCD car c'est une solution pérenne.

Elle permet aussi d'autres calculs (moyenne, nombre, cumuls, etc...) et de regrouper les données par mois, année, etc...

VBA n'était pas la solution à envisager.

Maintenant, tu es une grande fille.

Cdlt.

Re,

Il est dommage que tu n'aies pas opté pour le TCD car c'est une solution pérenne.

Elle permet aussi d'autres calculs (moyenne, nombre, cumuls, etc...) et de regrouper les données par mois, année, etc...

VBA n'était pas la solution à envisager.

Maintenant, tu es une grande fille.

Cdlt.

Rebonjour,

Mmmh...Il faut que je l'avoue, je me suis perdue quelques fois avec le TCD et mon coeur sensible n'en pouvait plus..Et depuis je l'ai délaissé hihi

Néanmoins, tu as raison. Je l'ai incorporé avec mon fichier et ça marche quand même pas mal bien (parfaitement ).

Merci pour les conseils!

Bonne soirée et à la prochaine fois lorsque je serai confuse,

Olivia

Bonjour

bon une dernier

merci pour les merci

A+

Maurice

Calendrier annuel.xlsm

Bonjour,

Un dernier merci beaucoup alors pour l'aide!

Olivia

Rechercher des sujets similaires à "calendrier annuel"