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

XL 2021 Formule générée par IA ne fonctionne pas.

Phoenix23

XLDnaute Occasionnel
Bonjour à tous,
Je viens de tester l'IA qui soit disant est le top du top...
Ce que je demande à ce génie :
Une formule qui fait que lorsque je clique sur une cellule vide A1 se mette automatiquement la date d'aujourd'hui ( en fait je ne pensais même pas que cela soit possible), bref, elle sort la formule suivante:
=SI(ESTVIDE(A1),ESTVIDE(A2)),AUJOURD'HUI (),A2).
Qui ne fonctionne pas...
La formule à été recopiée à l'identique.
Une idée svp sur la correction à apporter.
D'avance merci
 
Solution
Re argyronet
Je joins un fichier, feuille 2024 les explications espérant avoir été suffisamment explicite ...
Bonjour,

Déjà, pour vous désespérer , oui, vous êtes tenu de passer par des macros.

D’ailleurs, votre classeur est au format xlsm et il y a des procédures dedans...
Concernant votre formule 2L, il suffit d'écrire :

Code:
=SI(ESTNUM(B324);2;"")

puisque votre format de cellule est subséquent au fait que la cellule est potentiellement nantie d'un nombre...

Sinon, pour la date auto, voici ce que je vous propose :

Dans un module, vous écrivez ou recopiez :
VB:
Option Explicit

Public Const DATE_TITRE                                       As String = "DATE_TITRE"...

Gégé-45550

XLDnaute Accro
Bonjour,
En version française, Excel demande à remplacer les virgules par des points-virgules.
Cordialement,
 

vgendron

XLDnaute Barbatruc
Bonjour

déjà. il faudrait exposer le pb dans un Français intelligible..

VB:
lorsque je clique sur une cellule vide A1 se mette automatiquement la date d'aujourd'hui
ne veut rien dire..
à croire que l'IA n'est pas non plus fournie avec option "boule de cristal"
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Phoenix, Gégé, Vgendron,
=SI(ESTVIDE(A1),ESTVIDE(A2)),AUJOURD'HUI (),A2).
A que c'est beau l' IA !

1- AUJOURD'HUI () n'est pas une formule XL, c'est AUJOURDHUI() , sans apostrophe.

2- ESTVIDE(A1),ESTVIDE(A2)) ne veut rien dire, c'est ET(ESTVIDE(A1);ESTVIDE(A2))

3- "je clique sur une cellule vide", comme le dit Vgendron, ça doit passer par du VBA.

Postez votre demande précise sur une IN ( Intelligence Naturelle ) on trouvera une solution, si vous acceptez le VBA.
 

patricktoulon

XLDnaute Barbatruc
Bonjour
je plussoie vgendron
et j'ajouterais que c'est toute ta logique qui est pour le coup absurde
dis moi pourquoi tu irais mettre une date dynamiquement par formule lors d'un events selection ou autre sur une cellule
met le directement par vba puisque l'on parle d'events
 

marco22

XLDnaute Occasionnel
se positionner sur A2 et entrer la formule suivante
=SI(A1="";"";AUJOURDHUI())
mettre la cellule A2 format date
 

nano1951

XLDnaute Nouveau
il me semble qu'il faut mettre des ";" et non ","
 

argyronet

XLDnaute Nouveau
Bonjour,

Vaste polémique du coup...

Il y a des virgules à la place des ; mais ça, ça s'explique par le fait que le séparateur aux US est effectivement la virgule, donc, l''IA ne délire pas si je puis dire..., sur ce plan là ; par contre, la formule que vous avez mentionnée est fausse : l'avez-vous bien recopiée ?
[...]
Si j'ai bien compris, je ne suis plus très sûr.., car je ne saisie pas l'objectif.
Il n'y a pas de formule magique pour cela...
Le fait de cliquer sur une cellule est un événement : or il n'existe pas de formule Excel qui détecte les événements.

Seule une procédure VBA peut répondre favorablement à votre demande.

Si c'est sur un classeur particulier et une feuille précise, il faut procéder ainsi :
- activer le mode développeur à partir du Ruban à personnaliser si ce n'est pas le cas...,
- lorsque l'on est dans l'éditeur Visual Basic, cliquez sur la feuille concernée par la procédure ;
- coller alors le bout de code ci-dessous :

VB:
Option Explicit


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'On vérifie l'objet Target
    Select Case Target.Row
        Case 1
            'On contrôle que l'on n'est pas sur la ligne numéro 1 d'une part
        Case Else
            'Pour toutes les autres lignes
            Select Case Target.Column
                Case 1
                    'On contrôle qu'on n'est pas sur la colonne numéro 1
                Case Else
                    'On vérifie que la sélection ne comporte pas plus d'une seule cellule
                    If Target.Rows.Count = 1 And Target.Columns.Count = 1 Then
                        'On vérifie que la cellule sur laquelle on clique est vide
                        If Target.Value = "" Then
                            'Si c'est le cas, la cellule A1 reçoit la date du jour formaté en jj/mm/aaaa
                            Range("A1").Value = Format(Now, "dd/mm/yyyy")
                        End If
                    End If


            End Select
    End Select
End Sub

À la feuille concernée sous Excel et cliquez sur n'importe quelle cellule.
La cellule A1 doit recevoir la date du jour tel que vous l'avez demandé.

Si c'est sur plusieurs classeurs distincts
Il faudra mettre en place une classe dans le classeur de macro personnelles couplé avec un WithEvents...
 

Discussions similaires

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