jmfmarques : Je me suis mal exprimé. Quand je disais "pur VBA", je voulais dire qu'en allant directement dans l'Editeur taper avec ses petits doigts boudinés les quelques lignes de code aptes à faire notre bonheur. Bien sûr que l'éditeur de macro va fonctionner pour obtenir ce qu'il veut, par contre, jamais au grand jamais il n'écrira la définition d'une cellule avec cette syntaxe (ou alors effectivement, j'étais absent le jour de la distribution)
Pour la simple et bonne raison qu'avec l'éditeur de macro, on ne peut pas écrire de boucle pour défiler toute les cellules d'une plage.
Je vois très bien comment substituer les coordonnées d'une plage par les références de cellules, mais, et c'est ça qui est bien avec le VBA, tu peux remplacer des bouts de code par leur équivalent et relancer la macro aussitôt, et quand même parfois te retrouver avec des erreurs d'exécution '9' bien connue. Après, tout dépend du code et là, il nous manque plein de choses pour comprendre.
Jpeg69 : Ton exemple
Index = 2
Worksheets("Feuil1").Range( Cells( Index * 6, 7 ), Cells( Index * 6, 10 ) ).ClearContents
Il manque des choses. De mémoire, il me semble avoir déjà eu ce problème, si ta variable Index est de type String, ça plante, il faut un Integer pour que cela fonctionne, donc soit modifier le type de ta variable, soit l'encadrer d'un Cint( ).
Autrement, ce code fonctionne très bien sous EXCEL 2003 à condition bien entendu que le code soit attaché à "Feuil1". Si ce code se trouve par exemple dans "Feuil2" et que tu veuilles supprimer des cellules dans "Feuil1", c'est insuffisant, il faudrait :
Worksheets("Feuil1").Range( Worksheets("Feuil1").Cells( Index * 6, 7 ), Worksheets("Feuil1").Cells( Index * 6, 10 ) ).ClearContents
Molenn