Excel VBA, erreur d'exécution n°9

Résolu/Fermé
T!bl@r Messages postés 3 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 9 janvier 2013 - 9 janv. 2013 à 12:51
T!bl@r Messages postés 3 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 9 janvier 2013 - 9 janv. 2013 à 15:04
Bonjour,

je débute dans le domaine des macros Excel et je dois en créer une qui va me chercher des fichiers et qui me les colle renomme supprime les anciens. Je dois par ailleurs remettre en forme pour qu'une donnée soit accessible et je ne comprend pas pourquoi.....

Problèmes :

* les lignes suivantes ne sont pas prises en compte et une erreur 9 s'affiche:
Sheets("Détail ER").Select '<< erreur sur cette première ligne
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

*Etant débutant je ne sais pas s'il existe un moyen de simplifier mes lignes de codes avec boucles et conditions, voici ma macro entière:


'''''''''''''''Fonction qui vérifie l'existence d'un fichier'''''''''''''''
Public Function ExistFile(strPath As String) As Boolean
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
ExistFile = fs.FileExists(strPath)
End Function

''''''''''''''Macro de Mise à jour du Suivi Commercial BPlan'''''''''''''''

'Lancement de la macro mensuellement à partir de septembre

Sub ERcopier_fichier()

'Déclaration des variables

Dim CopieER, DestinationER_sep, DestinationER_oct, DestinationER_nov, DestinationER_dec As String
Dim Periode_Month, Periode_Date As Variant

CopieER = "S:\POLE FINANCE ET DEVELOPPEMENT\DEVELOPPEMENT\REPORTING TOUS MARCHES\ER&ME\"
DestinationER_dec = "S:\POLE FINANCE ET DEVELOPPEMENT\BUSINESS PLAN\Thibault\Suivi commercial 3\DONNEES V2\Conquête ER (doc Murielle)\Décembre\"
DestinationER_nov = "S:\POLE FINANCE ET DEVELOPPEMENT\BUSINESS PLAN\Thibault\Suivi commercial 3\DONNEES V2\Conquête ER (doc Murielle)\Novembre\"
DestinationER_oct = "S:\POLE FINANCE ET DEVELOPPEMENT\BUSINESS PLAN\Thibault\Suivi commercial 3\DONNEES V2\Conquête ER (doc Murielle)\Octobre\"
DestinationER_sep = "S:\POLE FINANCE ET DEVELOPPEMENT\BUSINESS PLAN\Thibault\Suivi commercial 3\DONNEES V2\Conquête ER (doc Murielle)\Septembre\"

Periode_Date = FileDateTime(CopieER & "\1_MARSEILLE.xls")
Periode_Month = Month(Periode_Date)

MsgBox Periode_Date
'MsgBox Periode_Month


'Suppression des fichiers tous les mois à partir de Septembre

'Supprimer fichiers de Décembre P-1 et copier ceux de décembre P

Select Case Periode_Month
Case Is = 1

If MsgBox("Voulez-vous vraiment supprimer les fichiers de l'année précédente???", 4, "Demande de confirmation") = vbYes Then



If ExistFile(DestinationER_dec & "12MARSEILLE.xls") = True Then
FileSystem.Kill DestinationER_dec & "12MARSEILLE.xls"
FileCopy CopieER & "\1_MARSEILLE.xls", DestinationER_dec & "12MARSEILLE.xls"

ChDir (DestinationER_dec)
Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_dec & "12MARSEILLE_CANNES.xls") = True Then
FileSystem.Kill DestinationER_dec & "12MARSEILLE_CANNES.xls"
FileCopy CopieER & "\2_MARSEILLE_CANNES.xls", DestinationER_dec & "12MARSEILLE_CANNES.xls"

ChDir (DestinationER_dec)
Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE_CANNES.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_dec & "12MARSEILLE_MARSEILLE.xls") = True Then
FileSystem.Kill DestinationER_dec & "12MARSEILLE_MARSEILLE.xls"
FileCopy CopieER & "\2_MARSEILLE_MARSEILLE.xls", DestinationER_dec & "12MARSEILLE_MARSEILLE.xls"

ChDir (DestinationER_dec)
Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE_MARSEILLE.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_dec & "12MARSEILLE_NICE.xls") = True Then
FileSystem.Kill DestinationER_dec & "12MARSEILLE_NICE.xls"
FileCopy CopieER & "\2_MARSEILLE_NICE.xls", DestinationER_dec & "12MARSEILLE_NICE.xls"

ChDir (DestinationER_dec)
Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE_NICE.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_dec & "12MARSEILLE_TOULON.xls") = True Then
FileSystem.Kill DestinationER_dec & "12MARSEILLE_TOULON.xls"
FileCopy CopieER & "\2_MARSEILLE_TOULON.xls", DestinationER_dec & "12MARSEILLE_TOULON.xls"

ChDir (DestinationER_dec)
Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE_TOULON.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_dec & "12MARSEILLE_AVIGNON.xls") = True Then
FileSystem.Kill DestinationER_dec & "12MARSEILLE_AVIGNON.xls"
FileCopy CopieER & "\3_MARSEILLE_AVIGNON.xls", DestinationER_dec & "12MARSEILLE_AVIGNON.xls"

ChDir (DestinationER_dec)
Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE_AVIGNON.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_dec & "12MARSEILLE_NIMES_VICTOR_HUGO.xls") = True Then
FileSystem.Kill DestinationER_dec & "12MARSEILLE_NIMES_VICTOR_HUGO.xls"
FileCopy CopieER & "\3_MARSEILLE_NIMES_VICTOR_HUGO.xls", DestinationER_dec & "12MARSEILLE_NIMES_VICTOR_HUGO.xls"

ChDir (DestinationER_dec)
Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE_NIMES_VICTOR_HUGO.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_dec & "12MARSEILLE_PERPIGNAN.xls") = True Then
FileSystem.Kill DestinationER_dec & "12MARSEILLE_PERPIGNAN.xls"
FileCopy CopieER & "\3_MARSEILLE_PERPIGNAN.xls", DestinationER_dec & "12MARSEILLE_PERPIGNAN.xls"

ChDir (DestinationER_dec)
Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE_PERPIGNAN.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_dec & "12MARSEILLE_MONTPELLIER.xls") = True Then
FileSystem.Kill DestinationER_dec & "12MARSEILLE_MONTPELLIER.xls"
FileCopy CopieER & "\3_MARSEILLE_MONTPELLIER.xls", DestinationER_dec & "12MARSEILLE_MONTPELLIER.xls"

ChDir (DestinationER_dec)
Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE_MONTPELLIER.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_dec & "12MARSEILLE_MONTE_CARLO.xls") = True Then
FileSystem.Kill DestinationER_dec & "12MARSEILLE_MONTE_CARLO.xls"
FileCopy CopieER & "\4_MARSEILLE_MONTE_CARLO.xls", DestinationER_dec & "12MARSEILLE_MONTE_CARLO.xls"

ChDir (DestinationER_dec)
Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE_MONTE_CARLO.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_dec & "12MARSEILLE_AIX_VAL_DURANCE.xls") = True Then
FileSystem.Kill DestinationER_dec & "12MARSEILLE_AIX_VAL_DURANCE.xls"
FileCopy CopieER & "\5_MARSEILLE_AIX_VAL_DURANCE.xls", DestinationER_dec & "12MARSEILLE_AIX_VAL_DURANCE.xls"

ChDir (DestinationER_dec)
Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE_AIX_VAL_DURANCE.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If



MsgBox "Fin de Tâche" & Chr(10) & Chr(10) & "Les Fichiers ER/ME de Décembre ont été mis à jour"

End If



'Supprimer fichiers de Novembre P-1 et copier ceux de Novembre P

Case Is = 12
If MsgBox("Voulez-vous vraiment supprimer les fichiers de l'année précédente???", 4, "Demande de confirmation") = vbYes Then



If ExistFile(DestinationER_nov & "11MARSEILLE.xls") = True Then
FileSystem.Kill DestinationER_nov & "11MARSEILLE.xls"
FileCopy CopieER & "\1_MARSEILLE.xls", DestinationER_nov & "11MARSEILLE.xls"

ChDir (DestinationER_nov)
Workbooks.Open Filename:=DestinationER_nov & "11MARSEILLE.xls"

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_nov & "11MARSEILLE_CANNES.xls") = True Then
FileSystem.Kill DestinationER_nov & "11MARSEILLE_CANNES.xls"
FileCopy CopieER & "\2_MARSEILLE_CANNES.xls", DestinationER_nov & "11MARSEILLE_CANNES.xls"

ChDir (DestinationER_nov)
Workbooks.Open Filename:=DestinationER_nov & "11MARSEILLE_CANNES.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_nov & "11MARSEILLE_MARSEILLE.xls") = True Then
FileSystem.Kill DestinationER_nov & "11MARSEILLE_MARSEILLE.xls"
FileCopy CopieER & "\2_MARSEILLE_MARSEILLE.xls", DestinationER_nov & "11MARSEILLE_MARSEILLE.xls"

ChDir (DestinationER_nov)
Workbooks.Open Filename:=DestinationER_nov & "11MARSEILLE_MARSEILLE.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_nov & "11MARSEILLE_NICE.xls") = True Then
FileSystem.Kill DestinationER_nov & "11MARSEILLE_NICE.xls"
FileCopy CopieER & "\2_MARSEILLE_NICE.xls", DestinationER_nov & "11MARSEILLE_NICE.xls"

ChDir (DestinationER_nov)
Workbooks.Open Filename:=DestinationER_nov & "11MARSEILLE_NICE.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_nov & "11MARSEILLE_TOULON.xls") = True Then
FileSystem.Kill DestinationER_nov & "11MARSEILLE_TOULON.xls"
FileCopy CopieER & "\2_MARSEILLE_TOULON.xls", DestinationER_nov & "11MARSEILLE_TOULON.xls"

ChDir (DestinationER_nov)
Workbooks.Open Filename:=DestinationER_nov & "11MARSEILLE_TOULON.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_nov & "11MARSEILLE_AVIGNON.xls") = True Then
FileSystem.Kill DestinationER_nov & "11MARSEILLE_AVIGNON.xls"
FileCopy CopieER & "\3_MARSEILLE_AVIGNON.xls", DestinationER_nov & "11MARSEILLE_AVIGNON.xls"

ChDir (DestinationER_nov)
Workbooks.Open Filename:=DestinationER_nov & "11MARSEILLE_AVIGNON.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_nov & "11MARSEILLE_NIMES_VICTOR_HUGO.xls") = True Then
FileSystem.Kill DestinationER_nov & "11MARSEILLE_NIMES_VICTOR_HUGO.xls"
FileCopy CopieER & "\3_MARSEILLE_NIMES_VICTOR_HUGO.xls", DestinationER_nov & "11MARSEILLE_NIMES_VICTOR_HUGO.xls"

ChDir (DestinationER_nov)
Workbooks.Open Filename:=DestinationER_nov & "11MARSEILLE_NIMES_VICTOR_HUGO.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_nov & "11MARSEILLE_PERPIGNAN.xls") = True Then
FileSystem.Kill DestinationER_nov & "11MARSEILLE_PERPIGNAN.xls"
FileCopy CopieER & "\3_MARSEILLE_PERPIGNAN.xls", DestinationER_nov & "11MARSEILLE_PERPIGNAN.xls"

ChDir (DestinationER_nov)
Workbooks.Open Filename:=DestinationER_nov & "11MARSEILLE_PERPIGNAN.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_nov & "11MARSEILLE_MONTPELLIER.xls") = True Then
FileSystem.Kill DestinationER_nov & "11MARSEILLE_MONTPELLIER.xls"
FileCopy CopieER & "\3_MARSEILLE_MONTPELLIER.xls", DestinationER_nov & "11MARSEILLE_MONTPELLIER.xls"

ChDir (DestinationER_nov)
Workbooks.Open Filename:=DestinationER_nov & "11MARSEILLE_MONTPELLIER.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_nov & "11MARSEILLE_MONTE_CARLO.xls") = True Then
FileSystem.Kill DestinationER_nov & "11MARSEILLE_MONTE_CARLO.xls"
FileCopy CopieER & "\4_MARSEILLE_MONTE_CARLO.xls", DestinationER_nov & "11MARSEILLE_MONTE_CARLO.xls"

ChDir (DestinationER_nov)
Workbooks.Open Filename:=DestinationER_nov & "11MARSEILLE_MONTE_CARLO.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If


If ExistFile(DestinationER_nov & "11MARSEILLE_AIX_VAL_DURANCE.xls") = True Then
FileSystem.Kill DestinationER_nov & "11MARSEILLE_AIX_VAL_DURANCE.xls"
FileCopy CopieER & "\5_MARSEILLE_AIX_VAL_DURANCE.xls", DestinationER_nov & "11MARSEILLE_AIX_VAL_DURANCE.xls"

ChDir (DestinationER_nov)
Workbooks.Open Filename:=DestinationER_nov & "11MARSEILLE_AIX_VAL_DURANCE.xls"

Sheets("Détail ER").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

Sheets("Détail ME").Select
ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close
End If



MsgBox "Fin de Tâche" & Chr(10) & Chr(10) & "Les Fichiers ER/ME de Novembre ont été mis à jour"

End If




ET JE VOUS EPARGNE LES MEME LIGNES POUR OCTOBRE ET SEPTEMBRE
A voir également:

4 réponses

Utilisateur anonyme
9 janv. 2013 à 14:19
Pas acceptées au niveau de la syntaxe ? Je viens de les essayer.
Tu as bien pris en compte ma correction de 13h53 ?

Si oui, quels messages d'erreur as-tu?

Sans ce Wb. devant Sheets, tu continues de travailler sur le classeur courant, et il n'y trouve pas la bonne feuille, ce qui est normal je suppose.
Évidemment, tu as déjà vérifié l'orthographe du nom de la feuille "Détail ER"
1
Utilisateur anonyme
9 janv. 2013 à 13:31
Bonjour

C'est sûrement simplifiable, en effet. Je n'ai pas cherché.
En ce qui concerne ton erreur, c'est que Sheets dans l'absolu n'existe pas.
C'est une propriété d'un objet Workbook, il faut l'appliquer à un objet Workbook :

Dim Wb as Workbook
...
Set Wb=Workbooks.Open Filename:=DestinationER_dec & "12MARSEILLE.xls" 
Wb.Sheets("Détail ER").Select 
0
Utilisateur anonyme
9 janv. 2013 à 13:53
Après vérifications...

D'une part, j'ai oublié des parenthèses
Set Wb=Workbooks.Open (Filename:=DestinationER_dec & "12MARSEILLE.xls")

D'autre part, avant mes corrections, ce n'est pas l'erreur 9 que j'ai. Je n'ai cette erreur 9 qu'après correction, si je demande à sélectionner une feuille qui n'existe pas. Bizarre.
0
T!bl@r Messages postés 3 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 9 janvier 2013
9 janv. 2013 à 13:58
bonjour,

les lignes que tu m'as écrites ne sont pas acceptées au niveau de la syntaxe


Le message que j'ai a la base "l'indice n'appartient pas a la selection..."
0
T!bl@r Messages postés 3 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 9 janvier 2013
9 janv. 2013 à 15:04
J'ai réussi en rajoutant "Activeworkbook" devant mes objets!! Ca donne :

//*ActiveWorkbook.Sheets("Détail ER").Select
ActiveWorkbook.ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Sheets("Détail ME").Select
ActiveWorkbook.ActiveSheet.Shapes("AutoShape 2").Select
Selection.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close*//

C'est long mais ça fonctionne parfaitement, c'est le principal, merci pour tes réponses
0