lacastille
XLDnaute Nouveau
Bonjour je suis nouveau dans ce forum. j'ai le meme probleme et avec l'aide d'un ami j'ai pu mettre en place une macro de calcul des heures de connections et deconnection des utilisateurs. cependant lors de la compilation,un message d'erreur de synthaxe s'affiche.
je voudrai par le meme occasion inserer le code d'importation d'un groupe de fichier .txt que vous avez publiez mais comment?
voici mon code VBA qui a du mal a s'executer, merci de votre aide
Citation:
Envoyé par lacastille Voir le message
Sub maMacro()
' maMacro Macro
' Macro enregistr
Dim tab1() As String
Dim tab2() As String
Dim i As Integer
Dim J As Integer
Dim K As Integer
Dim L As Integer
Dim tmp1 As Integer
Dim tmp2 As Integer
Dim duree As Integer
Dim total As Integer
Dim appEx As Excel.Application
Dim wbEx As Excel.Workbook 'classeur
Dim wsEx As Excel.Worksheet ' Feuille
' initialisation
total = 0
' ouverture
Set appEx = CreateObject("Excel.Application")
Workbooks.OpenText Filename:="C:\Documents and Settings\stage2\Bureau\Copie de 2009test\04\Ordinateurs\MSa350p3.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Set wbEx = appExcel.ActiveWorkbook
Set wsEx = wbEx.ActiveSheet
'parcours du fichier excel par ligne afin de supprimer les lignes avec un D au debut, C en fin de Fichier, et tous les autes cas
i = 1
While Not Range("L" & i & "").Value = ""
if( Range("L" & i & "").value = "D" and (i mod 2 ) = 0)
Rows(i & ":" & i).Delete xlUp 'suppression de la ligne
End If
if( Range("L" & i & "").value ="C" and (i mod 2 ) <> 0)
Rows(i & ":" & i).Delete xlUp 'suppression de la ligne end if
End If
i = i + 1
Wend
' calcul des heures de connexion
For(j=1 to (i-1))
tab1 = Split(Range("J" $ j $ "").value, ":")
tab2= Split(Range("J" $ (j+1) $ "").value, ":")
tmp1= (val(tab1[0])*3600) + (val(tab1[1])*60) + (val(tab1[0])*60) +val(tab1[2])
tmp2= (val(tab2[0])*3600) + (val(tab2[1])*60) + (val(tab2[0])*60) +val(tab2[2])
duree = temp2 - temp1
If(duree >0)
' conversion du temps au bon format
J = duree Mod 3600
K = duree / 3600
L = J / 60
m = J Mod 60
Range("M" $ (j+1) $ "").value = k & ":" & l ":" & m
End If
Next
' calcul du total de la durée
For(j=1 to i)
If(Range("M" $ j $ "").value <> "" )
total = total + Range("M" $ j $ "").value
End If
Next
' range le total dans la cellule i+1
Range("M" $ i+1 $ "").value = total
'sauvegarde du fichier excel
wbEx.SaveAs Filename = "C:\nomFichier.xls", FileFormat:=xlNormal
End Sub
je voudrai par le meme occasion inserer le code d'importation d'un groupe de fichier .txt que vous avez publiez mais comment?
voici mon code VBA qui a du mal a s'executer, merci de votre aide
Citation:
Envoyé par lacastille Voir le message
Sub maMacro()
' maMacro Macro
' Macro enregistr
Dim tab1() As String
Dim tab2() As String
Dim i As Integer
Dim J As Integer
Dim K As Integer
Dim L As Integer
Dim tmp1 As Integer
Dim tmp2 As Integer
Dim duree As Integer
Dim total As Integer
Dim appEx As Excel.Application
Dim wbEx As Excel.Workbook 'classeur
Dim wsEx As Excel.Worksheet ' Feuille
' initialisation
total = 0
' ouverture
Set appEx = CreateObject("Excel.Application")
Workbooks.OpenText Filename:="C:\Documents and Settings\stage2\Bureau\Copie de 2009test\04\Ordinateurs\MSa350p3.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Set wbEx = appExcel.ActiveWorkbook
Set wsEx = wbEx.ActiveSheet
'parcours du fichier excel par ligne afin de supprimer les lignes avec un D au debut, C en fin de Fichier, et tous les autes cas
i = 1
While Not Range("L" & i & "").Value = ""
if( Range("L" & i & "").value = "D" and (i mod 2 ) = 0)
Rows(i & ":" & i).Delete xlUp 'suppression de la ligne
End If
if( Range("L" & i & "").value ="C" and (i mod 2 ) <> 0)
Rows(i & ":" & i).Delete xlUp 'suppression de la ligne end if
End If
i = i + 1
Wend
' calcul des heures de connexion
For(j=1 to (i-1))
tab1 = Split(Range("J" $ j $ "").value, ":")
tab2= Split(Range("J" $ (j+1) $ "").value, ":")
tmp1= (val(tab1[0])*3600) + (val(tab1[1])*60) + (val(tab1[0])*60) +val(tab1[2])
tmp2= (val(tab2[0])*3600) + (val(tab2[1])*60) + (val(tab2[0])*60) +val(tab2[2])
duree = temp2 - temp1
If(duree >0)
' conversion du temps au bon format
J = duree Mod 3600
K = duree / 3600
L = J / 60
m = J Mod 60
Range("M" $ (j+1) $ "").value = k & ":" & l ":" & m
End If
Next
' calcul du total de la durée
For(j=1 to i)
If(Range("M" $ j $ "").value <> "" )
total = total + Range("M" $ j $ "").value
End If
Next
' range le total dans la cellule i+1
Range("M" $ i+1 $ "").value = total
'sauvegarde du fichier excel
wbEx.SaveAs Filename = "C:\nomFichier.xls", FileFormat:=xlNormal
End Sub