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.
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!
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 édition: