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 :

probleme de date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 268
    Par défaut probleme de date
    Alors si j'ai bien compris et malgré que ça aille dans le sens contraire de ma logique à moi
    pour excel:
    16 fevrier 2007< 26 janvier 2007...

    jusque là tout vas bien

    le probleme c'est que quand je fais des comparaison mano mano dans excel ca va mais en vba il semble rien comprendre

    mon code c'est ça:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    For k = 1 To lignefinc
    For l = 5 To lignefinm
    If Workbooks("carole.xls").Worksheets(2).Cells(k, 22).Value = Workbooks("mouve.xls").Worksheets(1).Cells(l, 8).Value Then
    If Workbooks("mouve.xls").Worksheets(1).Cells(l, 4).Value < Workbooks("carole.xls").Worksheets(1).Cells(k, 8).Value Then
    Workbooks("mouve.xls").Activate
    Worksheets(1).Select
    Workbooks("mouve.xls").Worksheets(1).Rows(l).Copy Destination:=Workbooks("carole.xls").Worksheets(1).Cells(l, 1)
    End If
    End If
    Next
    Next
    le probleme c'est qu'il ne veut pas comprendre dans ce sens là

    il est faux que le 20/03 et le 10/04 sont aprés le 20/03 ( bah jsuis ok pour le 20/03 mais pas pour le 10/04)
    et dans l'autre sens (>)
    il est vrai que le 20/03 et le 10/ 04 sont avant le 20/03

    je veux lui faire dire qu'il se moque de mon 20/03 mais qu'il me copie ( selon mon code) le 10/04

    pouvez vous m'aider et surtout qu'est ce qu'il ne va pas dans mon code???
    merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Déjà, tu devrais regarder , tu as un grand nombre d'exemples de gestion des dates.
    Le pb, c'est que VBA ne reconnaît pas "forcément" une date
    pour comparer deux cellules contenant des dates aux formats "dd/mm/yyyy" et "d/m/yy" par exemple, il faut préciser que les deux sont des dates.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If cdate(Cells(1,1).value) = cdate(Cells(1,2).value then
    Hélas, ça ne fonctionne pas toujours. Si l'une des dates a été collée ainsi dans une cellule Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1,1).value = Now()
    que le format de cellule, dans Excel, est "jj/mm/aaaa", le numéro de série ne sera pas le même que si l'on a placé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1,1).value = Format(Now(), "dd/mm/yyyy"
    Bref, c'est pas simple.
    Dans un cas tu as des décimales, dans l'autre tu n'en as pas.

    Heureusement, il existe une solution qui règle la plupart des pb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If int(cdbl(cdate(Cells(1,1).value))) > Int(cdbl(cdate(Cells(1,2).value)) then
    Si tu es certain de ne pas avoir de décimales, tu peux supprimer Int()
    Quant à ton affirmation 16 fevrier 2007< 26 janvier 2007... Ben oui, par ordre Alpha, c'est vrai. C'est pourquoi, avant de faire un tri, je propose toujours de formater la colonne date en nombre, non en date, le temps du tri
    Tu dis
    A+

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 268
    Par défaut
    Alors c'est peut etre du a mes workbooks et worksheets en tout genre
    masi ça me dis que la propriété ou methode est non gérés par cette objet???

    If Workbooks("mouve.xls").Worksheets(1).Int(CDbl(CDate(Cells(l, 4).Value))) < Workbooks("carole.xls").Worksheets(2).Int(CDbl(CDate(Cells(k, 8).Value))) Then

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ben non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if Int(CDbl(CDate(Workbooks("mouve.xls").Worksheets(1).Cells(l, 4).Value))) < _
    Int(CDbl(CDate(Workbooks("carole.xls").Worksheets(2).Cells(k, 8).Value))) Then
    A+ mais je suis complètement désespéré

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 268
    Par défaut
    Merci
    c'est bon

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

Discussions similaires

  1. problemes de dates SQL PARADOX
    Par igs dans le forum Paradox
    Réponses: 5
    Dernier message: 05/07/2004, 19h35
  2. Problème de date
    Par rh0D'm@n dans le forum Modules
    Réponses: 3
    Dernier message: 11/05/2004, 16h16
  3. Probleme de date
    Par poufouille dans le forum Bases de données
    Réponses: 4
    Dernier message: 19/03/2004, 15h19
  4. probleme de date (toujours et encore des dates)
    Par Yannesco dans le forum SQL
    Réponses: 3
    Dernier message: 02/02/2004, 20h04
  5. Probleme de date
    Par danuz dans le forum XMLRAD
    Réponses: 3
    Dernier message: 24/09/2003, 16h57

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