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 :

Prendre en compte les retours de formule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2018
    Messages : 40
    Par défaut Prendre en compte les retours de formule
    Bonjour,

    Je désire réaliser une macro qui doit : dés qu'il y a un changement dans la colonne A, me reporter l'heure de ce dernier changement. Mon problème est que j'ai besoin que la macro soit capable de lire le retour d'une formule. En effet, dans ma colonne A, sur toutes les lignes est présent une formule RTD liée à Bloomberg. Cette formule renvoi soit : ON, OFF, 0, 1, , ce qui correspond à un changement de statut d'un produit en continue, mais je ne trouve pas le moyen de faire lire ce renvoi en vba.


    Voici mon code pour le moment ci dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range) 
        If Target.Column = 1 Then 
     
         Target.Offset(0, 1) = Now 
        End If 
     
    End Sud

    Merci d'avance

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Le retour est dans la cellule qui contient la formule...

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    A ma connaissance, Worksheet_Change ne prend en compte que les saisies manuelles, pas les valeurs résultant de fonctions.

    Je ne vois pas de solution simple pour faire ce que tu souhaites.

    On pourrait éventuellement imaginé une fonction qui se lance toutes les X minutes et qui comparent toutes les données scrutées à leurs valeurs précédentes (préalablement stockées), et, si elle trouve une différence, mets à jour la donnée stockée et signale l'heure que tu souhaites.
    Mais ce serait lourd et peu fiable.

  4. #4
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    La valeur résultant d'une formule ne peut changer que lors du calcul,
    Tu pourrais utiliser l'évènement Calculate de la feuille.
    Par exemple :
    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
    Private Sub Worksheet_Calculate()
    Static m As Variant
    Dim t As Variant
    Dim i As Integer
    Dim d As Date
      t = Application.Transpose(Me.Range("A1:A10").Value)
      If IsEmpty(m) Then
        m = t
      Else
        For i = LBound(t) To UBound(t)
          If t(i) <> m(i) Then
            d = Now
            MsgBox d
            Exit For
          End If
        Next i
      End If
    End Sub

Discussions similaires

  1. Prendre en compte les jours fériés VBA
    Par CtrlCmpt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/03/2013, 18h16
  2. [XL-2007] [Formules] Somme.Prod ne pas prendre en compte les celulles en erreur
    Par hardballer dans le forum Excel
    Réponses: 2
    Dernier message: 25/01/2010, 18h20
  3. [RegEx] Prendre en compte les retours à la ligne
    Par Michaël dans le forum Langage
    Réponses: 7
    Dernier message: 03/01/2007, 19h23
  4. [VBA - E]Prendre en compte les lettres majuscules et minuscules
    Par alex_elder1_1 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/12/2006, 15h52
  5. [XSLT] prendre en compte les retours à la ligne
    Par mathieux dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 19/07/2006, 21h05

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