Si tu veux les renommer et les déplacer, tu n'as pas à ouvrir chacun des fichiers.
Explique le traitement que tu dois faire subir à chacun des fichiers lorsque tu l'ouvres.
Et lorsque la macro s'arrête, quelle est la ligne de code fautive ?
Quel est le nom du fichier ?
As-tu ouvert ce fichier pour savoir s'il était différent des autres fichiers traités ?
Est-ce qu'il est possible de voir ce fichier, tu peux le publier en utilisant une de ces
2 adresses cijoint.fr ou cjoint.com Tu publies ici l'adresse que tu aura obtenu.
Combien de fichiers ont été traité avant l'arrêt de la procédure ?
MichD
"MAGUITE" a écrit dans le message de groupe de discussion : *** Adresse électronique supprimée pour cause de confidentialité ***...
Bonjour MichD
Merci pour ta réponse...
Cependant le contenu de la macro est plus complexe et traite plusieurs fichiers textes qui protent tous le même nom d'origine (20100101.txt) chacun dans un répertoire diférent bien sur.
Le but est de les renommer afin de les déposer sur serveur il contiennent des données météo avec séparateur (;).
Jusqu'à présent la macro fonctionnait correctement sous office 2007, mais avec office 2003 ce bug apparait...
*Sources**Cibles**Journalier = J
Horaire = H*C:\TRANSFERT\Agrotech-H\09153-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\09153-HC.txtHC:\TRANSFERT\Agrotech-H\12043-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\12043-HV.txtHC:\TRANSFERT\Agrotech-H\12056-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\12056-HON.txtHC:\TRANSFERT\Agrotech-H\12064-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\12064-HC.txtHC:\TRANSFERT\Agrotech-H\13154-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\13154-HG.txtHC:\TRANSFERT\Agrotech-H\31053-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\31053-HAC.txtHC:\TRANSFERT\Agrotech-H\31059-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\31059-HAP.txtHC:\TRANSFERT\Agrotech-H\31211-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\31211-HG.txtHC:\TRANSFERT\Agrotech-H\31212-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\31212-HC.txtHC:\TRANSFERT\Agrotech-H\31592-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\31592-HT.txtHC:\TRANSFERT\Agrotech-H\31597-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\31597-HG.txtHC:\TRANSFERT\Agrotech-H\12062-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\12062-HON.txtHC:\TRANSFERT\Agrotech-H\31593-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\31593-HVB.txtHC:\TRANSFERT\Agrotech-H\32260-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\32260-HCE.txtHC:\TRANSFERT\Agrotech-H\32261-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\32261-HLH.txtHC:\TRANSFERT\Agrotech-H\32262-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\32262-HBE.txtHC:\TRANSFERT\Agrotech-H\31040-H\20100101.txtC:\TRANSFERT\Agrotech-H\Justagro\31040-HAR.txtH
(Macro complète)
Sub Traitement()
'Déclaration des variables
Dim CelluleEC As Range
Dim WsSource As Variant
Dim WsCible As Variant
Dim WsJourHeure As Boolean
Dim ConstSelect As String
Dim NbLigneJour As Integer
Dim NbLigneHeure As Integer
Dim x As Integer
'Déclaration des constantes
NbLigneJour = 15
NbLigneHeure = 96
Reponse = False
If Traitmanu = False Then
'Appel du timer
CestLaPause
End If
Windows("Gestion_fichiers_agrotech-H.xls").Activate
Sheets("Instructions").Select
If Reponse = True Then
Sheets("Feuille de paramétrage").Select
Exit Sub
End If
'Boucle sur les 299 premières lignes
For x = 2 To 300
Sheets("Feuille de paramétrage").Select
If Cells(x, 1) = "" Then Exit For
'Remplissage des variables
WsSource = Cells(x, 1)
WsCible = Cells(x, 2)
If Cells(x, 3) = "J" Then WsJourHeure = True Else WsJourHeure = False
'Appel de la mise à zéro de la feuille tempo
'RazTempo
'Ouverture du fichier source + copie
Workbooks.OpenText Filename:=WsSource, Origin:=932, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=False
Selection.End(xlDown).Select
Application.CutCopyMode = False
If WsJourHeure = True Then
ConstSelect = "A2:A" & Application.ActiveCell.Row - NbLigneJour
Else
ConstSelect = "A2:A" & Application.ActiveCell.Row - NbLigneHeure
End If
Range(ConstSelect).Select
Selection.EntireRow.Delete
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=WsCible, FileFormat:= _
xlText, CreateBackup:=False
ActiveWorkbook.Close
Application.DisplayAlerts = True
Windows("Gestion_fichiers_agrotech-H.xls").Activate
Next
Sheets("Instructions").Select
If Traitmanu = False Then
Application.Quit
End If
End Sub
Sub CestLaPause()
Dim PauseTime, Start, Finish, TotalTime
PauseTime = 5 ' Définit la durée.
Start = Timer ' Définit l'heure de début.
Do While Timer < Start + PauseTime
DoEvents ' Donne le contrôle à d'autres
' processus.
Loop
End Sub
Sub CestLaPauseSauv()
Dim PauseTime, Start, Finish, TotalTime
If (MsgBox("Cliquez sur Oui pour effectuer une " & _
"pause de 5 secondes", 4)) = vbYes Then
PauseTime = 5 ' Définit la durée.
Start = Timer ' Définit l'heure de début.
Do While Timer < Start + PauseTime
DoEvents ' Donne le contrôle à d'autres
' processus.
Loop
Finish = Timer ' Définit l'heure de fin.
TotalTime = Finish - Start ' Calcule la durée
' totale.
MsgBox "Pause de " & TotalTime & " seconde(s)"
Else
End
End If
CestLaPause
End Sub
Merci d'avance
Maguite