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

Saisie de chiffre hexadécimal par macro.

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

P

pan european

Guest
Bonjour
J'ai un petit problème. Il s'agit de saisir d'un code hexadécimal et de le mettre dans une cellule.
Par la macro ci dessous, je demande à un utilisateur d'entrer un nombre hexadécimal à 6 caractères. Puis, la macro le mets dans une cellule pour action.

Mon problème est que si je mets le nombre 3949E0, la macro pense que c'est du décimal et le E0 est pris pour "exposant 0".
Donc le nombre s'inscrit 3949 dans la cellule et le calcul est faux.

Dans ma page de calcul (CONV) , la cellule B2 est paramétré ainsi:
Format>Cellule>Nombre: TEXTE
Si je rentre mon nombre 3949E0 dans directement dans cette cellule, pas de problème.
Si je passe par la macro, j'ai 3949 dans la cellule.

Bon, mon niveau n'est pas élevé en ce domaine.
Je vous remercie pour vos renseignements.

Macro (n)
=POSER.NOM("arrest";ENTRER("Entrer le code hexa";3😉)
=FORMULE(arrest;CONV!B2)
=RETOUR()
 
Re : Saisie de chiffre hexadécimal par macro.

Bonjour
Voici une version "light" de mon fichier (Il y a beaucoup de choses non essentielles que j'ai viré).
En gros, sur la page "1", l'opérateur clique sur le bouton et entre un nombre hexa à 6 digits (3949ED) puis OK. Le résultat est mis dans "CONV" B1 puis traité et remis en page "1".
S'il mets 3949E0, il a la fenêtre d'erreur car le E0 est pris comme EXP 0 et dans "CONV" B1 il n'y a que 3949.
Merci coop.
PE
 

Pièces jointes

Re : Saisie de chiffre hexadécimal par macro.

Bonjour,
Voici la macro réduite
Code:
Sub CONV()
'
' Sélection de la page de conversion
' Affichage de la fenêtre de saisie.
'

    Sheets("CONV").Select
' Effacement de l'ancienne donnée et mise en mode normal.
' Si affichage scientifique, 3949E0= 3949 (E=Exposant)
' (Ne fonctionne pas mieux avec cela...)
    Range("B1").Select
        Selection.ClearContents
            Selection.NumberFormat = "@"
Sheets("CONV").Cells(1, 2) = InputBox("Entrer le code Hexa")
'
'
' Test de l'intégitté du code voir le ELSE plus bas.
' Si non conforme, affichage de la fenêtre d'erreur.
' Si OK (0) décodage, sinon affichage msg d'erreur.
'
Sheets("CONV").Select
If Range("e9") = 0 Then
'
' Choix des 2 premiers digits avec ?-? par défaut.
'
Range("c1") = "?  -  ?"
If Range("c4") = 112 Then Range("c1") = "a1"
If Range("c4") = 114 Then Range("c1") = "b3"
If Range("c4") = 115 Then Range("c1") = "c5"
If Range("c4") = 116 Then Range("c1") = "d7"
'
'           Troisième digit
Cells(1, 4) = Chr(Cells(4, 4) + 65)
'
'          Quatrième digit
Cells(1, 5) = Chr(Cells(4, 5) + 65)

'          Cinquième digit
Cells(1, 6) = Chr(Cells(4, 6) + 65)


'
' Si test NOGO, affichage de la fenêtre d'erreur.
' La page CONV sera masquée et les valeurs effacées.
'
Else:
Sheets("CONV").Select
 Range("B1:F1").Select
 Application.CutCopyMode = False
  Selection.ClearContents
          Sheets("1").Select
            DialogSheets("erreur").Show
End If
'
' Si le test d'intégrité est bon.
' et l'affichage se fait normalement sur la page d'accueil.
'

            Sheets("1").Select
'
End Sub
 
Re : Saisie de chiffre hexadécimal par macro.

Bonjour a tous

Peux-tu t'inspirer de ceci

Code:
Sub test()
x = InputBox("Entrez un Hexadecimal")
Range("A1").NumberFormat = "@"
Range("A1") = x
End Sub

Bien entendu il ne s'agit que d'ecrire (en A1) sans controle ni conversion ce qui peut se faire si tu le souhaites
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
  • Question Question
Réponses
5
Affichages
248
Didierpasdoué
D
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…