• Initiateur de la discussion Initiateur de la discussion mfaeko
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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.
 
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("A2😀1000").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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
385
Réponses
5
Affichages
770
Réponses
6
Affichages
804
Retour