Signaler

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

Posez votre question Médéric - Dernière réponse le 6 févr. 2013 à 10:29 par 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 :)


Afficher la suite 
Utile
+1
plus moins
Re,

Une facon de faire:

http://cjoint.com/?CBfr1NbQZaH

A+
Cette réponse vous a-t-elle aidé ?  
Utile
+1
plus moins
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é ?  
Utile
+0
plus moins
Bonjour,

j'aurais besoin d'avoir un calcul (une différence) entre deux colonnes Vous pouvez developper un petit peu!!!!!
Utile
+0
plus moins
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 ?
Utile
+0
plus moins
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.
Utile
+0
plus moins
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 ;)
Utile
+0
plus moins
Personne n'a une idée ? :)
Utile
+0
plus moins
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+
Utile
+0
plus moins
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 :)
Utile
+0
plus moins
Bonjour,

Nickel c'est parfait :)

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

Merci par avance !
Utile
+0
plus moins
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 !
Utile
+0
plus moins
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
Utile
+0
plus moins
Merci pour les explications :D

@ peluche !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !