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".
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é.
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
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.
Partager