Bonjour
1) Ton incompatibilité de type résulte de ceci :
For Each cellule In Columns(r)
In Columns(r).quoi ?
(quoi, ce sont des cellules, non ?) --->> In columns(r).Cells
2) Parcourir la totalité des cellules d'une colonne est peu sage. Il ne faut pas parcourir inutilement au delà de la dernière ligne remplie .
3) A quoi t'est utile de sélectionner ainsi la cellule E4 :
Pour ... en déterminer le N° de ligne ? Tu le connais ! C'est 4 !
et du coup :
r = 4
et
Workbooks("blabla.xlsm").Sheets("Feuil2").Cells(r, r).Value = r
n'est finalement rien d'autre que :
Workbooks("blabla.xlsm").Sheets("Feuil2").Cells(4, 4).Value =4
ou
Workbooks("blabla.xlsm").Sheets("Feuil2")Range("D4").Value =4
Mais tout cela devient totalement inutile, dès lors que ce que tu veux finalement faire est donner la valeur 4 aux cellules de la colonne 4 qui contiendraient la valeur 5 !
Ouvre donc vite ton aide interne VBA à la rubrique Range.Replace, méthode, lis et applique ! Nul besoin de tout ton code !
Partager