Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

FOR EACH

9 réponses
Avatar
IMER09
Bonjour à tous

J'ai des formules dans D("SOLDE") je voudrai les effacer si A("DATE") est ""

J' ai utilise ce qui suis mais ça m'efface tout ce qu'il y a en D ("SOLDE").
Exit Sub est il obligatoire ?

For Each cell In Range("DATE")
If cell.Value = "" Then
Range("SOLDE").Formula = ""


Exit Sub
End If
Next

Merci d'avance
--
IMER09

9 réponses

Avatar
Philippe.R
Bonjour,
Range("SOLDE").Formula = ""
demande d'effacer les formules de la plage DATE, c'est donc normal
Pour n'effacer que la formule située en regard de celle du champ DATE si
elle est vide, le code devra être revu ainsi :

For Each cell In Range("DATE")
If cell.Value = "" Then
cell.Offset(0, 3).Formula = ""
End If
Next

--
Philippe.R
"IMER09" a écrit dans le message de
news:
Bonjour à tous

J'ai des formules dans D("SOLDE") je voudrai les effacer si A("DATE") est
""

J' ai utilise ce qui suis mais ça m'efface tout ce qu'il y a en D
("SOLDE").
Exit Sub est il obligatoire ?

For Each cell In Range("DATE")
If cell.Value = "" Then
Range("SOLDE").Formula = ""


Exit Sub
End If
Next

Merci d'avance
--
IMER09


Avatar
Daniel
Bonjour.
Pour répondre à ta question, non, mais c'est logique, parce que, si la plage
SOLDE est effacée une fois, le travail est fait, donc il est inutile de
continuer la boucle. Si tu veux effacer la cellule correspondante de SOLDE
(colonne D ?) quand la cellule de DATE (colonne A ?) est égale à "" :

For Each cell In Range("DATE")
If cell.Value = "" Then
cell.Offset(0, 3) = ""
End If
Next

Cordialement.
Daniel
"IMER09" a écrit dans le message de news:

Bonjour à tous

J'ai des formules dans D("SOLDE") je voudrai les effacer si A("DATE") est
""

J' ai utilise ce qui suis mais ça m'efface tout ce qu'il y a en D
("SOLDE").
Exit Sub est il obligatoire ?

For Each cell In Range("DATE")
If cell.Value = "" Then
Range("SOLDE").Formula = ""


Exit Sub
End If
Next

Merci d'avance
--
IMER09


Avatar
IMER09
Merci Philippe.R

mais sans Exit Sub je suis obliger de quitter par Alt ctrl Suppr, et avec
Exit Sub
J' efface que la formule de la premiere cellule trouver
--
IMER09



Bonjour,
Range("SOLDE").Formula = ""
demande d'effacer les formules de la plage DATE, c'est donc normal
Pour n'effacer que la formule située en regard de celle du champ DATE si
elle est vide, le code devra être revu ainsi :

For Each cell In Range("DATE")
If cell.Value = "" Then
cell.Offset(0, 3).Formula = ""
End If
Next

--
Philippe.R
"IMER09" a écrit dans le message de
news:
Bonjour à tous

J'ai des formules dans D("SOLDE") je voudrai les effacer si A("DATE") est
""

J' ai utilise ce qui suis mais ça m'efface tout ce qu'il y a en D
("SOLDE").
Exit Sub est il obligatoire ?

For Each cell In Range("DATE")
If cell.Value = "" Then
Range("SOLDE").Formula = ""


Exit Sub
End If
Next

Merci d'avance
--
IMER09






Avatar
IMER09
autant pour moi je n'etait pas assez patient pas besoin de Alt Ctrl Suppr
--
IMER09



Bonjour,
Range("SOLDE").Formula = ""
demande d'effacer les formules de la plage DATE, c'est donc normal
Pour n'effacer que la formule située en regard de celle du champ DATE si
elle est vide, le code devra être revu ainsi :

For Each cell In Range("DATE")
If cell.Value = "" Then
cell.Offset(0, 3).Formula = ""
End If
Next

--
Philippe.R
"IMER09" a écrit dans le message de
news:
Bonjour à tous

J'ai des formules dans D("SOLDE") je voudrai les effacer si A("DATE") est
""

J' ai utilise ce qui suis mais ça m'efface tout ce qu'il y a en D
("SOLDE").
Exit Sub est il obligatoire ?

For Each cell In Range("DATE")
If cell.Value = "" Then
Range("SOLDE").Formula = ""


Exit Sub
End If
Next

Merci d'avance
--
IMER09






Avatar
IMER09
En fait c'est tres long meme en diminuant ma selection a 5000 Cell
Comment diminuer ce temps ?
Merci
--
IMER09



Bonjour.
Pour répondre à ta question, non, mais c'est logique, parce que, si la plage
SOLDE est effacée une fois, le travail est fait, donc il est inutile de
continuer la boucle. Si tu veux effacer la cellule correspondante de SOLDE
(colonne D ?) quand la cellule de DATE (colonne A ?) est égale à "" :

For Each cell In Range("DATE")
If cell.Value = "" Then
cell.Offset(0, 3) = ""
End If
Next

Cordialement.
Daniel
"IMER09" a écrit dans le message de news:

Bonjour à tous

J'ai des formules dans D("SOLDE") je voudrai les effacer si A("DATE") est
""

J' ai utilise ce qui suis mais ça m'efface tout ce qu'il y a en D
("SOLDE").
Exit Sub est il obligatoire ?

For Each cell In Range("DATE")
If cell.Value = "" Then
Range("SOLDE").Formula = ""


Exit Sub
End If
Next

Merci d'avance
--
IMER09







Avatar
Daniel
Essaie :
Sub test()
Dim c As Range, ResAdr As String
Set c = Range("DATE").Find("", , , xlWhole)
Var = c.Address
If Not c Is Nothing Then ResAdr = c.Address
Do
c.Offset(, 3) = ""
Set c = Range("DATE").FindNext(c)
Loop While Not c Is Nothing And c.Address <> ResAdr
End Sub
Daniel
"IMER09" a écrit dans le message de news:

En fait c'est tres long meme en diminuant ma selection a 5000 Cell
Comment diminuer ce temps ?
Merci
--
IMER09



Bonjour.
Pour répondre à ta question, non, mais c'est logique, parce que, si la
plage
SOLDE est effacée une fois, le travail est fait, donc il est inutile de
continuer la boucle. Si tu veux effacer la cellule correspondante de
SOLDE
(colonne D ?) quand la cellule de DATE (colonne A ?) est égale à "" :

For Each cell In Range("DATE")
If cell.Value = "" Then
cell.Offset(0, 3) = ""
End If
Next

Cordialement.
Daniel
"IMER09" a écrit dans le message de news:

Bonjour à tous

J'ai des formules dans D("SOLDE") je voudrai les effacer si A("DATE")
est
""

J' ai utilise ce qui suis mais ça m'efface tout ce qu'il y a en D
("SOLDE").
Exit Sub est il obligatoire ?

For Each cell In Range("DATE")
If cell.Value = "" Then
Range("SOLDE").Formula = ""


Exit Sub
End If
Next

Merci d'avance
--
IMER09









Avatar
Ellimac
Bonjour,

Une solution ultra rapide, sélection des cellules vides en A et effacement
des cellules correspondantes en D :

Sub Macro1()
Columns("A:A").SpecialCells(xlCellTypeBlanks).Offset(, 3).ClearContents
End Sub

Camille

"IMER09" wrote:

En fait c'est tres long meme en diminuant ma selection a 5000 Cell
Comment diminuer ce temps ?
Merci
--
IMER09



Bonjour.
Pour répondre à ta question, non, mais c'est logique, parce que, si la plage
SOLDE est effacée une fois, le travail est fait, donc il est inutile de
continuer la boucle. Si tu veux effacer la cellule correspondante de SOLDE
(colonne D ?) quand la cellule de DATE (colonne A ?) est égale à "" :

For Each cell In Range("DATE")
If cell.Value = "" Then
cell.Offset(0, 3) = ""
End If
Next

Cordialement.
Daniel
"IMER09" a écrit dans le message de news:

Bonjour à tous

J'ai des formules dans D("SOLDE") je voudrai les effacer si A("DATE") est
""

J' ai utilise ce qui suis mais ça m'efface tout ce qu'il y a en D
("SOLDE").
Exit Sub est il obligatoire ?

For Each cell In Range("DATE")
If cell.Value = "" Then
Range("SOLDE").Formula = ""


Exit Sub
End If
Next

Merci d'avance
--
IMER09









Avatar
IMER09
Un grand merci à vous tous c'est parfait
--
IMER09



Essaie :
Sub test()
Dim c As Range, ResAdr As String
Set c = Range("DATE").Find("", , , xlWhole)
Var = c.Address
If Not c Is Nothing Then ResAdr = c.Address
Do
c.Offset(, 3) = ""
Set c = Range("DATE").FindNext(c)
Loop While Not c Is Nothing And c.Address <> ResAdr
End Sub
Daniel
"IMER09" a écrit dans le message de news:

En fait c'est tres long meme en diminuant ma selection a 5000 Cell
Comment diminuer ce temps ?
Merci
--
IMER09



Bonjour.
Pour répondre à ta question, non, mais c'est logique, parce que, si la
plage
SOLDE est effacée une fois, le travail est fait, donc il est inutile de
continuer la boucle. Si tu veux effacer la cellule correspondante de
SOLDE
(colonne D ?) quand la cellule de DATE (colonne A ?) est égale à "" :

For Each cell In Range("DATE")
If cell.Value = "" Then
cell.Offset(0, 3) = ""
End If
Next

Cordialement.
Daniel
"IMER09" a écrit dans le message de news:

Bonjour à tous

J'ai des formules dans D("SOLDE") je voudrai les effacer si A("DATE")
est
""

J' ai utilise ce qui suis mais ça m'efface tout ce qu'il y a en D
("SOLDE").
Exit Sub est il obligatoire ?

For Each cell In Range("DATE")
If cell.Value = "" Then
Range("SOLDE").Formula = ""


Exit Sub
End If
Next

Merci d'avance
--
IMER09














Avatar
Philippe.R
Pour ma part c'était avec plaisir, d'autant que j'en ai profité pour
m'enrichir de la solution d'Ellimac
;o)))
--
Philippe.R
"IMER09" a écrit dans le message de
news:
Un grand merci à vous tous c'est parfait
--
IMER09



Essaie :
Sub test()
Dim c As Range, ResAdr As String
Set c = Range("DATE").Find("", , , xlWhole)
Var = c.Address
If Not c Is Nothing Then ResAdr = c.Address
Do
c.Offset(, 3) = ""
Set c = Range("DATE").FindNext(c)
Loop While Not c Is Nothing And c.Address <> ResAdr
End Sub
Daniel
"IMER09" a écrit dans le message de news:

En fait c'est tres long meme en diminuant ma selection a 5000 Cell
Comment diminuer ce temps ?
Merci
--
IMER09



Bonjour.
Pour répondre à ta question, non, mais c'est logique, parce que, si la
plage
SOLDE est effacée une fois, le travail est fait, donc il est inutile
de
continuer la boucle. Si tu veux effacer la cellule correspondante de
SOLDE
(colonne D ?) quand la cellule de DATE (colonne A ?) est égale à "" :

For Each cell In Range("DATE")
If cell.Value = "" Then
cell.Offset(0, 3) = ""
End If
Next

Cordialement.
Daniel
"IMER09" a écrit dans le message de
news:

Bonjour à tous

J'ai des formules dans D("SOLDE") je voudrai les effacer si
A("DATE")
est
""

J' ai utilise ce qui suis mais ça m'efface tout ce qu'il y a en D
("SOLDE").
Exit Sub est il obligatoire ?

For Each cell In Range("DATE")
If cell.Value = "" Then
Range("SOLDE").Formula = ""


Exit Sub
End If
Next

Merci d'avance
--
IMER09