Bonjour à toutes et à tous,
Avec le code ci-dessous, je dois remplir une feuille de calcul qui n'est pas ouverte en premier plan et qui se trouve dans le même répertoire que le fichier maître "Engagements".
Lorsque je clique sur le bonton "Ok" de mon Userform, plusieurs feuilles se remplissement simultanément de le même manière. Or, les feuilles du fichier "Tiers.xls" ne se remplissent pas et je n'arrive pas à comprendre pourquoi.
Je vous remercie si vous pouvez m'apporter votre aide.
Code propre à tous les fichiers qui doivent être ouverts :
Code pour remplir les feuilles du fichier "Tiers.xls"
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 Sub TestA() Dim wbkRecap As Workbook, wbkBatiprix, wbkTiers Dim shtFact As Worksheet, shtRecap As Worksheet, shtBati, shtTiers Dim LastLigF As Long, LastLigR As Long Dim stFichierComp As String, NumLig As String Dim stFichComp As String, NumLign As String Dim stFichCompa As String, NumeLign As String Dim NewRec As Boolean, Exist As Boolean Dim NewRech As Boolean, Existe As Boolean Dim NewReche As Boolean, Exista As Boolean Application.ScreenUpdating = False Set shtFact = ThisWorkbook.Sheets("Engagements") NumLig = Me.CmbListeCred.Value NumLign = Me.CmbMarche.Value NumeLign = Me.CmbListeTiers.Value stFichierComp = "S:\FACTURES\FACTURES 2011\Recap prest.xls" stFichComp = "S:\FACTURES\FACTURES 2011\Batiprix.xls" stFichCompa = "S:\FACTURES\FACTURES 2011\Tiers.xls" NewRec = False NewRech = False NewReche = False
En pièces jointes, vous avez la procédure complètes
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 If Me.CmbListeTiers.Value <> "" Then 'si la Combo est différent de vide If Dir(stFichCompa) = "" Then 'Si le fichier Tiers.xls n'existe pas, on le crée Workbooks.Add (1) NewReche = True Set wbkTiers = ActiveWorkbook 'On nomme la première feuille Set shtTiers = wbkTiers.ActiveSheet shtTiers.Name = NumeLign wbkTiers.SaveAs Filename:=stFichCompa Else Set wbkTiers = Workbooks.Open(stFichCompa) 'Si le fichier Tiers.xls existe Exista = False For Each ws In Worksheets If ws.Name = NumeLign Then 'On cherche si la feuille existe Set shtTiers = ws Exista = True Exit For End If Next ws If Not Exista Then Set shtTiers = wbkTiers.Sheets.Add(Type:=xlWorksheet) 'Sinon on ajoute une nouvelle feuille shtTiers.Name = NumeLign NewReche = True End If End If '------------------------------------------------------------- With shtTiers If NewReche Then .Range("B3").Value = "N° Engagement" 'sur la ligne 3 on mets les intitulés suivants .Range("C3").Value = "N° Devis" .Range("D3").Value = "Date" .Range("E3").Value = "Montant" .Range("F3").Value = "Site" .Range("G3").Value = "Objet" .Range("F3").Value = "Tiers" End If LastLigR = .Range("B65536").End(xlUp).Row + 1 .Range("B" & LastLigR).Value = shtFact.Range("D" & LastLigF).Value .Range("C" & LastLigR).Value = shtFact.Range("E" & LastLigF).Value .Range("D" & LastLigR).Value = shtFact.Range("F" & LastLigF).Value .Range("E" & LastLigR).Value = shtFact.Range("K" & LastLigF).Value .Range("F" & LastLigR).Value = shtFact.Range("I" & LastLigF).Value .Range("G" & LastLigR).Value = shtFact.Range("J" & LastLigF).Value .Range("H" & LastLigR).Value = shtFact.Range("H" & LastLigF).Value End With wbkTiers.Close savechanges:=True Set shtFact = Nothing Set shtTiers = Nothing Set wbkTiers = Nothing Application.ScreenUpdating = True End If End If End Sub
Partager