Bonjour,

Cela fait quelques heures que je parcours l'internet à la recherche d'une solution pour mon problème et je crois qu'il est temps d'essayer de trouver un peu d'assistance directe.

Je touche pas beaucoup en VBA, mais je suis chargé de l'utilisation de cette macro quasiment tous les jours, qui nous sert à recopier des données depuis des formulaires qu'on nous envoie en moyenne 1-2 fois par jour sur un grand tableau dans un classeur que j'ai renommé "NomDuFichierImportant".
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
86
87
88
89
90
Private Sub RandomName_Click()
 
Application.ScreenUpdating = False
 
Dim Fichier As String, Chemin As String
Dim Wb As Workbook
 
 
 
Chemin = "A:NomDuChemin"
 
 
 
Fichier = Dir(Chemin & "*.xls")
Do While Fichier <> ""
Set Wb = Workbooks.Open(Chemin & Fichier)
Set Wb = Nothing
Fichier = Dir
Loop
 
 
Dim NOMFICHIER As String
Dim DATEDUJOUR As Date
 
 
NOMFICHIER = ActiveWorkbook.Name
 
 
 
Do While NOMFICHIER <> "NomDuFichierImportant.xls"
 
 
Worksheets("Technique").Visible = True
Worksheets("Technique").Select
ActiveSheet.Range("B50").Select
ActiveSheet.Range(Selection.Offset(0, 0), Selection.Offset(0, 20)).Select
Selection.Copy
 
 
 
Workbooks("NomDuFichierImportant").Activate
 
 
 
Sheets("FeuilleImportante").Select
DATEDUJOUR = Range("H2").Value
ActiveSheet.Range("B5").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
ActiveCell.Offset(0, 3).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
 
Workbooks(NOMFICHIER).Activate
Application.DisplayAlerts = False
ActiveWindow.Close
Application.DisplayAlerts = True
 
ActiveWindow.ActivateNext
 
NOMFICHIER = ActiveWorkbook.Name
Loop
 
ActiveWorkbook.Save
 
Application.DisplayAlerts = False
 
 
ActiveWindow.Close
 
 
 
Workbooks("NomDuFichierImportant").Activate
 
 
ActiveWindow.Close
Application.DisplayAlerts = True
 
 
Application.ScreenUpdating = True
 
 
End Sub
 
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
End Sub
L'erreur porte sur : Worksheets("Technique").Visible = True. J'ai essayé plusieurs nomenclatures (Sheets, Sheet, Worksheet), cela ne change rien malheureusement. Le nom de la feuille est également bien orthographié.

Lorsque j'ouvre les formulaires individuellement, j'ai un pop-up de demande d'activation des macros (le formulaire contient lui aussi une macro), ce qui est logique puisque le setting est à "désactiver toutes les macros avec notification". Je ne peux pas le changer, pour des raisons de sécurité. Est-ce que c'est ça qui bloque la macro du coup et qui l'empêche de travailler sur les autres classeurs? J'ai été obligé de faire une migration sur Excel 2010, le classeur devenait énorme dans sa version 97-2003 et mettait plusieurs minutes à s'ouvrir. Et compte tenu de note utilisation de celui-ci assez intensive, cela n'aurait fait qu'empirer avec les multiples engistrements journalier.

Est-ce une erreur dans le code, ou une modification entre VBA pour Excel 2003 et 2010 qui rend le code faux?

Merci beaucoup à ceux qui prendront le temps de me répondre, je commence à m'arracher les cheveux avec ce problème.

Ah oui, dernier détail (qui n'en est pas un), les données sont bel et bien copiées au bon endroit, c'est juste qu'il y a cette erreur que je ne m'explique pas et que j'aimerai bien faire disparaître.