Bonjour à tous,
Je sais que le sujet à été discuté dans tout les sens sur le forum, mais je n'ai jamais trouvé une explication complète sur le phénomène:
Mon appli doit ouvrir un fichier Excel, faire deux ou trois manip dedans (genre supprimer des colonnes, des lignes,...) , sauvegarder le fichier en csv (séparateur point virgule) puis le fermer.
Cette procédure se trouve dans une boucle qui permet d'exécuter ce traitement sur tout les fichiers Excel qui se trouvent dans un dossier.
Voici le code:
J'ai essayé des tas de choses mais rien y fait, j'ai toujours ce fichu processus Excel qui reste dans le gestionnaire des tâches.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 Private Sub Button_Executer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Executer.Click Dim appExcel As Excel.Application 'Application Excel Dim wbExcel As Excel.Workbook 'Classeur Excel Dim wsExcel As Excel.Worksheet 'Feuille Excel Dim TheFile As String 'Variable pour le nom du fichier Dim NewFile As String 'Variable pour le nom du fichier transformé Dim Rep As String appExcel = CreateObject("Excel.Application") Rep = Me.Tb_Path_Source.Text TheFile = Dir(Rep & "\*.xlsx") 'Listing des fichier Excel... While TheFile <> "" 'Tant que non vide 'Ouverture d'un fichier Excel wbExcel = appExcel.Workbooks.Open(Rep & "\" & TheFile) 'wsExcel correspond à la première feuille du fichier wsExcel = wbExcel.Worksheets(1) '##################################################################################################################### 'Mon code de traitement sur wsExcel '##################################################################################################################### 'Ce if permet de tronquer le nom du fichier pour eviter qu'il soit trop long If Len(TheFile) > 50 Then TheFile = Strings.Left(TheFile, 40) NewFile = TheFile & "~" Else NewFile = Microsoft.VisualBasic.Left(TheFile, InStrRev(TheFile, ".") - 1) End If ChDir(Me.Tb_Path_Compil.Text) wbExcel.SaveAs(Filename:= _ Me.Tb_Path_Compil.Text & "\" & NewFile & ".csv", FileFormat:=Excel.XlFileFormat.xlCSVWindows) wsExcel.Delete() wbExcel.Close(SaveChanges:=False) appExcel.Quit() wsExcel = Nothing wbExcel = Nothing appExcel = Nothing TheFile = Dir() 'Fichier suivant End While End Sub
Je me demande si ça vient du fait que je fait un SaveAs et que j'enregistre non pas en xls (ou xlsx) mais en csv...
Est-ce que quelqu'un pourrait me conseiller?
Merci d'avance !
Partager