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

Signaler
-
 Médéric -
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 :)


13 réponses

Messages postés
15433
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 novembre 2020
1 414
Re,

Une facon de faire:

https://www.cjoint.com/c/CBfr1NbQZaH

A+
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
15433
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 novembre 2020
1 414
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+
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
15433
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 novembre 2020
1 414
Bonjour,

j'aurais besoin d'avoir un calcul (une différence) entre deux colonnes Vous pouvez developper un petit peu!!!!!
Messages postés
105
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
27 octobre 2020
6
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 ?
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.
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 ;)
Personne n'a une idée ? :)
Messages postés
15433
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 novembre 2020
1 414
Bonjour,

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

A+
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 :)
Bonjour,

Nickel c'est parfait :)

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

Merci par avance !
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 !
Messages postés
15433
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 novembre 2020
1 414
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
Merci pour les explications :D

@ peluche !