Modifier une macro référence plage nommée

chris6999

XLDnaute Impliqué
Bonjour

J'ai un fichier excel avec une multitude de macros rédigées de la façon suivante :

If Target.Column = 5 Then
If Target.Value = "" Then
Range("AB" & Target.Row).ClearContents
Else
Range("AB" & Target.Row) = Format(Date, "mmmm")
End If
End If

Je souhaiterais pour y voir plus clair faire référence à une plage nommée dans mon fichier.
J'ai donc donné un nom aux plages en questions puis j'ai essayé de faire référence à ce nom dans ma macro.

Le problème c'est que je n'ai aucunce bases en VBA et que j'ai du mal à adapter le code avec ces nouvelles références. J'ai écrit

DateRéception = Range("E7:E15000")
MoisEntrée = Range("AB7:AB15000")

If Target.Range = DateRéception Then
If Target.Value = "" Then
Range("MoisEntrée" & Target.Row).ClearContents
Else
Range("MoisEntrée" & Target.Row) = Format(Date, "mmmm")
End If
End If

Est-ce que quelqu'un pourrait m'aider à y voir plus clair. Je mets en pièce jointe un fichier test.

Mon exempled e macro est le suivant Pour toute saisie de date dans la plage E7 à E15000
Positionne le mois en toute lettre dans la colonne AB
Dans la feuille 1 "Plage non nommée" je fais réference à la macro d'origine qui fonctionne.
Dans la feuille 3 "Plage nommée" je fais appel à la macro rectifiée qui ne fonctionne pas


Merci d'avance pour vos conseils
 

Pièces jointes

  • test plage nommée.xls
    24 KB · Affichages: 36

kjin

XLDnaute Barbatruc
Re : Modifier une macro référence plage nommée

Bonjour,
Je ne vois pas bien le but de la manoeuvre...
Donc sans référence...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E5:E15000")) Is Nothing Then
    If Target = "" Then
        Target.Offset(0, 23).ClearContents
    Else
        Target.Offset(0, 23) = Format(Date, "mmmm")
    End If
End If
End Sub
...et avec...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Set DateReception = Range("E7:E15000")
Set MoisEntree = Range("AB7:AB15000")
If Not Intersect(Target, DateReception) Is Nothing Then
    If Target = "" Then
        MoisEntree(Target.Row - 6).ClearContents
    Else
        MoisEntree(Target.Row - 6) = Format(Date, "mmmm")
    End If
End If
End Sub
A+
kjin
 

Discussions similaires

  • Résolu(e)
XL 2021 macro
Réponses
9
Affichages
428

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T