Afficher Date colonne I
a
Bonjour le forum
Si je mets la ligne macro ci-dessous je ne peut pas faire afficher date colonne I
Si je supprime la ligne macro ci-dessous je ne peut plus taper du texte colonne I Ligne 2
Merci pour vos éventuels retours
Cordialement
If Target.Column = 1 And Target.Row > 2 Then
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim NombreJour As Integer
Dim LaDate As Date
Application.ScreenUpdating = False
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 And Target.Row > 1 Then 'Cette ligne de macro pour pouvoir taper ou coller du texte dans la ligne N°2
Application.EnableEvents = False
' On recherche si la page est surveillée
If Left(Sh.Name, 5) = "Année" Then 'Le chiffre 5 = Nombre de lettres du nom "Année" sans espace. On peut mettre 6, avec un espace après "Année " par sécurité.
If (Target.Column = 5 Or Target.Column = 8) And Target.Row > 3 Then ' Colonne E ou colonne H
If Target = "" Then ' Si on efface la colonne E ou H
Target.Offset(0, 1) = "" ' On efface alors la colonne F ou I
Else
Target.Offset(0, 1) = Application.Proper(Format(Date, "dddd dd mmmm yyyy")) ' Sinon on inscrit la date
' *************** Début Modifs. Tapez le nombre de M3 (colonnes E ou H )et éventuellement Modifier les Dates (colonnes F ou I)sous le format suivant => 10/04/19 (Exemple)
End If
ElseIf Target.Column = 6 Or Target.Column = 9 Then ' Colonnes F et I. Colonne F => ElseIf Target.Column = 6 Then Colonne I => ElseIf Target.Column = 9 Then
If IsDate(Target) Then
Target = Application.Proper(Format(Target, "dddd dd mmmm yyyy")) ' Sinon on inscrit la date
Else
Target = ""
' ************** Fin modifs
End If
End If
End If
End If
Application.EnableEvents = True
End Sub
Bonjour,
If Target.Column = 1 > bloque tout le reste du code pour gérer les colonnes 5,6,8 et 9 ...
Si l'idée est de ne gérer les changements que sur les colonnes 5,6,8 et 9 > je suggère ...
If Not Intersect(Target, Range("E:F", "H:I")) Is Nothing Then
If Target.Row > 1 Then
En ajoutant un End If vers la fin > car il y a une condition supplémentaire ...
Donnant ainsi ...
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim NombreJour As Integer
Dim LaDate As Date
Application.ScreenUpdating = False
If Target.Count > 1 Then Exit Sub
' If Target.Column > 1 And Target.Row > 1 Then 'Cette ligne de macro pour pouvoir taper ou coller du texte dans la ligne N°2
If Not Intersect(Target, Range("E:F", "H:I")) Is Nothing Then
If Target.Row > 1 Then
Application.EnableEvents = False
' On recherche si la page est surveillée
If Left(Sh.Name, 5) = "Année" Then 'Le chiffre 5 = Nombre de lettres du nom "Année" sans espace. On peut mettre 6, avec un espace après "Année " par sécurité.
If (Target.Column = 5 Or Target.Column = 8) And Target.Row > 3 Then ' Colonne E ou colonne H
If Target = "" Then ' Si on efface la colonne E ou H
Target.Offset(0, 1) = "" ' On efface alors la colonne F ou I
Else
Target.Offset(0, 1) = Application.Proper(Format(Date, "dddd dd mmmm yyyy")) ' Sinon on inscrit la date
' *************** Début Modifs. Tapez le nombre de M3 (colonnes E ou H )et éventuellement Modifier les Dates (colonnes F ou I)sous le format suivant => 10/04/19 (Exemple)
End If
ElseIf Target.Column = 6 Or Target.Column = 9 Then ' Colonnes F et I. Colonne F => ElseIf Target.Column = 6 Then Colonne I => ElseIf Target.Column = 9 Then
If IsDate(Target) Then
Target = Application.Proper(Format(Target, "dddd dd mmmm yyyy")) ' Sinon on inscrit la date
Else
Target = ""
' ************** Fin modifs
End If
End If
End If
End If
End If
Application.EnableEvents = True
End Sub
ric
a
Bonjour ric
Tout simplement
If Target.Row > 2 Then
Ta solution fonctionne aussi
Merci à toi et bonne semaine