Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Erreur '9'

mfaeko

XLDnaute Nouveau
Bonjour,

J'ai un fichier excel qui fonctionnait bien mais depuis quelques jours il y a un bug dans une macro. Elle sert à copier des informations d'un fichier à un autre (de Livre de recettes à Suivi alimentaire (menus, liste des courses, dépenses)).

VB:
Sub MàJliste()                    ' MàJ des catégories
Dim wb As Workbook, LigneSuivi As Integer, LigneLivre As Integer
Application.ScreenUpdating = False
Chemin = Workbooks(ActiveWorkbook.Name).Path & "\"                      ' Chemin fichier courant (suivi alim.)
Set wb = Workbooks.Open(Chemin & "Livre de recettes.xlsm")   ' Chemin fichier à adapter si necessaire
Windows("Suivi alimentaire (menus, liste des courses, dépenses).xlsm").Activate
Range("A2:D1000").ClearContents
Set f = Workbooks("Livre de recettes.xlsm")
' Ici un extrait des données à copier, normalement pas de problème pour ces codes
LigneSuivi = 2
LigneLivre = 3
    While f.Sheets(2).Range("M" & LigneLivre) <> ""             ' Dessert
    Cells(LigneSuivi, 3) = f.Sheets(2).Range("M" & LigneLivre)
    LigneLivre = LigneLivre + 1
    LigneSuivi = LigneSuivi + 1
    Wend
Range("C2:C1000").Sort Key1:=Range("C2"), Order1:=xlAscending

Workbooks("Livre de recettes.xlsm").Close

End Sub

Je précise que les deux fichiers se trouvent dans le même dossier.
Le bug apparaît à la ligne Windows avec une erreur '9' L'indice n'appartient pas à la sélection. Auriez-vous une idée d'où vient le problème ? J'ai cherché sur des forums mais même en changeant la formule, ça ne résout pas mon problème.

Merci d'avance,
Mfaeko.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Mfaeko,
En lançant de votre macro sur un fichier vierge, j'obtiens la même erreur.
Donc probablement :
- Votre fichier "Suivi alimentaire (menus, liste des courses, dépenses).xlsm" n'est pas ouvert
- Il a changé de nom
- Il a changé d'emplacement.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @mfaeko , le Forum

Dans ce code :
Set wb = Workbooks.Open(Chemin & "Livre de recettes.xlsm") ' Chemin fichier à adapter si necessaire
Windows("Suivi alimentaire (menus, liste des courses, dépenses).xlsm").Activate
Range("A21000").ClearContents

Tu n'as pas besoin de faire appel à Windows("Blahblah").activate. si c'est pour faire le clear de Range ensuite...
Il sufit de faire le Set de la Range que tu veux nettoyer...

Un appel à Windows pour activer des fenêtre quand on reste dans Excel est assez bricolo...

Bonne journée
@+Thierry

EDIT Salut Sylvanu
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…