Bonjour tout le monde,
Tout d'abord je vais être honnête avec vous, je n'ai pas pris le temps de regarder chaque post pour savoir s'il existait déjà une discussion sur le problème que j'ai, je m'en excuse d'avance si c'est le cas.
Venons-en au fait.
Le problème est le suivant, je dois récupérer des données dans un tableau Excel, pour pouvoir ensuite les importer dans une base de données. Pas compliqué jusque là, mais le tableau est assez mal fait. Je vous mets un lien pour que vous puissiez le télécharger et y jeter un coup d'oeil (regardez le premier feuillet "29 août", les autres feuillets ayant tous le même "format", une seule macro devrait suffir).
Ce lien n'existe plus
Donc mon code est le suivant pour le moment :
Sub aout29()
Dim i As Integer
Dim ws As Worksheet
Dim Rng As Range
i = 6
For Each Rng In Range("D7:I114")
If Rng = "EQUIF" Or Rng = "EQUIH" Then
Worksheets(13).Cells((i + 1) / 3, "A").Value = Worksheets(2).Cells((Rng.Row + 1), 1).Value 'heure
Worksheets(13).Cells((i + 1) / 3, "B").Value = Worksheets(2).Cells((Rng.Row + 1), 2).Value 'montées
Worksheets(13).Cells((i + 1) / 3, "C").Value = Worksheets(2).Cells((Rng.Row + 1), 3).Value 'utilisées
Worksheets(13).Cells((i + 1) / 3, "D").Value = Worksheets(2).Cells(Rng.Row, Rng.Column).Value 'compétition
Worksheets(13).Cells((i + 1) / 3, "E").Value = Worksheets(2).Cells((Rng.Row + 1), Rng.Column).Value 'phase
Worksheets(13).Cells((i + 1) / 3, "F").Value = Worksheets(2).Cells((Rng.Row + 2), Rng.Column).Value 'match
i = i + 1
End If
Next
End Sub
Le problème avec ce code, c'est qu'il récupère seulement la première colonne de chaque première cellules qui contient "EQUIF" ou "EQUIH" puisque la condition est que SI Rng = "EQUIF" OU "EQUIH" alors il exécute la boucle.
Ce que je voudrais avoir c'est un tableau avec 6 colonnes :
Heure - Tables montées - Tables utilisées - Compétition (EQUIF ou EQUIH) - Phase (P1 ou P2) - Match (2/7, 3/6 etc.)
Donc pour 9h00 par exemple, je devrais avoir 6 lignes, or j'en ai que deux.
Je suis sûr que ça sera facilement résolu grâce à vos talents 😛
Merci beaucoup, si vous avez des questions allez-y.
Bisoux.
Tout d'abord je vais être honnête avec vous, je n'ai pas pris le temps de regarder chaque post pour savoir s'il existait déjà une discussion sur le problème que j'ai, je m'en excuse d'avance si c'est le cas.
Venons-en au fait.
Le problème est le suivant, je dois récupérer des données dans un tableau Excel, pour pouvoir ensuite les importer dans une base de données. Pas compliqué jusque là, mais le tableau est assez mal fait. Je vous mets un lien pour que vous puissiez le télécharger et y jeter un coup d'oeil (regardez le premier feuillet "29 août", les autres feuillets ayant tous le même "format", une seule macro devrait suffir).
Ce lien n'existe plus
Donc mon code est le suivant pour le moment :
Sub aout29()
Dim i As Integer
Dim ws As Worksheet
Dim Rng As Range
i = 6
For Each Rng In Range("D7:I114")
If Rng = "EQUIF" Or Rng = "EQUIH" Then
Worksheets(13).Cells((i + 1) / 3, "A").Value = Worksheets(2).Cells((Rng.Row + 1), 1).Value 'heure
Worksheets(13).Cells((i + 1) / 3, "B").Value = Worksheets(2).Cells((Rng.Row + 1), 2).Value 'montées
Worksheets(13).Cells((i + 1) / 3, "C").Value = Worksheets(2).Cells((Rng.Row + 1), 3).Value 'utilisées
Worksheets(13).Cells((i + 1) / 3, "D").Value = Worksheets(2).Cells(Rng.Row, Rng.Column).Value 'compétition
Worksheets(13).Cells((i + 1) / 3, "E").Value = Worksheets(2).Cells((Rng.Row + 1), Rng.Column).Value 'phase
Worksheets(13).Cells((i + 1) / 3, "F").Value = Worksheets(2).Cells((Rng.Row + 2), Rng.Column).Value 'match
i = i + 1
End If
Next
End Sub
Le problème avec ce code, c'est qu'il récupère seulement la première colonne de chaque première cellules qui contient "EQUIF" ou "EQUIH" puisque la condition est que SI Rng = "EQUIF" OU "EQUIH" alors il exécute la boucle.
Ce que je voudrais avoir c'est un tableau avec 6 colonnes :
Heure - Tables montées - Tables utilisées - Compétition (EQUIF ou EQUIH) - Phase (P1 ou P2) - Match (2/7, 3/6 etc.)
Donc pour 9h00 par exemple, je devrais avoir 6 lignes, or j'en ai que deux.
Je suis sûr que ça sera facilement résolu grâce à vos talents 😛
Merci beaucoup, si vous avez des questions allez-y.
Bisoux.