Bonjour,
Il y a une chose que je ne m'explique pas.
Le code suivant met une formule dans chaque cellule de ma sélection.
Tout marche parfaitement sauf que à la fin de ma procédure, la formule en A2
a disparu et est remplacée par sa valeur.
En pas à pas, je vois bien ma formule placée en A2 mais après le End Sub, la
formule a dispar et est donc remplacée par la valeur
Est-ce un mystère de la boucle For Each ... ou quelque chose qui m'échappe ?
Sub ConvertDelai()
Range("A2:A20").Select
Set MaPlage = Selection
For Each Cell In MaPlage
If IsEmpty(Cell.Offset(0, 3)) Then
ActiveCell.Value = ActiveCell.Value
Else
Cell.FormulaR1C1 = _
"=IF(R[1]C[-7]-R[1]C[-9]<=14,0,IF(RC7=""FOKKER"",(RC20-RC15)+3,IF(RC7=""MATI
S"",(RC20-RC15)+3,IF(RC7=""AEROTEC"",(RC20-RC15)-8,(RC20-RC15)+2))))"
End If
Next Cell
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Alain CROS
Bonjour.
Si une cellule de la plage D2:D20 (offset(0,3)) est vide c'est ActiveCell.Value = ActiveCell.Value qui s'applique. et ActiveCell est toujours A2 à cause de la sélection inutile. Suggestion:
Sub ConvertDelai() Dim Cell As Range For Each Cell In Range("A2:A20") With Cell If IsEmpty(.Offset(0, 3)) Then .Value = .Value Else .Formula = "=IF(R[1]C[-7]-R[1]C[-9]<,0,IF(RC7=" & _ """FOKKER"",(RC20-RC15)+3,IF(RC7=""MATIS"",(RC20-RC15)" & _ "+3,IF(RC7=""AEROTEC"",(RC20-RC15)-8,(RC20-RC15)+2))))" End If End With Next Cell End Sub
Alain CROS.
"Eric RENAUD" a écrit dans le message de news: #Gb#
Bonjour, Il y a une chose que je ne m'explique pas. Le code suivant met une formule dans chaque cellule de ma sélection. Tout marche parfaitement sauf que à la fin de ma procédure, la formule en A2 a disparu et est remplacée par sa valeur. En pas à pas, je vois bien ma formule placée en A2 mais après le End Sub, la formule a dispar et est donc remplacée par la valeur Est-ce un mystère de la boucle For Each ... ou quelque chose qui m'échappe ?
Sub ConvertDelai() Range("A2:A20").Select Set MaPlage = Selection For Each Cell In MaPlage If IsEmpty(Cell.Offset(0, 3)) Then ActiveCell.Value = ActiveCell.Value Else Cell.FormulaR1C1 = _
"=IF(R[1]C[-7]-R[1]C[-9]<,0,IF(RC7=""FOKKER"",(RC20-RC15)+3,IF(RC7=""MATI S"",(RC20-RC15)+3,IF(RC7=""AEROTEC"",(RC20-RC15)-8,(RC20-RC15)+2))))" End If Next Cell End Sub
D'avance merci.
Bonjour.
Si une cellule de la plage D2:D20 (offset(0,3)) est vide c'est ActiveCell.Value = ActiveCell.Value qui s'applique.
et ActiveCell est toujours A2 à cause de la sélection inutile.
Suggestion:
Sub ConvertDelai()
Dim Cell As Range
For Each Cell In Range("A2:A20")
With Cell
If IsEmpty(.Offset(0, 3)) Then
.Value = .Value
Else
.Formula = "=IF(R[1]C[-7]-R[1]C[-9]<,0,IF(RC7=" & _
"""FOKKER"",(RC20-RC15)+3,IF(RC7=""MATIS"",(RC20-RC15)" & _
"+3,IF(RC7=""AEROTEC"",(RC20-RC15)-8,(RC20-RC15)+2))))"
End If
End With
Next Cell
End Sub
Alain CROS.
"Eric RENAUD" <erenaud@normandet.fr> a écrit dans le message de news: #Gb#YDk8DHA.696@tk2msftngp13.phx.gbl...
Bonjour,
Il y a une chose que je ne m'explique pas.
Le code suivant met une formule dans chaque cellule de ma sélection.
Tout marche parfaitement sauf que à la fin de ma procédure, la formule en A2
a disparu et est remplacée par sa valeur.
En pas à pas, je vois bien ma formule placée en A2 mais après le End Sub, la
formule a dispar et est donc remplacée par la valeur
Est-ce un mystère de la boucle For Each ... ou quelque chose qui m'échappe ?
Sub ConvertDelai()
Range("A2:A20").Select
Set MaPlage = Selection
For Each Cell In MaPlage
If IsEmpty(Cell.Offset(0, 3)) Then
ActiveCell.Value = ActiveCell.Value
Else
Cell.FormulaR1C1 = _
"=IF(R[1]C[-7]-R[1]C[-9]<,0,IF(RC7=""FOKKER"",(RC20-RC15)+3,IF(RC7=""MATI
S"",(RC20-RC15)+3,IF(RC7=""AEROTEC"",(RC20-RC15)-8,(RC20-RC15)+2))))"
End If
Next Cell
End Sub
Si une cellule de la plage D2:D20 (offset(0,3)) est vide c'est ActiveCell.Value = ActiveCell.Value qui s'applique. et ActiveCell est toujours A2 à cause de la sélection inutile. Suggestion:
Sub ConvertDelai() Dim Cell As Range For Each Cell In Range("A2:A20") With Cell If IsEmpty(.Offset(0, 3)) Then .Value = .Value Else .Formula = "=IF(R[1]C[-7]-R[1]C[-9]<,0,IF(RC7=" & _ """FOKKER"",(RC20-RC15)+3,IF(RC7=""MATIS"",(RC20-RC15)" & _ "+3,IF(RC7=""AEROTEC"",(RC20-RC15)-8,(RC20-RC15)+2))))" End If End With Next Cell End Sub
Alain CROS.
"Eric RENAUD" a écrit dans le message de news: #Gb#
Bonjour, Il y a une chose que je ne m'explique pas. Le code suivant met une formule dans chaque cellule de ma sélection. Tout marche parfaitement sauf que à la fin de ma procédure, la formule en A2 a disparu et est remplacée par sa valeur. En pas à pas, je vois bien ma formule placée en A2 mais après le End Sub, la formule a dispar et est donc remplacée par la valeur Est-ce un mystère de la boucle For Each ... ou quelque chose qui m'échappe ?
Sub ConvertDelai() Range("A2:A20").Select Set MaPlage = Selection For Each Cell In MaPlage If IsEmpty(Cell.Offset(0, 3)) Then ActiveCell.Value = ActiveCell.Value Else Cell.FormulaR1C1 = _
"=IF(R[1]C[-7]-R[1]C[-9]<,0,IF(RC7=""FOKKER"",(RC20-RC15)+3,IF(RC7=""MATI S"",(RC20-RC15)+3,IF(RC7=""AEROTEC"",(RC20-RC15)-8,(RC20-RC15)+2))))" End If Next Cell End Sub