Importation de plusieurs fichiers texte vers xls

  • Initiateur de la discussion Initiateur de la discussion mortimer
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

mortimer

Guest
Bonjour,
Je dispose d'une macro qui effectue l'import d'un fichier dans xls et son traitement.
Cela fonctionne très bien : l'utilisateur doit fourir le nom du fichier.
Maintenant, je voudrais faire tourner cette macro autant de fois qu'il y a e fichiers différents dans un dossier.
Donc :
Get all files present in this folder
For each file execute macro1 macro2 macro3

merci de me donner une piste sur les commandes et termes à utiliser , voire une soluce ou un tutoriel interessant.

Merci d'avance ...

Mortimer.
 
Re:Importation de plusieurs fichiers texte vers xl

Bonjour

voici un code de l'excellent MichelXLD, qui ouvre tout les fichiers txt d'un répertoire(adapter le chemin) en vu de leur traitement :

Sub ouvrir()
Dim Fichier As String
Chemin
As String
Dim LigneTxt

Chemin = 'C:\\Mes Documents\\xl\\'
'adapter le chemin
Fichier = Dir(Chemin & '\\*.txt', 0)

Do While Len(Fichier) > 0


Open Chemin & Fichier For Input As #1
Do While Not EOF(1)
Line
Input #1, LigneTxt
MsgBox LigneTxt
Loop
Close #1

Fichier = Dir()
Loop

End Sub

Salut
 
Re : Importation de plusieurs fichiers texte vers xls

Bonjour,

Je suis débutante au niveau des manipulations d'excel et j'ai pu lire que vous disposiez d'une macro pour importer des fichiers dans excel. Je cherche à réaliser cette opération pour des références clients que je garde dans un fichier, serait-il possible de m'envoyer votre macro?

Merci d'avance.
Sophie
 
Re : Importation de plusieurs fichiers texte vers xls

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
 
Dernière modification par un modérateur:
Re : Importation de plusieurs fichiers texte vers xls

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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour