bonjour,
alors voici
dim tabp(38,18) ---> ça correspond à quoi 38 et 18 ?
En fait cela aurait dû être dim tabp(30,18) pour correspondre exactement à la plage de cellules E8:W38. (31 lignes (de 0 à 30) et 19 colonnes (de 0 à 18)).
tabp est un tableau géré par VBA, qui contient les données à mettre dans la plage E8:W38.Un tableau VBA est utilisé pour des raisons de performances. En effet, les interactions avec la feuille de calcul (surtout en écriture) ont un gros impact sur la vitesse d'exécution des macros.
If re Is Nothing Then
tabp(i - 8, ip - 5) = "" 'pas trouvé
Else
tabp(i - 8, ip - 5) = wst.Cells(jour + 3, re.Column) 'trouvé
End If
que signifie tabp(i -8, ip -5) ?
dans ce code, i est le numéro de ligne et ip est un numéro de colonne.
Une boucle fait varier i de 8 à 38 (ceci pour prendre la date dans la bonne ligne) et une autre boucle fait varier ip de 5 à 23 (colonne E à W) ceci pour prendre le nom de la personne). la ligne 8 correspond à la ligne 0 du tableau tabp (d'où le i-8 pour avoir 0) et la colonne E correspond à la colonne 0 du tableau tabp (d'où le ip-5 pour avoir 0).
Le tableau chargé avec toutes les données est ensuite copié sur la feuille en une seule instruction.
wsm.Range("E8:W38") = tabp 'copie du tableau planning sur la feuille