VBA : erreur d'exécution 13

VBA : erreur d'exécution 13 - VB/VBA/VBS - Programmation

Marsh Posté le 03-01-2014 à 11:40:36    

Salut à tous !
 
J'ai un gros problème... que je ne comprends pas.
J'ai un fichier Excel qui a un onglet qui s'appelle "RFN" (1er onglet) et une macro 'Workbook_Open' qui s'exécute à chaque ouverture du fichier.
Voici le code de cette macro :
 

Code :
  1. Sub Workbook_Open()
  2.    
  3.      Sheets("RFN" ).Activate
  4. End Sub


 
Quand j'ouvre le fichier, l'erreur exécution '13' s'affiche sur cette ligne.
Si je clique sur "FIN", la macro s'arrête.
Si je la relance avec F5, elle s'exécute normalement...
 
Je ne comprends pas.
J'ai l'impression que le fichier (et sa strucutre) est mémorisé par Excel une fois vraiment ouvert...
 
Quelqu'un peut m'aider ?


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 03-01-2014 à 11:40:36   

Reply

Marsh Posté le 03-01-2014 à 11:48:00    

J'ai renommé la macro en OUVERTURE (au lieu de Workbook_Open).
Le fichier s'ouvre tranquillement. OK.
Si je lance cette macro, l'erreur '13' s'affiche.
Si je relance, ça marche.
 
Et donc, ça n'est pas le fait que le fichier doive être totalement ouvert.
 
 :cry:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 03-01-2014 à 12:04:03    

:??:  
Bon, j'ai trouvé une parade... mais alors là, je ne comprends toujours pas où est le problème.
 
Voici mon nouveau code :
 

Code :
  1. Sub Workbook_Open()
  2.    
  3.     On Error GoTo Erreur1:
  4.    
  5.     Sheets("RFN" ).Activate
  6. Erreur1:
  7.     Sheets("RFN" ).Activate
  8. End Sub


 
 
Incroyable, non ?
 
 :??:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 03-01-2014 à 12:15:23    

Désolé d'avoir pollué comme ça !
Par contre, si quelqu'un sait le pourquoi du comment, je suis preneur de la réponse.
Merci et bonne année à tous !


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 03-01-2014 à 15:13:35    

 
           Bonjour,
 
           c'est peut-être un problème de nom identique utilisé dans différents objets …
           Le classeur est peut-être partiellement endommagé …
           Ou encore une concurrence avec un autre évènement …
 
           Sinon cela serait bien de qualifier proprement la feuille :  Me.Worksheets("RFN" ).Activate  …
 
           Mais le mieux est de ne pas utiliser le nom de la feuille mais son CodeName, par exemple  Feuil1.Activate  …
           Le CodeName est ce qui précède le nom de la feuille entre parenthèses dans l'environnement VBA
           comme par exemple  Feuil1 (RFN)  …


Message édité par Marc L le 03-01-2014 à 15:18:36
Reply

Marsh Posté le 05-01-2014 à 13:14:15    

Bonjour Marc !
Merci pour ta réponse qui dépasse un peu mes connaissances en terme de code VBA.
Concernant un classeur endommagé, comment faut-il faire pour remédier à ce problème ? Y a-t-il une manipulation particulière à faire ?
Et pour Me.worksheets("RFN" ).Activate, je ne connais pas...  
Et merci pour le conseil du CodeName.  ;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 05-01-2014 à 17:25:21    

 
           En général, en cas de classeur dysfonctionnel, le plus simple est de recopier les données dans un classeur vierge …


Message édité par Marc L le 05-01-2014 à 17:25:34
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed