robby98800
XLDnaute Nouveau
Bonjour,
J’ai un problème que je n’arrive pas à résoudre à l’aide d’ancien post et je n’ai pas les outils nécessaire pour le faire tout seul.
Je vous explique mon problème, je cherche à importer plusieurs classeurs qui sont compris dans le même dossier. L’idéal serait de choisir le dossier en dynamique avec un fenêtre Ouvrir.
Le nom de chaque classeur est différent par contre à l’intérieur les données sont rangées de la même manière. Il faut surement faire une boucle pour récupérer tous les classeurs dans le dossier.
Les classeurs a importé sont en .csv mais les données ne sont pas séparées par un séparateur justement ! En gros ils sont ouvert par Excel pour reste en .csv. Quand j’ouvre un fichier avec Application.Dialogs(xlDialogOpen).Show ça ne marche pas. Je ne sais pas trop comment faire, c’est du csv mais pas vraiment…
Si cela n’est pas possible au pire c’est pas grave je le convertirai manuellement avant de faire l’importation.
Voici la macro qui me permet d’importer un classeur en xlsx (ensuite je prend une certaines plage et juste les cellules qui répondent à une condition mais ça je me débrouillerai pour le faire tout seul)
Merci beaucoup de votre aide !
J’ai un problème que je n’arrive pas à résoudre à l’aide d’ancien post et je n’ai pas les outils nécessaire pour le faire tout seul.
Je vous explique mon problème, je cherche à importer plusieurs classeurs qui sont compris dans le même dossier. L’idéal serait de choisir le dossier en dynamique avec un fenêtre Ouvrir.
Le nom de chaque classeur est différent par contre à l’intérieur les données sont rangées de la même manière. Il faut surement faire une boucle pour récupérer tous les classeurs dans le dossier.
Les classeurs a importé sont en .csv mais les données ne sont pas séparées par un séparateur justement ! En gros ils sont ouvert par Excel pour reste en .csv. Quand j’ouvre un fichier avec Application.Dialogs(xlDialogOpen).Show ça ne marche pas. Je ne sais pas trop comment faire, c’est du csv mais pas vraiment…
Si cela n’est pas possible au pire c’est pas grave je le convertirai manuellement avant de faire l’importation.
Voici la macro qui me permet d’importer un classeur en xlsx (ensuite je prend une certaines plage et juste les cellules qui répondent à une condition mais ça je me débrouillerai pour le faire tout seul)
Code:
Sub Importer()
Dim ladate As Date, Plage As Range
derli = Sheets("releve_erreur").Range("A" & Rows.Count).End(xlUp).Row 'definit la derniere ligne de la colonne A
ladate = DateAdd("d", -7, Date)
Set Destination = ActiveWorkbook
Source = Application.Dialogs(xlDialogOpen).Show 'permet de choisir un dossier dans une fenêtre ouvrir
If Source = False Then
MsgBox ("Aucun fichier sélectionné")
Exit Sub
Else
Set Source = ActiveWorkbook
Source.Activate
Sheets(1).Select
For i = 2 To Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
If Sheets(1).Range("A" & i).Value >= ladate Then
If Plage Is Nothing Then
Set Plage = Sheets(1).Range("A" & i & ":" & "E" & i)
Else
Set Plage = Union(Plage, Sheets(1).Range("A" & i & ":" & "E" & i))
End If
End If
Next
Destination.Activate
Sheets("releve_erreur").Range("A2:E" & derli).ClearContents
Plage.Copy Destination:=Sheets(2).Range("A2")
Source.Activate
Application.CutCopyMode = False
ActiveWindow.Close SaveChanges:=False
End If
End Sub
Merci beaucoup de votre aide !