copier une valeur automatique apres l envoie de la touche entrée

Surfeur En Serie

XLDnaute Occasionnel
bonjour tt le monde
c est pour excel 2000 ( oui j ai encore des amis qui utilise celui la lol )
il y a longtemp que je n etais pas venu..
donc voici mon soucis
nous avons un tableau normal, sur quelques cellule nous avons une formule.
imaginons que la cellule A1 , A4 ,A5 n ont pas de formule , mais que A2 , A3, A6 on une formule ( peut importe laquelle ) .
je voudrai que lorsque je valide ma cellule que celle du dessous recupere ma formule de la cellule du dessus.
je ne suis pas si je suis clair, mais pour le moment je n ai pas de fichier a mettre.
merci a tous..
PS, des que possible si vous n avez pas compris , je ferrai un exemple
 

Theze

XLDnaute Occasionnel
Bonjour,

Une piste, à mettre dans le module de la feuille concernée :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   
    If Target.Count > 1 Then Exit Sub
    If Not Target.HasFormula Then Exit Sub
   
    Application.EnableEvents = False
    Target.AutoFill Range(Target, Target.Offset(1))
    Application.EnableEvents = True
   
End Sub
 

Surfeur En Serie

XLDnaute Occasionnel
hello, merci de ta réponse,
j ai relu ce que j ai demandé , mais je me suis mal exprimé.
je reexplique corectement ( dsl)
si une cellule de la ligne 1 est validé ( appuie sur entrée ) il faudrai que toutes les formules ( uniquement les formules ) se copie sur la ligne 2 etc... ensuite idem pour la ligne 2 qui se copie sur la ligne 3
je joint un morceau que je viens de faire.
 

Pièces jointes

  • testsurfeur.xls
    16.5 KB · Affichages: 20

job75

XLDnaute Barbatruc
Bonsoir Surfeur En Serie, Theze,

Oui le UP est souvent utile :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.EnableEvents = False
On Error Resume Next 'si aucune SpecialCell (pas de formule)
For Each c In Target(1).EntireRow.SpecialCells(xlCellTypeFormulas)
    c(2).FormulaR1C1 = c.FormulaR1C1
Next
Application.EnableEvents = True
End Sub
A+
 

job75

XLDnaute Barbatruc
Hi,
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.EnableEvents = False
Target(1).EntireRow.AutoFill Target(1).EntireRow.Resize(2), xlFillFormats 'copie les formats
On Error Resume Next 'si aucune SpecialCell (pas de formule)
For Each c In Target(1).EntireRow.SpecialCells(xlCellTypeFormulas)
    c(2).FormulaR1C1 = c.FormulaR1C1
Next
Application.EnableEvents = True
End Sub
 

Surfeur En Serie

XLDnaute Occasionnel
Hi,
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.EnableEvents = False
Target(1).EntireRow.AutoFill Target(1).EntireRow.Resize(2), xlFillFormats 'copie les formats
On Error Resume Next 'si aucune SpecialCell (pas de formule)
For Each c In Target(1).EntireRow.SpecialCells(xlCellTypeFormulas)
    c(2).FormulaR1C1 = c.FormulaR1C1
Next
Application.EnableEvents = True
End Sub

hello Job75,
Merci , ça fonctione parfaitement :)
 

Discussions similaires