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

Macros et VBA Excel Discussion :

[VBA-E]Inversion d'un nombre binaire


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut [VBA-E]Inversion d'un nombre binaire
    Bonjour tout le monde,

    Je suis en train de faire un travail en VBA pour Excel.

    Je suis à la recherche d'un moyen me permettant de convertir les "0" d'un nombre contenu dans une cellule de format Standard en "1" et vice-versa.

    Exemples :
    00000000 ----> 11111111
    00000001 ----> 11111110
    10101010 ----> 01010101

    Je vous remercie d'avance pour les réponses (que j'espère très nombreuses ) que vous pourrez m'apporter.

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Tiens une tite fonction que j'avais fait justement la dessus (il y a surement moyen de la simplifier hein ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function inversionBinary(t as string) as string
    Dim i As Integer
    Dim s As String
    For i = 1 To Len(t)
        s = Mid(t, i, 1)
        If s = 0 Then
            s = 1
        Else
            s = 0
        End If
        inversionBinary = inversionBinary & s
    Next i
    'MsgBox (inversionBinary)
    End Sub
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut
    Merci pour ta réponse !

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Juste une question :
    Ceci était idiot sans doute ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Command1_Click()
      a = "00100001"
      MsgBox Format(11111111 - Val(a), "00000000") & " " & a
    End Sub

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Juste pour rire.
    Il y a encore plus court.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      MsgBox Format(11111111 - Val(a), "00000000 ") & a
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    non
    le & " " & a n'était là que pour mettre de voir l'original en même temps que le résultat (permettre de vérifier en séparant par un espace)

  7. #7
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Citation Envoyé par jmfmarques
    Juste une question :
    Ceci était idiot sans doute ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Command1_Click()
      a = "00100001"
      MsgBox Format(11111111 - Val(a), "00000000") & " " & a
    End Sub
    Je l'ai dit qu'il y avait plus simple mais j'aime bien faire mumuse avec les chaines de caractères
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Bonjour,
    et, quelle que soit la longueur de a :
    MsgBox Format(Val(String(Len(a), "1")) - Val(a), String(Len(a), "0")) & " " & a
    bien sur

  9. #9
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par jmfmarques
    non
    le & " " & a n'était là que pour mettre de voir l'original en même temps que le résultat (permettre de vérifier en séparant par un espace)
    SI...

    J'ai mis l'espace dans le format
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  10. #10
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    J'ai mis l'espace dans le format
    je n'avais pas vu ce coup-là !
    Tu m'a roulé dans la farine de bon matin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. inverser un nombre binaire
    Par christophe_halgand dans le forum Débuter
    Réponses: 9
    Dernier message: 04/07/2012, 12h08
  2. inverser bits d'un nombre binaire
    Par jojo_ol76 dans le forum MATLAB
    Réponses: 7
    Dernier message: 09/11/2007, 10h05
  3. conversion nombre binaire -> decimal
    Par spoun95 dans le forum Langage
    Réponses: 7
    Dernier message: 25/11/2005, 17h46
  4. Réponses: 6
    Dernier message: 28/07/2005, 21h14
  5. [VB6]fonction inverse de Hex (nombres hexadécimaux)
    Par Guigui_ dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/10/2002, 19h31

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