Remplissage tableau suivant plusieurs critères

Bonjour à tous,

Je souhaite remplir un tableau excel basé sur un extrait d'un logiciel. Cependant je me retrouve coincé sur la stratégie à adopter pour remplir mon tableau. Voici quelques explications sur mon problème :

Je souhait remplir le tableau en pièce jointe (analyse restrictions) avec les données situées dans l'extrait (restrictions). Je voudrais dans mon tableau final avoir des croix/ des lettres ou autre pour savoir quand une restriction a eu lieu dans la période souhaitée par l'utilisateur.

Le problème est que pour un emplacement il peut y avoir plusieurs restrictions sur des périodes plus ou moins longues et ces restrictions peuvent être toujours valables encore aujourd'hui (cas ou la date est 01/01/3000).

J'ai pensé à utiliser la concaténation afin de lier un emplacement et une restriction afin de simplifier le problème mais je me retrouve avec encore trop de variables (il faudrait que je fasse des boucles dans des boucles) ce qui est trop compliqué pour moi.

Avez des suggestions à me proposer?

Si vous avez besoin de plus de précisions n'hésitez pas.

Merci par avance pour votre aide

Pierro26

12restrictions.xlsx (22.68 Ko)

Bonjour Pierro26,

un début de piste pour limiter les boucles,

est de vérifier si la date fait partie de la source

voici un exemple

Sub Test_DateIsBetween()
Set wk1 = Workbooks("Analyse restrictions.xlsm")
Set wk2 = Workbooks("Restrictions.xlsx")
d = wk1.Sheets("Suivi").Cells(8, 3) 'modifier cette ligne pour vérifier la date
dt1 = wk2.Sheets("Sheet").Range("D3")
dt2 = wk2.Sheets("Sheet").Range("E3")
t = DateIsBetween(d, dt1, dt2)
wk1.Sheets("Suivi").Cells(9, 3) = t
End Sub

Function DateIsBetween(dt, rng1, rng2) As Boolean
If dt >= rng1 And dt <= rng2 Then DateIsBetween = True
End Function

Salut i20100,

Tout d'abord merci pour ton retour.

Je viens de voir que j'ai oublié de préciser un point :

Il y a parfois des sortes de "doublons" dans l'extract. Je m'explique : lorsqu'une restriction est ouverte, il l'est pour une date de départ précise mais pour une date de fin indéfinie d'ou l'an 3000. lorsqu'elle est fermée, une ligne vient s'ajouter à l'extract : même info que lors de l'ouverture du point mais avec un date de fin précise.

De ce fait il faut que je fasse un tri des données (via une boucle) dans un premier temps. Par contre j'ai réfléchit un peu hier et j'ai réussi, via des boucles de boucles, à remplir mes cases :

'ajout des statuts des trains

For i = 7 To nblignereporting - 3
    For j = 2 To nbligneextract
        If BSuivi(i, 1) = BExtract(j, 1) And BExtract(j, 2) = BSuivi(1, 2) Then
            If BExtract(j, 4) > BSuivi(1, 5) And BExtract(j, 5) < BSuivi(1, 7) Then
                nbjoursrestriction = BExtract(j, 5) - BExtract(j, 4)
                For k = 3 To nbjours + 2
                    If BExtract(j, 4) = BSuivi(6, k) Then
                        For l = 0 To nbjoursrestriction
                            ws_Suivi.Cells(i, k + l) = "X"
                        Next l
                    End If
                Next k
            End If
            If BExtract(j, 4) > BSuivi(1, 5) And BExtract(j, 5) > BSuivi(1, 7) Then
            nbjoursrestriction1 = BSuivi(1, 7) - BExtract(j, 4)
                For k = 3 To nbjours + 2
                    If BExtract(j, 4) = BSuivi(6, k) Then
                        For l = 0 To nbjoursrestriction1
                            ws_Suivi.Cells(i + 2, k + l + 1) = "X"
                        Next l
                    End If
                Next k
            End If
            If BExtract(j, 4) < BSuivi(1, 5) And BExtract(j, 5) < BSuivi(1, 7) Then
            nbjoursrestriction1 = BSuivi(3, 6) - BExtract(j, 4)
                For l = 0 To nbjoursrestriction1
                    ws_Suivi.Cells(i, 3 + l) = "X"
                Next l
            End If
            If BExtract(j, 4) < BSuivi(1, 5) And BExtract(j, 5) > BSuivi(1, 7) Then
                For k = 3 To nbjours + 2
                    ws_Suivi.Cells(i, k) = "X"
                Next k
            End If
        End If
    Next j
Next i

Il y a encore quelques modifications à ajouter dans cette partie de code mais je pense etre sur la bonne voie (à confimer?)

Je vais essayer 'ajuster le code aujourd'hui et de trouver une boucle pour trier mes données dans mon extract mais si tu as des idées je suis preneur.

Merci pour ton aide!

Excellente journée

Pierro26

Rechercher des sujets similaires à "remplissage tableau suivant criteres"