Option Explicit
Dim i As Integer
Dim cel As Range
Sub Del()
Application.ScreenUpdating = False
For i = 4 To Range("A65536").End(xlUp).Row
If Cells(i, 2) = 1 Then Cells(i, 1).ClearContents
Next
End Sub
peux-tu m'expliquer l'intérêt de "Dim cel as Range" ?
Bonjour,
Sub Del()
Dim i As Integer 'declaration de la variable
Application.ScreenUpdating = False
For i = 4 To Range("A65536").End(xlUp).Row
cells(i,6).value=cells(i,2).value
cells(i,3).value=cells(i,1).value
If Cells(i, 2) = 1 Then Cells(i, 1).ClearContents
Next
End Sub
Option Explicit
Dim i As Integer
Sub Del()
Application.ScreenUpdating = False
For i = 4 To Range("C65536").End(xlUp).Row
If Cells(i, 6) = 1 Then Cells(i, 3).ClearContents
Next
End Sub
Option Explicit : Oblige à Déclarer les Variables
Dim i As Integer : valeur est comprise entre -32 768 et 32 767
Sub Del() Application.ScreenUpdating = False : Masque les actions à l'écran
For i = 4 To Range("C65536").End(xlUp).Row : de la ligne 4 à la dernière cellulle non vide de la colonne C
If Cells(i, 6) = 1 Then Cells(i, 3).ClearContents : Si F4 = 1 alors effacer C4 (Cells (4,6) = cellule de la ligne 4 et de la colonne 6 donc F4
Next : ligne suivante End Sub
A+
Edition : Salut Lii, deux explications valent mieux qu'une dépose de code sans commentaires A++
Il est conseillé de déclarer ses variables : on repère plus facilement des
erreurs qui leur sont dues quand il y en a.
On peut rendre cela obligatoire : dans l'éditeur, Outils, Options et cocher "Déclaration des variables obligatoire".
Cela provoquera l'affichage dans chaque module de l'expression "Option Explicit"
J'ai pris aussi l'habitude de mettre la lettre ou l'initiale d'une variable en majuscule : on repère plus facilement des erreurs qui leur sont dues lors de la compilation automatique.
Autre interprétation de ta demande : les 0 et 1 sont déjà en colonne F et les noms en colonne C.
Code:
Sub Del()
Dim I As Integer 'si le nombre de lignes est inférieur à 32467, si plus choisir LongApplication.ScreenUpdating = False
For I = 4 To Range("F65536").End(xlUp).Row
If Range("F" & I) = 1 Then Range("C" & I).ClearContents
Next
End Sub
Remarque : Range("F" & I) peut être remplacé par Cells(I,6) la colonne F étant la sixième (ordre alphabétique).