Bonjour,
J'ai une macro qui entre autre doit aller chercher un fichier txt et mettre son contenu dans une cellule
le j étant le bon n° de ligne qu'on a trouvé précédement
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
44
45
46
47
48
49
50
51
52
53
54 'insérer le txt fichier = feuille2.Cells(j, 11) 'initialiser data a vide Data = "" 'changer ici le nom de répertoire URL = "G:\dossier\dossier\" On Error Resume Next With feuille3.QueryTables.Add(Connection:="TEXT;" & URL & fichier, Destination:=feuille3.Range("$A$1")) .Name = ActiveWorkbook.Connections.Count + 1 .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 1252 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With On Error GoTo 0 'compter combien de ligne il fait derlgn = feuille3.Cells(feuille3.Columns(1).Cells.Count, 1).End(xlUp).Row 'recomplier les lignes en une cellule For m = 1 To derlgn If m = 1 Then Data = Data & feuille3.Cells(m, 1) Else Data = Data & Chr(10) & feuille3.Cells(m, 1) End If Next m 'ranger le résultat dans la cellule TXT = Replace(Data, Chr(9), " ") 'effacer les liens fait avec les fichiers s'il y If ActiveWorkbook.Connections.Count > 0 Then For n = 1 To ActiveWorkbook.Connections.Count ActiveWorkbook.Connections(n).Delete Next n End If
tant que le fichier existe, tout se passe merveilleusement
Mon probleme, c'est quand le fichier n'existe pas
Je pensais avoir été maligne en suivant le tuto sur les erreurs et avoir mis "On Error Resume Next" juste avant d'inserer et "On Error GoTo 0" juste apres pour le neutraliser
De fait, ca fonctionne, si le fichier n'existe pas, j'ai une petite pop up polie qui le signale et ca ne plante pas ma macro
Si le fichier existe, ca s'affiche tranquilement
Par contre, apres avoir rencontré un fichier qui n'existe pas, ca n'affiche plus rien par la suite, meme sur les fichiers qui en ont
Donc imaginons que j'ai un fichier pour le client 1 et le client 3 mais pas pour le client 2
J'ouvre excel
Je choisis le client 1, pas de probleme, le txt s'affiche
Je choisis le client 2, pas de probleme, tout s'affiche et une pop up me préviens qu'il n'y a pas de txt
Je choisis le client 3, patatra, le txt ne s'affiche pas
je rechoisis le client 1 qui marchait il y a deux minutes, patatra, le txt ne s'afiche pas
Si je ferme excel, que je le réouvre et que je fais client 1 et puis client 3 et puis retour au client 1, ca fonctionne
Donc je présume que je ferme mal quelque chose quand je rencontre une absence de fichier, et que ca fout le bordel par la suite.
Mais je ne trouve pas ce que je peux faire pour corriger ca.
J'avais bien testé
Ca marche parfaitement pour mon pc, mais pas sur les pc des utilisateurs finaux, et leur activer des modules de plus n'est pas disponnible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Set filesys = CreateObject("Scripting.FileSystemObject") if filesys.FileExists(URL & fichier) then blabla else blibli end if
Est-ce que quelqu'un a une idée de ce que je pourrais faire pour ne pas avoir de plantage macro quand le fichier n'existe pas ET continuer a afficher les fichiers qui fonctionnent.
Partager