Salut,

dans le cadre d'un projet, je dois sauvegarder un classeur dont l'adresse et le nom sont variables à partir d'une macro qui est elle meme dans un autre classeur.

ca a marché hier mais plus aujourd'hui et je ne trouve pas du tout (mais alors pas du tout )
si quelqu'un peut y jeter un coup d'oeil!

le classeur contenant les macros est: accueil.xls
son adresse est variable

le main.exe (voir la suite) est situé dans le meme dossier que accueil.xls

le fichier a traité peut etre n'importe ou


existencefichier: test l'existence du fichier (pas de moi)

enregistrement: enregistre le fichier (ajoute aussi une colonne car j'aime les chips!)

test: contient les appels à toutes mes subs et tout et tout

main: ben le main

ps: je dois enregistrer les fichiers car le programme main.exe les utilisent

ps2: les quatres secondes servent à être sur que le main.exe à fini de s'executer

ps3: si vous avez une meilleur idée pour ça, je prend( j'avais pensé à une boucle qui tant que existencefichier(resultat.txt) ne retourne pas TRUE, attend puis l'ouvre une fois qu'il est détécté mais si il y a mieux, )

ps4: tout le reste du code marche, y compris le main.exe sauf le kill à la fin mais c'est normal, le classeur reste ouvert!

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Function ExistenceFichier(sFichier As String) As Boolean
  ExistenceFichier = Dir(sFichier) <> ""
End Function
 
Sub enregistrement(adresseclasseuraccueuil As String, adressefichier As String)
 
Dim nomfeuille As String
Dim i As Integer
Dim nombredeligneINTER As Long
 
 
nombredeligneINTER = Sheets(1).Range("A1").End(xlDown).Row
 
'insere une colonne avant la colonne O codvoi pour le traitement des fichiers textes
'elle sera supprimé à la fin de l'execution des macros
Sheets(1).Activate
Columns("O:O").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Sheets(1).Range("O2:O" & nombredeligneINTER).FormulaR1C1 = "=WEEKNUM(RC[-10],2)"
 
    For i = 1 To 5
    nomfeuille = Sheets(i).Name
    Sheets(i).Activate
    ActiveWorkbook.SaveAs Filename:=nomfeuille, FileFormat:=xlText, CreateBackup:=False
    Next i
 
Columns("O:O").Delete Shift:=xlToLeft
        ActiveWorkbook.SaveAs Filename:=adressefichier, _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
 
Sub test()
 
Call miseenplacedelafeuille
Call calculdesdureeope1
Call calculdureesallereveil
Call ajoutnomanesthesiste
Call ajoutnomoperateur
Call pilotededonneejour
Call pilotededonneejourcodesalle
Call pilotededonneesemaine
Call pilotededonneesemainecodesalle
Call pilotededonneeperiodecodesalle
Call pilotededonneeperiode
End Sub
 
Sub main()
 
Dim adressefichier As String
Dim adresseclasseuraccueil As String
Dim nomfichier As String
Dim nomfeuille As String
Dim i As Integer
Dim classeur As Workbook
adressefichier = Application.InputBox("Quel est l'adresse du fichier que vous voulez traiter: ", "", "D:\Users\Nakamura\Desktop\CHGE.xls")
 
 
If ExistenceFichier(adressefichier) Then
 
        adresseclasseuraccueil = ActiveWorkbook.Path
        nomfichier = Mid(adressefichier, InStrRev(adressefichier, "\") + 1)
        Set classeur = Application.Workbooks.Open(adressefichier)
        classeur.Activate
 
        Application.Run "accueil.xls!enregistrement", adresseclasseuraccueil, adressefichier
 
        Shell (adresseclasseuraccueil & "\main.exe")
 
        Application.Run "accueil.xls!'test'"
 
        Application.Wait (Now + TimeValue("0:00:4"))
            Workbooks.OpenText Filename:= _
        adresseclasseuraccueil & "\resultat.txt", Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=True, OtherChar:=";", FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True
 
        Kill adresseclasseuraccueil & "\resultat.txt"
    Else
        MsgBox "fichier inexistant"
    End If
 
End Sub