Je t'invite à indenter ton code. C'est tellement plus lisible. Et cela permet de mieux se relire. C'est un vieux truc de développeurs :
http://fr.wikipedia.org/wiki/Indentation pour toi le novice
Tu as oublié de
Dimensionner x et y. Ce n'est pas grave, VB est tellement permissif. Ajoute l'Option Explicit pour éviter d'oublier des "trucs" dans ton code, il en sera beaucoup plus facile à corriger en cas de bug.
ActiveCell, c'est la cellule active au moment où on appelle cette méthode, donc lignes 3 et 4. Quand tu t'en sers à nouveau, ligne 9, les valeurs de y et z ne sont pas remise à jour. C'est donc entre le For et le Next qu'il faut réinitialiser y et z, à chaque tour de boucle.
Sheets, c'est la collection de tous les onglets, c'est-à-dire aussi bien les feuilles de calcul que les graphes. Seules les feuilles de calcul t'intéressent, alors utilise plutôt la collection WorkSheets.
Comme ça, regarde : (Code à bien comprendre pour que ça te soit profitable. Si tu as des questions, n'hésite pas, même naïves
![;) ;)]()
)
Sub TaMacro()
Dim row As Long
Dim col As Long
Dim cel As Range
For Each cel In Selection
row = cel.Row
col = cel.Col
If WorkSheets("1 Fam" ).Cells(row, col).Value < 5 Then
cel.Value = ""
End If
Next cel
End Sub
Quand tu ne seras plus un novice, tu l'écriras comme ça :
Sub ZeroSiTropPetit(zone As Range, mini As Integer)
Dim cel As Range
For Each cel In zone
If WorkSheets("1 Fam" ).Cells(cel.Row, cel.Row).Value < mini Then
cel.Value = ""
End If
Next cel
End Sub
Sub TaMacro()
ZeroSiTropPetit Selection, 5
End Sub
Toutes ces explications pour que tu quittes rapidement l'état de novice qui ose à peine poser des questions naïves.