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 :

manipulation de dates


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut manipulation de dates
    Bonjour,

    je souhaite créer un premier tableau en recopiant des dates.
    Ensuite je veux utiliser ces dates pour afficher un graphique

    Or, lors de l'execution de ma macro ces dates son converties en "texte". Il ne m'ai pas possible d'en calculer le min, le max et de les manipuler en tant que nombre.

    Les dates manipulées "redeviennent" des "dates" lorsque je clique sur chacune des cellules.

    comment faire, pour "actualiser" automatiquement les cellules?

    ci-joint mon fichier

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonjour,

    Lors de l'execution de ma macro ces dates son converties en "texte".
    Un extrait de code aiderait à comprendre.
    Mais il probable que le problème vienne du fait que les dates ne sont pas stockées dans des variables typées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Dim d As Date
      d = [A1].Value 'stocke une date
    je souhaite créer un premier tableau en recopiant des dates.
    Ensuite je veux utiliser ces dates pour afficher un graphique
    comment faire, pour "actualiser" automatiquement les cellules?
    Si le graphique doit se mettre à jour avec les cellules d'origines, le mieux est de faire référence aux cellules [A14].Formula="=A1",
    plutôt que copier la valeur [A14].value= [A1].value .

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut
    Bonsoir,

    je viens d'ajouter le fichier exemple (je l'avais oublié).
    J'abais déjà essayé de stocker les variables sous forme de dates. Mais probablement d'une mauvaise façon.

    Avec les fichier exemple il sera plus facile de comprendre ma problématique.

    merci

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Essayer de remplacer la copie des données du tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim rng1()
    ReDim rng1(2, 0)
    For Each cel In Range("B4:B" & Range("B3").End(xlDown).Row)
      If Rows(cel.Row).Hidden = False Then
         rng1(0, UBound(rng1, 2)) = cel.Value
         rng1(1, UBound(rng1, 2)) = cel.Offset(0, 2).Value
         rng1(2, UBound(rng1, 2)) = cel.Offset(0, 5).Value
         ReDim Preserve rng1(2, UBound(rng1, 2) + 1)
      End If
    Next
    Range("B30").Resize(UBound(rng1, 2), UBound(rng1, 1) + 1) = Application.Transpose(rng1)
    par ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    '''''''''' copie du tableau de variable
    Dim copieIndex As Integer
    copieIndex = 0
    For Each cel In Range("B4:B" & Range("B3").End(xlDown).Row)
      If Rows(cel.Row).Hidden = False Then
         With Range("B30")
            .Offset(copieIndex).Value = cel.Value
            .Offset(copieIndex, 1).Value = cel.Offset(0, 2).Value
            .Offset(copieIndex, 2).Value = cel.Offset(0, 5).Value
         End With
         copieIndex = copieIndex + 1
      End If
    Next
    P.S : Un extrait de code, avec une présentation des données suffit généralement à comprendre le problème. (voir Fichier joint dans vos discussions

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut
    Merci beaucoup pour l'aide. La réponse résout mon problème.

    Je tacherai dorénavant de formuler mes problèmes en recopiant directement le code.

    Bonne soirée

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

Discussions similaires

  1. Manipulations de dates et heures
    Par benj63 dans le forum C++
    Réponses: 5
    Dernier message: 16/12/2004, 15h09
  2. [JDBC] manipulation des dates/heures en Java
    Par kurkLord dans le forum JDBC
    Réponses: 6
    Dernier message: 09/08/2004, 12h49
  3. Manipulations des Dates
    Par kurtc dans le forum Langage SQL
    Réponses: 11
    Dernier message: 13/04/2004, 14h39
  4. [IB6][BCB5]Manipulation des dates.
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 09/04/2004, 15h33
  5. Manipuler des dates...
    Par Ti Jen-tsie dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2003, 11h46

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