XL 2010 VB - Avoir le nombre de personne "en ligne" durant chaque minute

Abef

XLDnaute Nouveau
Bonjour tout le monde,

Je voudrais construire un graphe, précis à la minute, qui nous affiche le nombre de toutes les personnes en ligne (ordonnée) en fonction de chaque minute de la journée (abscisses).

Mes INPUTS

Login || Connexion_Date || Connexion_Duration

10:17:22 AM || 01/08/2016 || 0:31:58

11:29:43 AM || 01/08/2016 || 0:06:36

2:15:02 PM || 01/08/201 || 00:02:09

4:52:59 PM || 01/08/2016 || 01:12:09

10:22:54 AM || 02/08/2016 || 00:52:09


L'idée serait de créer une table contenant toutes les secondes d'une journée 3600 *24 lignes/jour, durant 5ans, ainsi qu'une variables à incrémenter (Nbr_connexion_courante), mon idée semble lourde sans utilisation d'une arbre ou d'une méthode itérative.

En éspèrant que quelqu'un ait rencontrer ce problème
 
Dernière édition:

sousou

XLDnaute Barbatruc
Bonsoir.
Ta solution me semble usine à gaz!
Tu pourrais peut-être prendre le problème dans un autre sens:
Tu disposes de la table de tes connexions.
Je suppose que tu veux visualiser sur un laps de temps défini (1h,un jour) mes pas sur cinq ans au même moment?
Dans ce cas tu fabriques le tableau servant à faire le graphe en fonction de la date et du laps de temps que tu veux visualiser
exemple: Tu veux visualiser les connexions pour le 1 janvier durant 5h.
Là tu fabriques une tableau de 60(mn)*5 (h) et tu regardes les connexions dans cette plage pour réaliser le graphe
Je pense que c'est faisable
 

sousou

XLDnaute Barbatruc
Avant tout regarde le fichier joint.
Je ne traite pas ni du graphe, ni du nombre de connexion à ce stade, mais de la période à examiner et de l'intervalle de temps à gérer
 

Pièces jointes

  • courbes.xlsm
    27.9 KB · Affichages: 97

sousou

XLDnaute Barbatruc
Bonjour
N'ayant pas bien compris ton histoire de graphe, je me suis appuyé sur le tableau xy j/heure
n'ayant pas ton fichier excel, j'ai continué ma proposition en générant un tableau tel que présenté qui compte les connexions
A suivre
 

Pièces jointes

  • courbes.xlsm
    42.6 KB · Affichages: 99

Abef

XLDnaute Nouveau
Bonjour,

Tu sembles avoir très bien compris mon problème. Pour plus d'informations, voilà mes inputs :
http://hpics.li/798a923
Lien supprimé

Et ci-dessous la table calendrier dont j'essaie d'incrémenter les variables selon la date de connexion (pour septembre)
http://hpics.li/3b5baa3
Lien supprimé

Et mon code ressemble à ça :
VB:
Sub Bouton1_Cliquer()
  Application.ScreenUpdating = False

  
   Dim wbTarget As Workbook 'workbook where the data is to be pasted
   Dim wbSource As Workbook 'workbook from where the data is to be copied
 
   Dim CDRDate As Date
   Dim CDRTime As Date
   Dim CDREnd As Date
   Dim Time As Date
   Dim findDay As Date
   Dim Var As Integer
   Dim Vari As String
   
    Set wbTarget = ThisWorkbook 'assigne ThisWorkBook(Ouvert) à la variable wbTarget déclarer en temps que fichier excel
    Set wbSource = Workbooks.Open("C:\Users\alibe\Desktop\Nouveau dossier (6)\Classeur1.xlsx") 'Open

   
  wbSource.Worksheets("Feuil1").Range(Range("A2"), Range("A2").End(xlDown)).Select 'selection of columns A2 'til end of line
  CDRTime = ActiveCell.Value

  wbSource.Worksheets("Feuil1").Range(Range("B2"), Range("B2").End(xlDown)).Select
  GetDate = ActiveCell.Value
 
  wbSource.Worksheets("Feuil1").Range(Range("C2"), Range("C2").End(xlDown)).Select
  CDREnd = ActiveCell.Value

  wbTarget.Worksheets("Counting").Range("B2:BJ2").Select
  findDay = ActiveCell.Value
  wbTarget.Worksheets("Counting").Range(Range("A3"), Range("A3").End(xlDown)).Select
  Time = ActiveCell.Value

    ActiveSheet.Range(Cells(3, 2), Cells(75602, 32)).Select
    Vari = ActiveCell.Value

   
If Day(GetDate) = Day(findDay) Then
        If Time >= CDRTime And Time <= CDREnd Then Var = Var + 1
End If
 
 
 
  Application.Scree

La condition "If Day(GetDate) = Day(findDay) Then" ne semble pas suffisante pour sélectionner la colonne correspondante à la date de connexion avant d'incrémenter les variables. Merci pour ton temps
 

Abef

XLDnaute Nouveau
Ton code est d'une intelligence frappante !
Malheureusement je n'ai jamais pris de cours de VB, je n'ai pas trop de facilité pour tout saisir.
Dans le userForm, je ne vois pas de champs pour renseigner la date, dois-je renseigner la date de départ ainsi que celle de fin au niveau du Label5_Click() ?
Puis-je renseigner l'heure sous le format : 01:30:00 PM - 02:00:00 PM ?
Je ne comprends pas le rôle du label intervalle_Click (en bas a droite du UserForm) ?
Merci infiniment !
 

Abef

XLDnaute Nouveau
D'ailleurs, lorsque j'appuie sur "Essaie", ça commence par l'erreur (projet ou bibliothèque introuvable) sur la line : inter = Array("Heure", "Minute", "Seconde") ce qui paraît logique. Puis-je plutôt faire en sorte que le UserForm s'affiche au niveau d'excel ou bien est-ce une incompréhension de ma part? Je te prie de m'excuser pour ttes ces questions
 

sousou

XLDnaute Barbatruc
Dans le fichier joint la date est fournit par un objet 'monthview'.(calendrier)
L'erreur bibliothèque introuvable montre que tu n'as pas cet objet installé.
1: Tus vas dans développeur/visualbasic
tu sélectionnes userform1
tu choisis boite à outils
tu regardes les controles disponibles
tu fait click droit controle supplémentaire et là tu ajoutes monthview (si existe)
Si non tu cherche un controle comme calendar ou autre.
et tu remplaces mes calendriers par les tiens en les nommant datedeb et datefin.
Tu peu aussi remplacer c'est deux éléments par des textbox (datedeb et datefin)dans lesquels tu saisiras la date
dis moi de quel objet tu disposes.
Regardes les quelques explications jointes
 

Pièces jointes

  • courbes.xlsm
    48.3 KB · Affichages: 85
Dernière édition:

Abef

XLDnaute Nouveau
Au final, c'est une précision à la minute qu'y est demandé, j'avais dans l'idée de proposer des outputs comme ci-dessous.
http://hpics.li/8d1f920
Lien supprimé
L'un des contrôles suivant peut-il faire office de calendrier ? Microsoft Outlook Time Controle, Microsoft Outlook Time View Controle, Microsoft Outlook View Controle
Encore merci

"Pour chaque objet
on prend le jour et l'heure de la connexion" possibilité de prendre la seconde aussi ? Ca me semblait nécessaire pour avoir une précision à la minute pour pallier au problème des appels qui durent moins d'une minute ou qui s’étalent sur plusieurs heures?
 

Pièces jointes

  • upload_2016-10-20_14-16-43.png
    upload_2016-10-20_14-16-43.png
    49.4 KB · Affichages: 102

sousou

XLDnaute Barbatruc
Non tes controles ne sont pas des calendriers regarde si tu as 'calendar'
en attendant que tu trouves un calendrier j'ai remplacé les calendriers par des textbox
Fichier joint gère la durée,
J'ai ajouté des boutons en exemple pour te montrer la saisie du userform
 

Pièces jointes

  • courbes2.xlsm
    52.7 KB · Affichages: 91

Statistiques des forums

Discussions
314 708
Messages
2 112 100
Membres
111 417
dernier inscrit
LYTH