Menu

Macro Calcul Horaires Excel 2010 [Résolu/Fermé]

Médéric - 5 févr. 2013 à 08:31 - Dernière réponse :  Médéric
- 6 févr. 2013 à 10:29
Bonjour à tous,

étant nouveau sur le forum, et n'ayant pas trouvé ce que je cherché, je sollicite donc votre aide.

Sur une feuille j'aurais besoin d'avoir un calcul (une différence) entre deux colonnes (ou il y à des horaires) de façon automatique. (2 colonnes avec plusieurs milliers de lignes)

J'ai pensé à un déclenchement par bouton + macro, ou bien, lancer le calcul à l'ouverture du fichier; mais je ne sais pas comment m'y prendre, et je ne connais pas le VB... seulement des notions lointaines en POO ,C# et C.

j'ai déjà réussi à créer une macro pour importer un fichier dans une seconde feuille de mon classeur principal.

Merci d'avance :)


Afficher la suite 

13 réponses

f894009 12953 Messages postés dimanche 25 novembre 2007Date d'inscription 22 avril 2018 Dernière intervention - 5 févr. 2013 à 18:01
+1
Utile
Re,

Une facon de faire:

http://cjoint.com/?CBfr1NbQZaH

A+
Cette réponse vous a-t-elle aidé ?  
f894009 12953 Messages postés dimanche 25 novembre 2007Date d'inscription 22 avril 2018 Dernière intervention - 6 févr. 2013 à 09:35
+1
Utile
Bonjour,

En effet, j'ai oublie les commentaires:

Private Sub Cmd_calcul_Temp_Appel_Click()
  Dim plage As Range, derligB, Tcol_E
  
  'Fige l'affichage excel
  Application.ScreenUpdating = False
  'Recherche la derniere cellule non vide colonne B
  derligB = Range("B" & Rows.Count).End(xlUp).Row
  'redimmensionne le Tableau au nombre de ligne colonne B -1 (titre)
  ReDim Tcol_E(derligB - 1)
  'Defintion en memoire de la plage de recherche
  Set plage = Range("B2:B" & derligB)
  'Raz index du tableau
  indexT = 0
  'Boucle de recherche: pour chaque objet dans la plage
  For Each cel In plage
    'calcul temps: ecriture dans une "case" du tableau
    Tcol_E(indexT) = Range("D" & cel.Row) - Range("B" & cel.Row)
    'Increment index tableau
    indexT = indexT + 1
  Next cel
  'Ecriture des cellules colonne E avec les valeurs inscritent dans le tabeau
  Range("E2:E" & derligB) = Application.Transpose(Tcol_E)
  'Defige l'affichage excel
  Application.ScreenUpdating = True
  
End Sub


A+
Cette réponse vous a-t-elle aidé ?  
f894009 12953 Messages postés dimanche 25 novembre 2007Date d'inscription 22 avril 2018 Dernière intervention - 5 févr. 2013 à 08:35
0
Utile
Bonjour,

j'aurais besoin d'avoir un calcul (une différence) entre deux colonnes Vous pouvez developper un petit peu!!!!!
joe.satriani 62 Messages postés vendredi 26 octobre 2012Date d'inscription 23 mars 2017 Dernière intervention - 5 févr. 2013 à 08:42
0
Utile
Bonjour Médéric,
je ne suis pas sur de bien saisir ta demande ?
Tu as 2 cellules A1 et B1 avec une date/heure dedans (formatée par exemple de la sorte : "jj/mm/aaaa hh:mm"). Et tu voudrais avoir la différence entre les 2 ? En jour, minute ... ?
Si par exemple tu as dans A1 : 05/02/2013 08:44
Et dans B1 : 05/02/2013 08:43
En mettant la formule C1=A1-B1, et en formatant la cellule C1 en "hh:mm:ss", tu obtiendras la minute de différence : 00:01:00
Est-ce cela que tu recherches ?
0
Utile
merci d'avoir répondu :)

en fait, j'ai deux colonnes extraites d'un ficheir de log, avec un temps d'appel (colonne A: connexion à l'appel et colonne B: déconnexion de l'appel). Le tout sur plusieurs centaines voir milliers de lignes.

Il faut donc que dans une colonne C, je calcul le temps d'appel C1: (=B1-A1) mais répété sur toutes les lignes et de facon automatique par déclenchement d'un event (bouton + macro) ou à l'ouverture du fichier.
0
Utile
Bonjour joe.satriani,

oui c'est cela, sauf que j'ai séparé la date de l'heure; et avoir la différence qu'en minutes ou secondes.

pour enfin automatiser le calcul sur l'ensemble des lignes de la feuille.

Merki ;)
0
Utile
Personne n'a une idée ? :)
f894009 12953 Messages postés dimanche 25 novembre 2007Date d'inscription 22 avril 2018 Dernière intervention - 5 févr. 2013 à 17:13
0
Utile
Bonjour,

Pourriez-vous mettre un echantillon de votre fichier a dispo sur : http://www.cjoint.com/
Parce que : sauf que j'ai séparé la date de l'heure cela fait combien de colonnes en tout ????

A+
0
Utile
re,

voici !

http://www.cjoint.com/confirm.php?cjoint=0BfrCfsqsVk

les colonnes sont dans la feuille test, la colonne E contient ce que je voudrais (manip que j'ai faite à la main et que je voudrais automatiser)

merci bien :)
0
Utile
Bonjour,

Nickel c'est parfait :)

Ayant aucune connaissance en VB, pourrais-tu m'expliquer un peu ton code STP !!

Merci par avance !
0
Utile
Merci :)

Dernière petite question: a la fin de ton code dans cijoint, il y a "Next" alors que dans ton commentaire précédent c'est "Next cel".

Ça change quelque chose, ou pas ?

Thx !
f894009 12953 Messages postés dimanche 25 novembre 2007Date d'inscription 22 avril 2018 Dernière intervention - 6 févr. 2013 à 10:21
0
Utile
Re,

Normalement il faut mettre ex: next cel pour la comprehention, meme si le next tout seul cela marche, ici le code n'est pas tres long donc facile de rerouver le for.

Bye
0
Utile
Merci pour les explications :D

@ peluche !