[RESOLU] MODIFICATION AUTOMATIQUE DE DATE (ANNEE)

hdparcs

XLDnaute Junior
Bonjour à tous,
Voici mon problème en remerciant sincèrement celui qui apportera la réponse :
Dans la colonne A, et à chaque ligne, figure une date que j’actualise manuellement lorsque je modifie le nombre d'une cellule dans la colonne B.
Par exemple : en A1 j'ai "2013" quand je modifie un montant en B1 je souhaite que en A1 l'actualisation se fasse automatiquement et affiche, pour aujourd'hui (13 décembre 2016), l'année du moment soit 2016.
Je pense que c'est possible.
Merci pour la formule.
 

Jacky67

XLDnaute Barbatruc
quand je modifie un montant en B1 je souhaite que en A1 l'actualisation se fasse automatiquement et affiche, pour aujourd'hui (13 décembre 2016), l'année du moment soit 2016.
Bonjour,
En VBA ?
Ceci dans le module de la feuille concernée devrait faire
Code:
Option Explicit
Dim tmp As String
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 2 Then
If Target.Value <> tmp Then
With Target.Offset(, -1)
.Value = Date
.NumberFormat = "yyyy"
End With
End If
End If
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 2 Then tmp = Target.Value
End Sub
 
Dernière édition:

hdparcs

XLDnaute Junior
Bonjour à vous 3,
Merci d'avoir pris le temps de me répondre. Cependant, à part utiliser les formules dans les cellules, je n'ai pas une connaissance autre. J'avoue ne pas comprendre les langages type TargetOffset, VBA... Serait-il possible d'avoir la formule à inscrire dans la case du type : "=si modification en B1 alors date du jour sous forme aaaa".
Merci d'avance.
 

hdparcs

XLDnaute Junior
Bonjour.
Non, pas possible sans VBA.
Bonjour Danred,
Merci pour la réponse. Donc, pour moi qui n'aie aucune notion de macro, est-ce compliqué d'intégrer cette formule ?
Je suppose que je vais dans Développeur/Macros+
Je dois donner un nom à ma Macro : lequel ?
Je sélectionne le classeur concerné
Mais si mon classeur a plusieurs feuilles et que je souhaite que la modification ne concerne qu'une seule feuille, y-a-t-il une annotation particulière du genre ? :
Feuil1
Concrètement, je fais quoi avec ça ? :
Target.Offset(, -1).Value = Date
Dans une Worksheet_Change qui vérifie que Target appartient à la colonne B.
Je ne vois, dans cette formule, aucune référence aux colonnes A et B, comme dans ma demande.
Si ce n'est pas trop demander, est-ce possible de me guider en quelques mots ?
Ce serait sympa.
Merci d'avance...
 

Dranreb

XLDnaute Barbatruc
Non, ça se met dans le module de la feuille (rubrique Microsoft Excel Objets de l'explorateur de projets).
Vous pouvez aussi faire un clic droit sur l'onglet, Visualiser le code.
Vous sélectionnez Worksheet dans la liste de gauche qui surmonte la fenêtre de code, puis Change dans celle de droite.
Ça vous fait venir un modèle de procédure Worksheet_Change avec un paramètre Target représentant la plage modifiée.
Pour ne rien exécuter si la cellule changée ne concerne pas le dispositif, le plus simple c'est de commencer par :
VB:
If Target.Columns.Count > 1 Or Target.Column <> 2 Then Exit Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p