XL pour MAC Macro: erreur d'exécution "9"

luno123

XLDnaute Occasionnel
Bonjour,

J'ai une macro qui fonctionnait bien jusque là, et étrangement (certainement qualqu'un a effectué une fausse manip), désormais quand je la lance , j'ai une erreur (erreur d'exécution "9" : l'indice est en dehors des dimensions du tableau) qui s'affiche. J'arrive à la contourner mais serait-il possible de la corriger?

je vous remercie d'avance

Luno
 

Pièces jointes

  • TCD TOTAL AU 15 04 2021.xlsm
    57.3 KB · Affichages: 13

Dranreb

XLDnaute Barbatruc
Bonjour.
Essayez plutôt comme ça :
VB:
' -- Prise en compte de tous les onglets existants
For Each Wsh In ThisWorkbook.Worksheets
   Select Case Wsh.Name
      Case "COGESER - CCFM", "MASQUE": Wsh.Delete
      End Select: Next Wsh
 

luno123

XLDnaute Occasionnel
Remplacez par celle que j'indique la boucle où ça plante, avec le commentaire devant, que j'ai exprès reproduit pour que vous trouviez plus facilement où c'est.
Je ne sais pas si j'ai bien compris. J'ai remplacé dans ma macro (là où ça palnte:
If Workbooks(FichTotal).Sheets(u).Name = "COGESER - CCFM" Then
Workbooks(FichTotal).Sheets("COGESER - CCFM").Delete
End If


Par votre code et cela ne fonctionne toujours pas. J'imagine, que c'est moi qui n'ai rien compris.
 

Dranreb

XLDnaute Barbatruc
Avez vous bien remplacé toute la boucle depuis 'For u = 1 To Worksheets.Count' jusqu'à 'Next u' ?
Dans la mienne il n'y a pas de 'If Workbooks(FichTotal).Sheets(u).Name = "MASQUE"' susceptible de planter pour u=5 du fait qu'il n'y a plus que 4 feuilles juste après avoir supprimé la Sheets("COGESER - CCFM") !
 

luno123

XLDnaute Occasionnel
Avez vous bien remplacé toute la boucle depuis 'For u = 1 To Worksheets.Count' jusqu'à 'Next u' ?
Dans la mienne il n'y a pas de 'If Workbooks(FichTotal).Sheets(u).Name = "MASQUE"' susceptible de planter pour u=5 du fait qu'il n'y a plus que 4 feuilles juste après avoir supprimé la Sheets("COGESER - CCFM") !
Bonjour Dranreb, bonjour le forum,

J’ai testé la macro qui présente toujours quelques soucis.



  • En effet quand je vais sur le fichier « TCD TOTAL », je lance la macro dans l’onglet « MACRO »;
  • Je sélectionne le fichier « TOTAL au 15 04 2021 »
  • Après je saisis le numéro de facture (un au hasard)
  • J’ai un message d’erreur : traitement des écritures : « veillez vérifier les immats suivantes » :
  • Sauf que je n’ai rien en liste et les numéros d’immats sont exactes.

  • Un souci de format ?

  • Ci-joints les deux fichiers utilisés.

  • Merci d’avance

  • Luno
 

Pièces jointes

  • TCD TOTAL AU 15 04 2021[1].xlsm
    67.1 KB · Affichages: 4
  • FICHIER TOTAL AU 15 04 2021 .xls
    530 KB · Affichages: 2

Dranreb

XLDnaute Barbatruc
Bonjour.
Je n'ai pas étudié le reste de la programmation, je répondis juste au problème de suppression de feuilles.
Mais arrêtez de tout le temps consulter les collections WorkBooks et Worksheets. Définissez une bonne fois pour toutes avec quoi vous travaillez, au début de la macro, par des Set dans des variables As Workbook et As Worksheet.
 

luno123

XLDnaute Occasionnel
Bonjour.
Je n'ai pas étudié le reste de la programmation, je répondis juste au problème de suppression de feuilles.
Mais arrêtez de tout le temps consulter les collections WorkBooks et Worksheets. Définissez une bonne fois pour toutes avec quoi vous travaillez, au début de la macro, par des Set dans des variables As Workbook et As Worksheet.
Bonjour Dranreb,

Je n'ai pas compris votre remarque, désolé.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
C'est clair, au lieu de reconstituer 50 fois une même expression Worksheet par consultation de la collection Worksheets du genre Workbooks(LeNomDuClasseur).Worksheets(LeNomDeLaFeuille) remplacez cette expression par une variable déclarée Wsh As Worksheet et initialisée par Set Wsh = Workbooks(LeNomDuClasseur).Worksheets(LeNomDeLaFeuille)
 

Statistiques des forums

Discussions
312 104
Messages
2 085 339
Membres
102 865
dernier inscrit
FreyaSalander