Bonjour
ciboulette05 a écrit :
Mais aussi que certaines références sont modifiées :tabloF(i, j) au lieu de tabloF(i - 1, J - 1)
Ce n’est pas très important. Si dans le premier cas i = 1, j = 1 et dans le deuxième i =2, j = 2 tu comprendras que
TabloF(i, j) du premier cas égale TbloF(i-1, j-1) du deuxième.
Si j'ai bien compris, la boucle teste si la cellule est vide ou doit contenir un nom
Ce n’est pas tout à fait cela car on ne peut plus parler de cellule au sens de feuille de calcul Excel.
En effet, pour que les calculs s’effectuent beaucoup plus vite qu’en travaillant sur les cellules des différentes feuilles, je commence a mettre les tableaux de ces feuilles dans une variable ‘’Tableau’’ :
tabloP = Sheets("planning02").Range("A3:OO21")
Ainsi, en une seule instruction, j’ai défini chacune des 8505 cellules de la plage en question par une variable.
tabloR = tabloP = Sheets("planning02").Range("A3:OO21")
Avec cette instruction, je défini mon tabloR comme une partie du tableau de la feuille RESA, celle qui contient les données (sans les titres).
En travaillant sur des variables tableaux, la référence de départ n’est pas forcément la même que celle de la feuille de calcul, mais c’est toujours la variable qui est en haut et à gauche du tableau.
La valeur de tabloR(2,4), par exemple, n’est pas celle de la cellule D2 de la feuille ‘’RESA’’ mais de la 2° ligne et 4° colonne de tabloR, soit : ‘’Germaine’’
Quant à tabloF (F pour final) je l’ai défini au départ comme étant le même que tabloP. Il me faut donc en passant chaque donnée qu’il contient, hors celles concernant les n° de chambre, les Types (2 premières colonnes) et les dates (titres des colonnes) commencer par les effacer avant de calculer la valeur que je dois leur donner.
Pour cela, et pour chacune des variables de TabloP (rappel : il y en a 8505), on regarde si dans chacune des lignes de tabloR il y en a une pour laquelle :
• La variable de la colonne 1 a la même valeur que la variable qui est sur la même ligne que celle de tabloP mais en colonnne 1 : même numéro de chambre
• La variable de la colonne 10 est inférieure ou égale à la variable qui est sur la même colonne que celle du taboP mais sur la ligne1 (date d’arrivée)
• La variable de la colonne 11 est supérieure à la variable qui est sur la même colonne que celle du taboP mais sur la ligne1 (date d’arrivée)
Et si c’est le cas, on écrit dans la variable correspondante de taboF le nom le la variable tabloR qu’on a sur la colonne 3
Quand toutes les cellules ont été passées, il ne reste plus qu'à coller TabloF sur la feuille de calcul ''planning02''
J’espère que ces quelques explications t’éclaireront.
Bye !