Erreur d'exécution 9 suite à migration Excel 2003->2010
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:
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.