Re : Publier en tant que page web avec plage de cellules variable
Salut Ewigefrost,
"xlUp" fonctionne comme "xlDown"
Pour te faire une idée, il faut utiliser l'enregistreur de macro. Si tu le fait :
-> lancer l'enregistreur
-> sélectionner la dernière cellule en bas
-> remonter vers le haut jusqu'à la première cellule pleine : touche "Ctrl" + flèche vers le haut
-> arrêter l'enregistreur
Tu obtiens une macro dans ce genre :
Range("C65536").Select
Selection.End(xlUp).Select
Qui évidement peut se simplifier ainsi :
Range("C65536").End(xlUp).Select
Voir même :
[C65536].End(xlUp).Select
Bref, cette macro sélectionne la fameuse cellule. Un peu complexe, lourd et pas pratique à utiliser dans une macro. Surtout qu'en plus, si tu dois l'utiliser à chaque fois, ta macro ferra l'opération à CHAQUE fois!
C'est pourquoi, généralement on fait ainsi (utilisation d'une variable) :
-> on définit notre variable
Dim DernièreLigne as Long
-> on cherche non pas la dernière cellule mais le numéro de cette fameuse ligne
Ce qui donne pour ta macro :
DernièreLigne = [C65536].End(xlUp).Row
Ainsi, maintenant au cour de ta macro, à chaque fois que tu auras besoin de ce numéro de ligne, tu auras juste à écrire :
DernièreLigne, chose plus simple, plus facile à écrire et intégrer dans ton code, plus rapide à exécuter pour Excel.
Bref, concrétement, dans ta macro cela donnerais ceci (à tester) :
Dim DernièreLigne as Long
DernièreLigne = [N65536].End(xlUp).Row
[...]
With ActiveWorkbook.PublishObjects.Add(xlSourceRange, _
"E:\blablabla.htm" _
, "TCD ALU", "$N$2:$W$" & DernièreLigne, xlHtmlStatic, "nomfichier", "")
.Publish (True)
.AutoRepublish = True
End With
[...]
Astuces complémentaires :
1/ Pour définir un nom de variable, il faut que le nom soit parlant. Comme tu n'as pas le droit d'utiliser d'espace, tu colle les mots, met une majuscule à la première lettre de chaque mot. Les gens qui font des "page web", par habitude, ne mettrons pas d'accent (ni de majuscule), mais pour Excel, pas de soucis, il gère cela très bien.
2/ Comme tu peux le voir, j'ai mis le chiffre 65536 comme dernier numéro de ligne, c'est parce que j'utilise la version 2003 d'excel et que cette dernière compte 65536 lignes. Par contre, si tu utilise Excel 2007, il faut savoir qu'il posséde 1 048 576 lignes. Donc dans ce cas il convient de remplacer 65536 par 1048576
3/ j'ai utilisé la colonne N : [N65536] au hasard, mais j'aurais pu aussi très bien utilisé dans ton cas de figure : "N" ou "O" ou ... ou "W", puisque toutes ces colonnes font partie de ton tableau. L'idéal c'est de choisir LA colonne où tu es sûr qu'il y aura toujours quelque chose de renseigné (ne connaissant pas ton tableau, tu es le seul à le savoir).
Bonne journée
A+
PS. : si j'ai été un peu nébuleux sur un point, n'hésite pas.