Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1615 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  programmer la periode d'analyse

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programmer la periode d'analyse

n°1242964
sabasm
Posté le 10-11-2005 à 11:19:13  profilanswer
 

Bonjour,
Je fais une analyse statistique, et pour pouvoir faire des reporting mensuel ou annuel… j’aimerais dire à mon programme de commencer cette analyse à une date que j’aurais définie et de s’arrêter à la date que je souhaite…
J’ai jamais utilisé le vb avant je galère un peu…
merci

mood
Publicité
Posté le 10-11-2005 à 11:19:13  profilanswer
 

n°1245826
sabasm
Posté le 15-11-2005 à 10:20:22  profilanswer
 

j'étais peut etre pas claire.
mon tableau est le suivant
date défaut
24.10.05 fonctionnel
24.10.05 fonctionnel
24.10.05 fonctionnel
24.10.05 fonctionnel
24.10.05 assemblage
24.10.05 fonctionnel
24.10.05 fonctionnel
25.10.05 étanchéité
25.10.05 fonctionnel
25.10.05 fonctionnel
25.10.05 fonctionnel
25.10.05 fonctionnel
25.10.05 fonctionnel
26.10.05 fonctionnel
26.10.05 fonctionnel
26.10.05 fonctionnel
26.10.05 assemblage
26.10.05 fonctionnel
27.10.05 assemblage
sur un autre tableau je viens préciser la date de debut et la date de fin d'analyse.
date debut date fin défaut  
24.10.05 26.10.05 assemblage 0
  dimensionnel 0
  esthétique 0
  étanchéité 0
  fonctionnel 0
 
le programme que j'ai mis est le suivant:
 
    Do Until Sheets("Feuil1" ).Cells(i, 13).Date = Cells(3, 24).Date
'cells (i,13) correspond à la date sur mon 1 er tableau et la (3,24)celle de la fin d'analyse que je vais preciser ici..
   
  Do While Cells(i, 13).Date = Cells(3, 23).Date
 'la (3,24) correspont à la date de debut...
    If Cells(i, 16).Text = "assemblage" Then
    Cells(3, 26).Value = Cells(3, 26).Value + Cells(i, 14).Value
    End If
     
     If Cells(i, 16).Text = "dimentionnel" Then
    Cells(4, 26).Value = Cells(4, 26).Value + Cells(i, 14).Value
    End If
      If Cells(i, 16).Text = "esthétique" Then
    Cells(5, 26).Value = Cells(5, 26).Value + Cells(i, 14).Value
    End If
    If Cells(i, 16).Text = "étanchéité" Then
    Cells(6, 26).Value = Cells(6, 26).Value + Cells(i, 14).Value
    End If
    If Cells(i, 16).Text = "fonctionnel" Then
    Cells(7, 26).Value = Cells(7, 26).Value + Cells(i, 14).Value
    End If
   i = i + 1
 
  Loop
 
i = i + 1
 Loop
 
je pense que c'est mon ".date" qui marche pas je sais pas quoi mettre.
merci d'avance.

n°1245835
olivthill
Posté le 15-11-2005 à 10:34:30  profilanswer
 

Au lieu de

Cells(i, 13).Date

utiliser

Cells(i, 13)
ou
 
Cells(i, 13).Value
 
ou encore
 
Format(Cells(i, 13), "yyyymmdd" )

Le formatage ci-dessus permet d'ignorer les heures, minutes, et secondes, qui peuvent être gênantes dans les comparaisons.

n°1245858
sabasm
Posté le 15-11-2005 à 11:12:12  profilanswer
 

merci  
ça marche pas  
y en a aucune qui marcheles 2 premiere j avais deja essayé mais la dernière il me dit erreur de syntaxe

n°1245900
olivthill
Posté le 15-11-2005 à 12:13:57  profilanswer
 

Le formatage ne marche pas si le champ contenant la date n'est pas au format date, ce qui est peut-être le cas.
Un autre problème peut venir de la variable "i" qui ne serait pas initialisée.
Un autre problème peut être causé par l'emplacement des cellules qui se trouveraient sur des feuilles différentes. Dans ce cas, il faudrait peut-être la feuille concéernée non seulement pour i, 1", mais peut-être aussi pour 3,24.
Enfin, sur les lignes où il y a des comparaisons, il faut bien sûr changer les deux membres de la comparaison, et pas uniquement un seul.
 
Je pense que les lignes suivantes ne devraient pas donner d'erreur de syntaxe :

Code :
  1. i = 1
  2. Do Until Sheets("Feuil1" ).Cells(i, 13) = Cells(3, 24)

Et si les dates sont dans des champs dates, les lignes suivantes devraient aussi passer :

Code :
  1. i = 1
  2. Do Until Format(Sheets("Feuil1" ).Cells(i, 13), "yyyymmdd" ) = Format(Cells(3, 24), "yyyymmdd" )

Le problème peut aussi venir de champs nuls. Il faut tester petit bout par petit avec des MsgBox(Cells(3, 24)), MsgBox(Sheets("Feuil1" ).Cells(i, 13)), etc.

n°1245995
sabasm
Posté le 15-11-2005 à 14:06:39  profilanswer
 

si, la variable i est initialisée, et  les dates sont des champs date aussi, et c'est sur la meme feuille mon programme marchait bien avant de rajouter la condition sur les dates!!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  programmer la periode d'analyse

 

Sujets relatifs
Programmer directement sur Pocket PP ???Outil analyse REVERSE C++ ?
[Access] Opérations sur requête analyse croiséeAnalyse d'un fichier XML avec son schéma xsd
programmer en adaCours ou tutorial pour analyse et création base de données
[EJB]programmer un timer dans un EJBquel livre pour programmer en asp?
[C++] Programmer un "moteur de recherche" ?il fo etre matheu pour programmer
Plus de sujets relatifs à : programmer la periode d'analyse


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR