Rapporter chaque jour un chiffre sur une autre feuille d’un

Bonjour à tous,

Je suis un utilisateur assidu d’Excel (Excel 2003 + Win XP), un concepteur assez moyen, et … un programmateur proche du médiocre.

Mon besoin, serait de rapporter chaque jour un chiffre « mon résultat » depuis une feuille « Feuille données jour », sur une autre feuille d’un même classeur « feuille accumulation en vue graph ».

Assez simple me direz vous !

Oui mais :

Je voudrais :

  • Que cette action ne se fasse que sur mon intervention expresse en cliquant sur un bouton.
  • Que ce bouton ne fonctionne que si :
1. Les jours sont compris entre le Lundi et le Vendredi.

2. Seulement après 17 heures 30’.

3. Qu’il ne soit autorisé qu’une seule fois par jour (1 seul chiffre pour une seule date de toutes façon après 17H30’ le chiffre restera le même jusqu’au lendemain 17h30’.)

  • Qu’il s’inscrive dans une case différente tous les jours et qu’ils se suivent dans la même colonne en sautant une ligne.
  • Je voudrais qu’ils soient liés à la colonne de gauche dans laquelle se trouvera la date du jour afin de servir à la construction d’un graph.
Je joint un tableau pour tenter de mieux m’expliquer.

Bien amicalement.

Bonjour,

Un fichier, oui , mais avec des exemples de données et de résultats souhaités

Cdlt

Bonjour Jean-Eric,

Je viens de rouvrir mon fichier exemple pour revérifier et je ne sais vraiment pas quelles informations rajouter...

Mais bon, je vous remercie de l’intérêt que vous portez à ma demande d'aide et je prends note de votre remarque.

Je ne suis pas très familier des forums, je ne comprends sans doute pas tout, peut être un problème de génération car je suis plus près des 70 ans que des 25.

Bien amicalement.

Bonjour

Les essais ne sont pas faciles à faire à 3h00 du matin

A bien vérifier

Bonjour,

A tester lundi après 1730

J'espère que les commentaires suffiront pour la compréhension.

Cdlt et bon dimanche

Option Explicit
Public Sub Action_journalière()
Dim Wss As Worksheet, Wsd As Worksheet
Dim d As Date, t As Date
Dim Derligne As Long
    ' désactive l'actualisation de l'écran pour accélérer l'exécution du code de votre macro.
    Application.ScreenUpdating = False
    ' date du jour
    d = Date
    ' heure de mise à jour des données.
    t = TimeSerial(17, 30, 0)
    ' si date = samedi ou dimanche, on quitte la procédure.
    If Weekday(d, vbMonday) >= 6 Then
        MsgBox "Vous n'êtes pas autorisé xxxx."
        Exit Sub
    End If
    ' si heure <= à 17H30, on quitte la procédure.
    If Time <= t Then
        MsgBox "Veuillez attendre 17H30."
        Exit Sub
    End If
    ' attribue une référence d'objet aux 2 feuilles
    Set Wss = Worksheets("Feuille données jour")
    Set Wsd = Worksheets("Feuil accumulation en vue graph")
    With Wsd
        ' on détermine la dernière cellule non-vide
        Derligne = .Range("A" & Rows.Count).End(xlUp).Row
        ' si la valeur de Derligne = à la date du jour, on quitte la procédure.
        If .Range(Derligne, "A") = Date Then
            MsgBox "Une mise à jour a déja été effectuée."
            Exit Sub
        End If
        ' on inscrit la date du jour
        .Range(Derligne + 1, "A") = Date
        ' on inscrit la valeur du jour
        .Range(Derligne + 1, "B") = Wss.Range("J31")
    End With
    Set Wss = Nothing: Set Wsd = Nothing
    ' on actualise l'affichage de l'écran.
    Application.ScreenUpdating = True
End Sub
27mulciber-jep-v1.zip (12.36 Ko)

@Banzai64,

Merci de l’intérêt que vous portez à mon Pb.

J'ai changer la date de Win et testé.

Votre programme semble très bien fonctionner sauf que je j'aimerai qu'il nous interdise de cliquer plusieurs fois sur le bouton pour la même date (étourderie toujours possible) et ainsi écrire plusieurs fois le même résultat et la même date ce qui faussera le futur graph utilisant ces données.

Bien amicalement.

Re,

Pris en compte dans ma procédure.

Si date du jour déja notée, on quitte la procédure (pas 2 enregistrements à une même date.

Cdlt

@Jean-Eric,

Merci de ce beau travail.

j'ai changer la date system pour tester.

Il semble qu'il y ai un pb sur la ligne suivante :

' on détermine la dernière cellule non-vide

End If

Merci encore et bon Dimanche vous aussi.

Bien amicalement.

Re,

Bizarre

Je regarde de mon côté mais sans changer la date system

A+

Bonjour

A tester

Re,

Remplaces les .Range par .Cells

Mes excuses le senior

 With Wsd
        ' on détermine la dernière cellule non-vide
        Derligne = .Range("A" & Rows.Count).End(xlUp).Row
        ' si la valeur de Derligne = à la date du jour, on quitte la procédure.
        If .Cells(Derligne, "A") = Date Then
            MsgBox "Une mise à jour a déja été effectuée."
            Exit Sub
        End If
        ' on inscrit la date du jour
        .Cells(Derligne + 1, "A") = Date
        ' on inscrit la valeur du jour
       .Cells(Derligne + 1, "B") = Wss.Range("J31")
    End With
Banzai64 a écrit :

Bonjour

A tester

Merci tout est ok SUPER MERCI

Rechercher des sujets similaires à "rapporter chaque jour chiffre feuille"