Formule SI dépendant d'une autre cellule

Bonjour,

Je souhaite créer en automatique une clé unique en B sous forme AAMMJJHHMMSS lorsque que la case en A est différent de vide.

J'ai 2 prblèmes :

  • Je n'arrive pas à bien écrire la formule SI
  • Il ne faut pas que la clé AAMMJJHHMMSS change avec le temps (format Texte ?)

Exemple faire à la main :

Est-ce que vous pouvez m'aider ?

Merciii

Jules

Bonjour,

Je ne suis pas sûr de la fiabilité des code obtenus de cette façon mais à toi de voir !

Ce code se trouvant dans le module de la feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.Column <> 2 Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    If Target.Value <> "" Then Exit Sub

    If Target.Offset(, -1).Value <> "" Then Target.Value = Format(Now, "YYMMDDHHMMSS")

End Sub

Tu entre une valeur dans la colonne A puis tabulation et le code sera créé dans la colonne B. Voici le classeur en retour :

Bonjour,

à tester,

=SI(ESTVIDE(A2);"";TEXTE(DATE(ANNEE(A2);MOIS(A2);JOUR(A2));"AAMMJJ")&TEXTE(A2-DATE(ANNEE(A2);MOIS(A2);JOUR(A2));"hhmmss"))

Bonjour,

Je ne suis pas sûr de la fiabilité des code obtenus de cette façon mais à toi de voir !

Ce code se trouvant dans le module de la feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.Column <> 2 Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    If Target.Value <> "" Then Exit Sub

    If Target.Offset(, -1).Value <> "" Then Target.Value = Format(Now, "YYMMDDHHMMSS")

End Sub

Tu entre une valeur dans la colonne A puis tabulation et le code sera créé dans la colonne B. Voici le classeur en retour :

Formule AAMMJJHHMMSS.xlsm

Bonjour Theze,

Ta macro marche dans le fichier mais dès que je veux l'exporter dans un autre elle me marche pas.. Comment as tu fais ?

Merci

Bonjour,

à tester,

=SI(ESTVIDE(A2);"";TEXTE(DATE(ANNEE(A2);MOIS(A2);JOUR(A2));"AAMMJJ")&TEXTE(A2-DATE(ANNEE(A2);MOIS(A2);JOUR(A2));"hhmmss"))

Bonjour I20100,

Ta formule marche pas pour "hhmmss", elle affiche 000000

Jules

Je répond pour sabV , il te faut saisir la date avec une heure comme ceci par exemple 10/12/2018 17:25:37

Ta macro marche dans le fichier mais dès que je veux l'exporter dans un autre elle me marche pas.. Comment as tu fais ?

C'est pour cette raison que je demande toujours que le fichier joint soit le plus représentatif de l'original !

Dans mon code, tu as une condition qui teste si la cellule se trouve bien dans la colonne B (colonne 2) :

'si ce n'est pas la colonne B (2), fin de sub
If Target.Column <> 2 Then Exit Sub
'...

C'est la première qu'il te faut adapter si la clé doit se trouver dans une autre colonne que la colonne B.

Dans la ligne de code qui entre la valeur et qui teste si la cellule de gauche est bien remplie :

If Target.Offset(, -1).Value <> "" Then Target.Value = Format(Now, "YYMMDDHHMMSS")

il te faut adapter l'offset() ici, on regarde si la colonne à gauche (-1) est vide ou pas. Si par exemple la colonne des clés est la colonne E (5) et que la cellule à tester est en colonne C (3) la première ligne sera :

If Target.Column <> 5 Then Exit Sub

et la seconde ligne sera :

If Target.Offset(, -2).Value <> "" Then Target.Value = Format(Now, "YYMMDDHHMMSS")

Bien évidement, la colonne doit être au format texte pour ne pas avoir de notation scientifique !

Bonjour Jules, Theze,

Ta formule marche pas pour "hhmmss", elle affiche 000000

Voici l'exemple,

Super, Merci Theze & i20100 !!!

Rechercher des sujets similaires à "formule dependant"