• Initiateur de la discussion Initiateur de la discussion Geely
  • 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 !

Geely

XLDnaute Occasionnel
Bonjour
Je souhaite établir un "code du jour" en hexa de la manière suivante:

date 17 08 2008 ===> code 10 78 1A
le 10 est obtenu avec le premier chiffre du jour (dizaine)+ premier chiffre du mois (dizaine)
le 78 est obtenu avec le deuxième chiffre du jour (unité)+deuxième chiffre du mois (unité)
le 1A est la somme 1+7+0+8+2+0+0+8 en hexa
merci de votre aide

autre exemple
02 13 2008 ===> code 01 23 10
 
Re : Code du jour

Rebonjour Geely,

C'est une tâche un peu fastidieuse que vous demandez-là, mais qui n'a rien de bien difficile. Il suffit d'extraire chacun dex 8 chiffres par la fonction STXT.
Pour la conversion en Hexa, il faut charger dans Excel l'Utilitaire d'analyse (menu Outils-Macros complémentaires).

Je pourrais m'en occuper plus tard, si personne n'est intervenu.

A+
 
Re : Code du jour

Bonjour,

à essayer

Le 10 de 17-08
STXT(TEXTE(A1;"jjmm");1;1)&STXT(TEXTE(A1;"jjmm");3;1)

Le 78 de 17-08
STXT(TEXTE(A1;"jjmm");2;1)&STXT(TEXTE(A1;"jjmm");4;1)

Le 1A de 17-08-2008
DECHEX(SOMMEPROD(STXT(TEXTE(A1;"jjmmaaaa");{1;2;3;4;5;6;7;8};1)*1);2)

Les 3 formules ensemble :
=STXT(TEXTE(A1;"jjmm");1;1)&STXT(TEXTE(A1;"jjmm");3;1)&" "&STXT(TEXTE(A1;"jjmm");2;1)&STXT(TEXTE(A1;"jjmm");4;1)&" "&DECHEX(SOMMEPROD(STXT(TEXTE(A1;"jjmmaaaa");{1;2;3;4;5;6;7;8};1)*1);2)

Je n'ai pas trouvé le 02 13 2008

Pour utiliser la fonction Dechex() : Barre de menu - Outils - Macros complémentaires et cocher "Utilitaire d'analyse"
 
Re : Code du jour

Bonjour Geely,
Job,

voici une fonction VBA,

Code:
Function Coder(sDate As String)
    Dim sCars As String
    Dim total As Long
    Dim i As Integer
    Application.Volatile
 
    sCars = Left(sDate, 1) & Mid(sDate, 3, 1) & " " & Mid(sDate, 2, 1) & Mid(sDate, 4, 1)
    Coder = sCars & " "
    For i = 1 To 8
        total = total + Val(Mid(sDate, i, 1))
    Next i
    Coder = sCars & " " & Hex(total)
End Function

Il faut lui passer la chaine date formatée.
A partir d'une cellule(B1) si la date est en A1: =coder(TEXTE(A1;"jjmmAAAA"))

J'ai choisit cette solution, ne sachant, avec les exemples donnés
si tu étais en format dd/mm/aaaa ou mm/dd/aaaa : le 02 13 2008 le treisième mois de 2008 est le premier janvier 2009. ?????

A bientôt
 
Re : Code du jour

Re, et bravo à tous pour les solutions.

Pour le fun, encore une formule, qui reste la même pour toutes les cellules :

Code:
=STXT(D;1;1)&STXT(D;3;1)&" "&STXT(D;2;1)&STXT(D;4;1)&" "&DECHEX(SOMMEPROD(1*STXT(D;LIGNE($1:$8);1)))

Le nom D est défini quand A1 est sélectionné :

1) Si A1 est un texte par :

=SUPPRESPACE(Feuil1!$A1) ===> Voir Edit

2) Si A1 est bien une date (nombre dans un format date) par :

=TEXTE(Feuil1!$A1;"jjmmaaaa")

Bonne soirée et A+


Edit : SUPPRESPACE supprime seulement les espaces superflus. Il faut donc pour le cas 1) définir D par :

=SUBSTITUE(Feuil1!$A1;" ";"")

En fait pour le cas 1) il est plus simple de travailler directement sur A1 :

Code:
=STXT(A1;1;1)&STXT(A1;4;1)&" "&STXT(A1;2;1)&STXT(A1;5;1)&" "&DECHEX(SOMMEPROD(1*(0&STXT(A1;LIGNE($1:$10);1))))
 
Dernière édition:
- 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

Réponses
3
Affichages
441
Retour