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 :

Mise-à-jour de la date et de l'heure lorsque des cellules comprenant des formules sont recalculées


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Novembre 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2021
    Messages : 3
    Par défaut Mise-à-jour de la date et de l'heure lorsque des cellules comprenant des formules sont recalculées
    Bonjour,

    Après multiples recherches et essaies, je n'ai pas réussi à créer un code VBA fonctionnant adéquatement. C'est pourquoi je sollicite votre aide.

    Voici mon souhait (Je me réfère au tableau ci-joint):

    Dès le moment où l'une des cellules comprise dans la plage "B4:G10" est recalculé et affiche une nouvelle information, j'aimerais que la date et l'heure de ce recalcul soit mise-à-jour dans la cellule "A2".

    Voici quelques paramètres importants:

    - Les cellules "B4:G10" contiennent des formules
    - La feuille est verrouillé en entier.
    - La date et l'heure doivent être mise-à-jour dès le recalcul et seulement lors du recalcul.

    Voici ce que j'ai fait jusqu'à maintenant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B4:G10")) Is Nothing Then
     
        ActiveSheet.Unprotect ("123abc")
        Range("A2").Value = Now
        ActiveSheet.Protect ("123abc")
     
    End If
    End Sub
    Plusieurs variations ont également été essayées sans succès

    Merci pour votre support !
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Si la plage B4:G10 contient des formules, ce n'est pas "Not Intersect(Target, Range("B4:G10")) Is Nothing" qu'il faut donc surveiller, mais plutôt la plage de valeurs dont dépendent les formules.

    Sinon utilisez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_Calculate()
    Cdlt

  3. #3
    Candidat au Club
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Novembre 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2021
    Messages : 3
    Par défaut
    Bonjour Arturo83,

    Merci pour cette piste de solution. Celle-ci m'a amener à revoir l'ensemble de la macro donc le résultat fonctionne tel que souhaité.

    Voici le nouveau code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_Calculate()
    Application.EnableEvents = False
    Dim Statistiques As Range
    Set Statistiques = Range("B4:G10")
    If Not Intersect(Statistiques, Range("B4:G10")) Is Nothing Then
        ActiveSheet.Unprotect ("123abc")
        Range("A2").Value = Now
        ActiveSheet.Protect ("123abc")
    End If
    Application.EnableEvents = True
    End Sub
    Étant débutant et en apprentissage, je suis ouvert a toutes critiques, commentaires ou autres suggestions à l'égard de cette macro.

    PS Je cherche la bonne façon de citer un code tel que corrigé dans mon premier message.

    Merci !

  4. #4
    Candidat au Club
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Novembre 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2021
    Messages : 3
    Par défaut
    Bonjour,

    Après avoir appliqué la solution trouvé, j'ai utilisé la même base de macro de sorte que la date et l'heure de modification d'une autre plage de cellules s'affiche également dans une autre cellule.

    Bien que tout ceci fonctionne bien, je vie toutefois une problématique.

    Dès que qu'un changement survient dans l'une ou l'autre des plages couverte par mes deux macros, la date et l'heure change partout. Un peu comme si le résultat des deux macro était fusionné.

    Avez-vous une solution afin que les deux macros et leurs cellules soient indépendante l'une de l'autre ?

    Merci !

  5. #5
    Membre chevronné
    Homme Profil pro
    Formateur bureautique
    Inscrit en
    Janvier 2021
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2021
    Messages : 302
    Par défaut Aide
    Bonjour
    dans le fichier ci joint, j'ai nommé 2 plages et 2 cellules

    si l'on modifie une info dans la plage jaune, cela met l'info dans la cellule jaune prévue à cet effet
    si c'est dans la verte, cela reporte le "now" dans la cellule verte

    ce sera à adapter à votre besoin mais l'idée est là
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Mise à jour de la date et de l'heure automatique
    Par ciols dans le forum Mobiles
    Réponses: 0
    Dernier message: 15/04/2016, 16h39
  2. [MySQL] mise à jour d'une date dans une table
    Par jophp dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/10/2006, 21h48
  3. Réponses: 4
    Dernier message: 25/04/2006, 20h41
  4. Mise à jour auto champs date
    Par rodrigue50 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/07/2005, 18h03
  5. Pb de mise à jour d'une date
    Par valerie90 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/09/2004, 15h11

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