piga25
XLDnaute Barbatruc
Bonjour,
Après pas mal de recherches, je bloque sur le code suivant.
Dans une feuille, lorsque je tape P ou X j'aimerai que sous cette cellule s'inscrive automatiquement la valeur (format heure) qui est située dans la même colonne mais dans une ligne bien définie.
Il y a uniquement la ligne 9 et celle qui correspond à FinNom +3 qui ont ces données.
lorsque je mets par exemple dans le code
cela fonctionne
mais quand je fait référence à la cellule contenant l'heure située plus haut cela ne fonctionne plus.
Après pas mal de recherches, je bloque sur le code suivant.
Dans une feuille, lorsque je tape P ou X j'aimerai que sous cette cellule s'inscrive automatiquement la valeur (format heure) qui est située dans la même colonne mais dans une ligne bien définie.
Il y a uniquement la ligne 9 et celle qui correspond à FinNom +3 qui ont ces données.
lorsque je mets par exemple dans le code
VB:
Case "P"
ActiveCell.Offset(0, 0) = "10:30"
mais quand je fait référence à la cellule contenant l'heure située plus haut cela ne fonctionne plus.
VB:
Sub Worksheet_Change(ByVal Target As Range)
Dim FinNom As Long
Dim x, y As Date
FinNom = ActiveSheet.Range("A7").End(xlDown).Row
x = Cells(9, ActiveCell.Column).Value
y = Cells(FinNom + 3, ActiveCell.Column).Value
If Target.Column < 25 Then Exit Sub 'si avant colonne 25 on sort de la procédure
If Target.Row < FinNom Then ' si saisie avant la ligne située avant finnom
Select Case Target.Value
Case ""
ActiveCell.Offset(1, 0) = ""
Case "P"
ActiveCell.Offset(0, 0) = x 'Cells(9, 0).Value
Case "X"
ActiveCell.Offset(0, 0) = x 'Cells(9, 0).Value
Case "A"
ActiveCell.Offset(0, 0) = ""
End Select
If Target.Row > FinNom Then ' si saisie avant la ligne située après finnom
Select Case Target.Value
Case ""
ActiveCell.Offset(1, 0) = ""
Case "P"
ActiveCell.Offset(0, 0) = y 'Cells(FinNom + 3, 0).Value
Case "X"
ActiveCell.Offset(0, 0) = y 'Cells(FinNom + 3, 0).Value
Case "A"
ActiveCell.Offset(0, 0) = ""
End Select
End If
End If
End Sub