[PROBLEME] Parcourir plusieurs feuilles Excel

  • Initiateur de la discussion Initiateur de la discussion Ezail
  • 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 !

E

Ezail

Guest
Bonjour à tous,

Je vous explique brièvement mon problème.

J'ai un classeur avec un nombre de feuilles que je ne connais pas à l'avance (ma macro doit pouvoir fonctionner pour n'importe quel nombre de feuilles). Ces feuilles sont toutes formatées de la même façon, en sorte que je ne doive m'occuper que du Range("D7:I114").

Le but principal de ma macro est de récupérer certaines données en fonction de ce range. Je vous mets mon code et mon fichier .xls en pièce jointe pour que vous compreniez plus facilement.

Code:
Sub macroplanning3()
    
Dim i As Integer
Dim Ctr As Integer
Dim ws As Worksheet
Dim Rng As Range
Dim compet As String


i = 4

For Each ws In Worksheets

compet = ws.Name

    Do While Ctr <= Worksheets.Count
    Ctr = 1


        For Each Rng In Range("D7:I114")

            If Rng = "EQUIF" Or Rng = "EQUIH" Or Rng = "DH" Or Rng = "DD" Or Rng = "DX" Or Rng = "OPENH" Or Rng = "OPEND" Or Rng = "OPENF" Then
            
                Worksheets(14).Cells((i + 1) / 3, "A").Value = Worksheets(Ctr).Cells((Rng.Row + 1), 1).Value              'heure
                Worksheets(14).Cells((i + 1) / 3, "B").Value = Worksheets(Ctr).Cells((Rng.Row + 1), 2).Value              'montées
                Worksheets(14).Cells((i + 1) / 3, "C").Value = Worksheets(Ctr).Cells((Rng.Row + 1), 3).Value              'utilisées
                i = i + 1
                Worksheets(14).Cells((i + 1) / 3, "D").Value = Worksheets(Ctr).Cells(Rng.Row, Rng.Column).Value           'compétition
                Worksheets(14).Cells((i + 1) / 3, "E").Value = Worksheets(Ctr).Cells((Rng.Row + 1), Rng.Column).Value     'phase
                i = i + 1
                Worksheets(14).Cells((i + 1) / 3, "F").Value = Worksheets(Ctr).Cells((Rng.Row + 2), Rng.Column).Value    'match
                Worksheets(14).Cells((i + 1) / 3, "G").Value = Worksheets(Ctr).Cells(3, Rng.Column).Value                 'table
                i = i + 1
                Worksheets(14).Cells((i + 1) / 3, "H").Value = compet
                i = i + 1
                
            End If
        Next Rng
    
    Ctr = Ctr + 1

    Loop
    
Next ws

End Sub

En fait, comme vous avez pu le voir, je dois récupérer dans une feuille à part, l'heure, le nombre de tables montées, le nombre de tables utilisées etc... J'arrive très bien à récupérer toutes ces valeurs pour une feuille mais je n'arrive pas à parcourir toutes les feuilles du classeur.

J'ai l'erreur suivante "L'indice n'appartient pas à la sélection" pour la première ligne à l'intérieur du If.

Merci de votre aide, si vous avez des questions pour pouvoir mieux m'aider, n'hésitez pas!
 

Pièces jointes

Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
917
Réponses
4
Affichages
738
Réponses
2
Affichages
528
Réponses
5
Affichages
575
Réponses
0
Affichages
663
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour