IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Problème avec Hexbin


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 22
    Par défaut Problème avec Hexbin
    Bonjour,

    J'ai plusieurs nombres hexa à convertir en binaire. Plutôt que d'utiliser la calculette j'ai voulu utiliser Excel mais la fonction hexbin ne semble pas fonctionner au delà de 8 chiffres hexa.

    Est-ce normal que =hexbin(10000000) me retourne #NOMBRE! ? En fait hexbin ne marche que si le résultat binaire a moins de 9 chiffres alors que la calculette opère sans problème avec 64 chiffres ?

    Connaissez-vous une solution de contournement simple (autre que découper mon nombre en paquets de 2 chiffres !) ?

    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    Avec une formule un peu bourrine comme celle ci (dec2bin au lieu de hex2bin)
    (trouvee sur un site anglophone)
    =DEC2BIN(MOD(QUOTIENT($A$1,256^3),256),8)&DEC2BIN(MOD(QUOTIENT($A$1,256^2),256),8)&DEC2BIN(MOD(QUOTIENT($A$1,256^1),256),8)&DEC2BIN(MOD(QUOTIENT($A$1,256^0),256),8)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Koudou Voir le message
    hexbin ne marche que si le résultat binaire a moins de 9 chiffres alors que la calculette opère sans problème avec 64 chiffres ?
    Tout est expliqué dans l'aide Excel : https://support.office.com/fr-fr/art...4-643e581828c1

    L'avantage pour toi dans le passage Hex > Bin, c'est qu'il est possible de tronçonner la valeur source pour recomposer le résultat en plusieurs parties.
    Par exemple, pour des nombres Hex de 8 caractères maxi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =HEXBIN(STXT(A2;1;2);8)&SI(NBCAR(A2)>=3;HEXBIN(STXT(A2;3;2);8);"")&SI(NBCAR(A2)>=5;HEXBIN(STXT(A2;5;2);8);"")&SI(NBCAR(A2)>=7;HEXBIN(STXT(A2;7;2);8);"")
    Mais il serait plus propre de faire une fonction personnalisée en VBA.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function HEXBIN2(Source As String) As String
    Dim I As Integer
    HEXBIN2 = ""
    For I = 1 To Len(Source)
       HEXBIN2 = HEXBIN2 & Application.WorksheetFunction.Hex2Bin(Mid(Source, I, 1), 4)
    Next I
    End Function
    Avec ça, tu seras limité à environ 32 000 caractères en binaire, c'est-à-dire 8 000 caractères en hex.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo