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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 43
    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 : 43
    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

+ 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