Bonjour a tous,
je suis nouvelle sur ce forum et je suis surtout novice en tout ce qui a trait a access 2010.
je vous expose mon probleme en esperant que quelqu'un puisse m'aider au plus vite.
alors j'ai créé un programme en utilisant les recordsets DAO qui va chercher un fichier excel dans un dossier en fonction du numero de YK une fois trouvé il ouvre ce fichier et il renseigne deux cellules C12 et E14 avec des valeurs données d'un recordset.
ceci fronctionne tres bien mais qu'une fois sur deux en me donnant comme message d'erreur "erreur d'execution 9" donc deja je ne comprends pas pour quoi.
quand ca marche, je demande a mon programme d'enregistrer le fichier sous le non "valeur CELLULE E14".xlsx dans un dossier (en lui donnant le chemin du dossier) en faisant un test d'erreur tel que si le fichier existe deja je rajoute un indice "_01" qui normalement s'incremente si le "_01" existe deja ceci marchait tres bien mais plus maintenant j'ai utilisé ce meme programme pour un autre formulaire et ca marche parfaitement sauf pour celui la.
voici mon programme vous serez plus eclairés:
si quelqu'un pouvait m'aider ca me sauverait la vie
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 Private Sub decontamination_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Dim sql As String Dim tableur As Excel.Application Dim classeur As Excel.Workbook Dim feuil1 As Excel.Worksheet 'Dim db As Database 'Dim rs As Recordset sql = "SELECT [REQ Decontamination].* FROM [REQ Decontamination] WHERE [REQ Decontamination].[YKNumber]= """ & Me.txtYK & """" Set db = Application.CurrentDb Set rs = db.OpenRecordset(sql) If IsNull(Me.txtYK) Or Me.txtYK = "" Or Me.txtYK = "YK" Then MsgBox ("Veuillez entrer un numero de YK") Exit Sub End If If rs.BOF And rs.EOF Then MsgBox "Equipement " & Me.txtYK & " non contaminé" rs.Close Set rs = Nothing Set db = Nothing Exit Sub End If If txtYK = rs![YKNumber] Then Do While Me.txtFIRNumber <> rs![FIRNumber] rs.MoveNext Loop If Me.txtFIRNumber <> rs![FIRNumber] Then MsgBox "Cette FIR ne figure pas dans la liste des equipements contaminés" End If If Me.txtFIRNumber = rs![FIRNumber] Then Dim chemin As String chemin = "T:\PUBLIC_SHARE\Repairs\SToRM\Décontamination\Décontamination " + Me.txtYK + "*.xlsx" Set tableur = CreateObject("Excel.Application") Set classeur = tableur.Workbooks.Open(chemin) Set feuil1 = tableur.ActiveSheet tableur.Visible = True Workbooks(chemin).Sheets("Feuil1").range("C12") = rs![SerieNum] Workbooks(chemin).Sheets("Feuil1").range("E14") = rs![FIRNumber] 'Workbooks("Décontamination " + Me.txtYK + ".xlsx").Sheets("Feuil1").range("B39").Value = Workbooks("Décontamination " + Me.txtYK + ".xlsx").Sheets("Feuil1").range("B47").Value Dim Maintenant As Date Sheets("Feuil1").range("B47").Value = Date Maintenant = Sheets("Feuil1").range("B47").Value End If End If 'on sauvegarde la fiche de décontamination Dim NomFichier As String Dim CheminSortie As String CheminSortie = "C:\Users\sha2817\Desktop\STORM\Decontamination" NomFichier = CheminSortie & "\" & rs![FIRNumber] & ".xlsx" Debut: If SCR.FileExist(NomFichier) Then If Not Left(Right(NomFichier, 7), 1) = "_" Then NomFichier = Left(NomFichier, Len(NomFichier) - 5) + "_01" + ".xlsx" Else num = Format(CStr((Left(Right(NomFichier, 6), 2)) + 1), "00") NomFichier = Left(NomFichier, Len(NomFichier) - 7) + "_" + num + ".xlsx" End If GoTo Debut End If tableur.ActiveWorkbook.SaveAs FileName:=NomFichier rs.Close Set rs = Nothing Set db = Nothing Exit Sub Set classeur = Nothing Set tableur = Nothing End Sub
merci d'avance
Partager