Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
893 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Erreur out of range sur script

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Erreur out of range sur script

n°1904895
replay
Posté le 13-07-2009 à 12:19:17  profilanswer
 

Bonjour,
 
Je suis actuellement entrain de coder une macro qui permettrait de rechercher des macros dans les fichiers xls sur un disque dur, puis les lister.
Je travail par étape, pour l'instant je test l'ouverture, l'écriture (d'une simple bonjour), la sauvegarde, puis la fermeture du fichier destinataire
Actuellement je suis bloqué sur une erreur "Run-time error '9' : Subscript out of range" sur la ligne 72:
 
 

Code :
  1. Sub MacroTest()
  2. ' on efface les colonnes du resultat precedent
  3. Columns(1).Clear
  4. Columns(2).Clear
  5. Columns(3).Clear
  6. Columns(4).Clear
  7. Columns(5).Clear
  8. ' déclaration des variables
  9. Dim uneAppli As Excel.Application
  10. Dim leClasseur As Excel.Workbook
  11. Dim laSheet As Excel.Worksheet
  12. Dim unClasseur As Excel.Workbook
  13. Dim uneSheet As Excel.Worksheet
  14. Dim leRepertoireFichier As String
  15. Dim leNom As String
  16. Dim laTaille As Integer
  17. Dim leType As String
  18. Dim i As Integer
  19. Dim CountFile As Integer
  20. ' ouverture de l'application
  21. Set uneAppli = CreateObject("Excel.Application" )
  22. ' ouverture du classeur
  23. Set leClasseur = uneAppli.Workbooks.Open("P:\Test\liste_macro_G.xls" )
  24. ' mise en place de la premiere feuille du fichier
  25. Set laSheet = leClasseur.Worksheets("test" )
  26. ' debut de la boucle
  27. ' taille total de la recherche à indexé dans variable CountFile
  28. ' for i = 1 to .FoundFiles.Count step 1
  29.        
  30.         ' on active le classeur/feuille dans lequel on recherche le fichier
  31.         ' leClasseur.Activate
  32.         Worksheets("test" ).Activate
  33.        
  34.        
  35.         ' on effectue le test if macro inside
  36.         ' code à modifier, apparement le VBComponents permets de détecter de la macro inside
  37.         ' ActiveWorkbook.VBProject.VBComponents.  ActiveWorkbook.VBProject.VBComponents("Module1" )
  38.        
  39.        
  40.        
  41.         ' on récupere les differentes infos dont on a besoin
  42.         ' recupere le nom du fichier
  43.         ' Set leNom = ThisWorkbook.Name ---------------< a debloquer
  44.        
  45.         ' recupere la taille du fichier
  46.         ' Debug.Print FileLen("nomdufichier" )
  47.         ' Set laTaille = Workbooks(ActiveWorkbook.Name).FullName
  48.         ' Set laTaille = ThisWorkbook.FullName ---------------< a debloquer
  49.        
  50.         ' recupere le type du fichier <------- COMMENT QUALIFIER TYPE FICHIER
  51.         ' Set leType = michel
  52.        
  53.         ' recupere le repertoire du fichier
  54.         ' GetRelativePath
  55.         ' Set leRepertoire = Workbooks(ActiveWorkbook.Name).FullName ---------------< a debloquer
  56.        
  57.        
  58.        
  59.         Workbooks("P:\Test\liste_macro_G.xls" ).Worksheets("test" ).Cells(i, 1).Value = "bonjour"
  60.         'ThisWorkbook.Worksheets("test" ).Cells(i, 1).Value = "bonjour"
  61.        
  62.         Set leNom = "bonsoir"
  63.        
  64.         ' on ecrit dans la cellule du classeurRef
  65.         ' With ThisWorkbook.Sheets("test" )
  66.         With Workbooks("P:\Test\liste_macro_G.xls" ).Worksheets("test" )
  67.             .Cells(i, 1).Value = leNom
  68.             .Cells(i, 2) = leType
  69.             .Cells(i, 3) = laTaille
  70.             .Cells(i, 4) = leRepertoire
  71.             ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 5)
  72.             .Cells(i, 5) = leRepertoire
  73.         End With
  74.        
  75.        
  76.         ' on ferme le classeur dans lequel on recherche
  77.         ThisWorkbook.Close SaveChanges:=True
  78. ' fin de la boucle
  79. ' next
  80. ThisWorkbook.Close SaveChanges:=True
  81. End Sub


 
 
Vous avez une idée, car perso je n'arrive pas à trouver ce que veut dire l'erreur ???
Merci

mood
Publicité
Posté le 13-07-2009 à 12:19:17  profilanswer
 

n°1904906
seniorpapo​u
Posté le 13-07-2009 à 13:32:28  profilanswer
 

Bonjour,
la ligne 40 est en commentaire, est-volontaire??
 
Cordialement

n°1904907
replay
Posté le 13-07-2009 à 13:34:08  profilanswer
 

oui c'est normal, je fais un test sans la boucle, pour l'instant j'essaye juste de pouvoir ouvrir, ecrire, sauvegarder puis fermer
 
mais suis encore bloqué à l'ouverture..

n°1904908
seniorpapo​u
Posté le 13-07-2009 à 13:36:47  profilanswer
 

Il faut donner une valeur à i

n°1904909
replay
Posté le 13-07-2009 à 14:00:52  profilanswer
 

ah oui effectivement  
 
je test
 
edit: toujours la meme erreur sur
 
Workbooks("P:\Test\liste_macro_G.xls" ).Worksheets("test" ).Cells(1, 1).Value = "bonjour"
 
malgré le "i"


Message édité par replay le 13-07-2009 à 14:04:18
n°1904985
seniorpapo​u
Posté le 13-07-2009 à 18:05:29  profilanswer
 

Il est ouvert ton workbook et je pense que tu peux utiliser "leclasseur", je n'ai pas le temps d'approfondir, mais essaye cela en attendant:
 
Workbooks("liste_macro_G.xls" ).Worksheets("test" ).Cells(1, 1).Value = "bonjour"

n°1905291
replay
Posté le 15-07-2009 à 12:51:03  profilanswer
 

merci de ta réponse
j'ai réussi à débugguer
c'était dû au fait que j'esssayais d'ouvrir un classeur déjà ouvert...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Erreur out of range sur script

 

Sujets relatifs
VBA Excel[VBA] créer fichier excel à partir d'onglet
Besoin d 'aide pour combiner 2 script Javascript.[SQL SERVER 2005] Script de remplissage de table (BLUK INSERT & cie)
Erreur 1004 : La methode 'Cells' de l'objet '_Global' a échoué[VBA] Comment détecter les macros dans les classeurs .xls
[Résolu][VBA] Importer des données d'un fichier.txt[Résolu]VBA comment optimiser l'utilisation CPU dans un loop?
Addition toute bête en VBA (Macro Excel)Script de téléchargement de fichier
Plus de sujets relatifs à : [VBA] Erreur out of range sur script


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR