Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

renvoyer fonction dans la meme cellule que la saisie

  • Initiateur de la discussion Initiateur de la discussion boudu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

boudu

XLDnaute Occasionnel
Bonjour au forum
Je dois par faute de place sur la feuille de saisie faire en sorte que la saisie d'une date de naissance renvoie l'âge dans la meme cellule
J'ai trouvé la fonction qui me permet de faire l'operation souhaitée mais la difficulté est que je voudrais que le résultat apparaisse directement dans la cellule de saisie

Merci d'avance de me dire si cela vous semble possible
 

Pièces jointes

Re : renvoyer fonction dans la meme cellule que la saisie

Bonjour Boudu 🙂,
Uniquement par VBA, mais ça va être destructif, vu que tu vas perdre la date de naissance par la même occasion 🙄...
Bonne suite 😎
 
Re : renvoyer fonction dans la meme cellule que la saisie

Bonjour Patrick, JNP
J'ai bien conscience que c'est destructif mais ça ne me dérange pas
j'ai bien conscience aussi que c'est en vba mais je ne sais pas faire
La fonction doit porter sur les cellules D2 à D10
Merci de m'indiquer la voie
 
Dernière édition:
Re : renvoyer fonction dans la meme cellule que la saisie

Re Patrick, JNP, le forum
J'ai bien cette piste mais je n'arrive pas à syntaxer ma formule
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D2😀10")) Is Nothing Then
Application.EnableEvents = False
Target.Value = ????????????
Application.EnableEvents = True
End If
End Sub

Merci de votre aide
 
Re : renvoyer fonction dans la meme cellule que la saisie

Bonjour le forum,

Dommage que ce soit destructif car ça implique de ressaisir les dates de naissance lors d'une ouverture ultérieure du fichier pour être à jour....
On pourrait stocker ces dates dans une feuille cachée, dans une autre zone de la feuille ou encore dans des noms....
 
Re : renvoyer fonction dans la meme cellule que la saisie

Bonjour Luki
Je n'ai vraiment pas de souci avec cette destruction car le fichier a une durée de vie tres ponctuelles
c'est vraiment juste cette fonction de renvoi année et mois qui me soucie
Merci
 
Re : renvoyer fonction dans la meme cellule que la saisie

Re 🙂,
A tester (quelques petites différences de résultat 🙄)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 4 Then Exit Sub
If InStr(1, Target, "mois", vbTextCompare) = 0 And Target <> "" Then
Target = DateDiff("yyyy", Target, Now()) & " ans, " & _
    DateDiff("m", Target, Now()) Mod 12 & " mois"
End If
End Sub
Bonne suite 😎
 
Re : renvoyer fonction dans la meme cellule que la saisie

Re JNP, le forum
Merci pour cette proposition
ça a l'air de le faire
Je vais tester un peu plus pour voir ces differences dont tu parles
De plus, en fait la conversion doit porter sur D12 à D20 dans mon vrai fichier et je dois tester ça aussiparce que toute la colonne n'est pas concernée

Merci encore
 
Re : renvoyer fonction dans la meme cellule que la saisie

Re JNP, le forum
Voici le code que j'ai mis sur la feuille concernée:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D12😀20")) Is Nothing Then
Application.EnableEvents = False
Target.Value = DateDiff("yyyy", Target, Now()) & " ans, " & _
DateDiff("m", Target, Now()) Mod 12 & " mois"
Application.EnableEvents = True
End If
End Sub

ça fonctionne mais lorsque je veux supprimer ou modifier la saisie (en cas d'erreur par exemple) excel me met un nombre de mois et d'années qui ne rime à rien ou m'envoie vers le debuggage
Peut-etre quelque chose qui ne va pas avec application.enableEvents???
Merci
 
Re : renvoyer fonction dans la meme cellule que la saisie

Re 🙂,
Tu as perdu un bout en route 🙄
Code:
If InStr(1, Target, "mois", vbTextCompare) = 0 And Target <> "" Then
qui vérifie si la cellule n'est ni déjà transformée (avec "mois" dedans), ni vide 😛.
Une précaution supplémentaire serait en début de Sub
Code:
If Target.Count > 1 Then Exit Sub
Bonne suite 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…