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 :

Commande excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur réglementation télécoms
    Inscrit en
    Juillet 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur réglementation télécoms
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2023
    Messages : 2
    Par défaut Commande excel
    Bonjour,

    Dans le cadre d'un travail je dois réaliser un décoder 5b vers 31b thermométrique
    Idéalement j'aimerai bien le faire sur excel.
    Ce que je dois representé :
    Nom : DECODER.PNG
Affichages : 138
Taille : 35,0 Ko


    Idéalement le généralisé sur X bit,
    par exemple 6b vers 63b etc.

    Merci d'avance pour vos réponses !

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 547
    Par défaut
    en vba?
    l'algo serait simplement, à partir du nombre de bits de départ n, on sait que l'on va avoir 2^n valeurs et le principe à rajouter un 1 par la gauche au nombre précédent et de convertir l'indice d'itération en binaire (pour SEL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Sub Test()
    Dim nb_bits As Integer, i As Integer, max As Integer
    Dim val_sel As String
    Dim val_out As String
     
    nb_bits = Application.InputBox("nombre de bits:", Type:=1)
    If nb_bits < 0 Then Exit Sub
    max = 2 ^ nb_bits
    Range("a:b").NumberFormat = "@" 'pour afficher d
    For i = 0 To max - 1
        val_sel = Format(WorksheetFunction.Dec2Bin(i, nb_bits), String(nb_bits, "0"))
        val_out = String(max - 1 - i, "0") & String(i, "1")
        Cells(i + 2, 1).Value = val_sel 'cellule A(2+i)
        Cells(i + 2, 2).Value = val_out ' cellule B(2+i)
    Next i
    End Sub

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur réglementation télécoms
    Inscrit en
    Juillet 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur réglementation télécoms
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2023
    Messages : 2
    Par défaut
    Citation Envoyé par umfred Voir le message
    en vba?
    l'algo serait simplement, à partir du nombre de bits de départ n, on sait que l'on va avoir 2^n valeurs et le principe à rajouter un 1 par la gauche au nombre précédent et de convertir l'indice d'itération en binaire (pour SEL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Sub Test()
    Dim nb_bits As Integer, i As Integer, max As Integer
    Dim val_sel As String
    Dim val_out As String
     
    nb_bits = Application.InputBox("nombre de bits:", Type:=1)
    If nb_bits < 0 Then Exit Sub
    max = 2 ^ nb_bits
    Range("a:b").NumberFormat = "@" 'pour afficher d
    For i = 0 To max - 1
        val_sel = Format(WorksheetFunction.Dec2Bin(i, nb_bits), String(nb_bits, "0"))
        val_out = String(max - 1 - i, "0") & String(i, "1")
        Cells(i + 2, 1).Value = val_sel 'cellule A(2+i)
        Cells(i + 2, 2).Value = val_out ' cellule B(2+i)
    Next i
    End Sub
    Idéalement j'aimerai directement le faire sur EXCEL avec des commandes excel

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 547
    Par défaut
    tu as les fonctions DECBIN pour faire le travail de WorksheetFunction.Dec2Bin, et REPT pour un équivalent de la fonction String (répétition d'un caractère x fois) et je pense CELLULE("ligne"; [cellule]) pour gérer les indices
    En A2, ça pourrai être la formule =DECBIN(CELLULE("ligne";A2)-2;$C$1) avec C1 contenant le nombre de bits
    En B2, =CONCATENER(REPT("0";2^$C$1-CELLULE("ligne";B2)+1);REPT("1";CELLULE("ligne";B2)-2))formules à étendre aux lignes suivantes

Discussions similaires

  1. [XL-2016] VBA aide commande EXCEL Ping Liste de postes
    Par brioche31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/11/2017, 14h33
  2. Transcrire commande Excel dans vba
    Par obabylas1 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/10/2017, 00h33
  3. [WD-2003] Commander Excel depuis Word
    Par MarcoCham dans le forum VBA Word
    Réponses: 3
    Dernier message: 15/02/2011, 14h15
  4. Macro commande excel
    Par Nounours1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 18h03
  5. Commandes excel sous access
    Par Kalseln dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/07/2007, 16h19

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