Matrice Binaria in VBA



  • Matrice Binaria in VBA
    di Andrea TO (utente non iscritto) data: 15/11/2013 10:59:14

    Buongiorno,
    sono qui per chiedervi un aiuto in merito ad una piccola macro che vorrei sviluppare, ho la necessita di sviluppare date 3 variabili ( A, B, C) una matrice binaria con tutte le combinazioni possibili:
    es:
    A
    B
    C



    rig1 A B C
    rig2 1 1 1
    rig3 1 1 0
    rig4 1 0 1
    rig5 1 0 0
    rig6 0 1 1
    rig7 0 1 0
    rig8 0 0 1
    rig9 0 0 0

    Io date 3 variabili so che le massime combinazioni possibili sono 2 ^ Num Var ( esempio sopra 3 Variabili massime combinazioni 8 cioè 2 ^ 3 = 8 ) , inoltre so sempre che la prima colonna sara così composta ( 4 volte "1" + 4 volte "0" cioè Num combinazioni / 2 ^ 1 ) la seconda colonna sarà così composta 2 volte "1" + 2 volte "0" + 2 volte "1" + 2 volte "0" ( Num combinazioni / 2 ^ 2 ).

    Tutto ciò chiaramente deve essere fatto cambiando il numero delle variabili iniziali.


    un pò incasinato lo so :), speriamo che qualcuno di voi possa aiutarmi.
    In ogni caso Grazie 1000




  • di Andrea TO (utente non iscritto) data: 15/11/2013 11:42:36

    Allego immagine che può aiutare a comprendere



  • di totygno71 (utente non iscritto) data: 15/11/2013 12:21:39

    Fa quello richiesto ma potrebbe essere ottimizzato...
    Provare per credere!
    ciao



  • di Andrea TO (utente non iscritto) data: 15/11/2013 12:53:08

    Grazie Totygno,
    ma purtroppo non è ciò che vorrei fare, è un pizzico più complesso perchè le variabili in un caso potrebbero essere 3 in un' altro 5 in un altro ancora 2 ecc..ecc..
    Nell 'immagine che ho allegato penso che sia più chiara la mia esigenza.
    Ma in ogni caso Grazie



  • di totygno71 (utente non iscritto) data: 15/11/2013 13:17:22

    bhe allora devi essere piu preciso...

    esempio sai quante possono essere al massimo le variabili...???



  • di Andrea TO (utente non iscritto) data: 15/11/2013 13:21:06

    Non c'è un limite ma possiamo pensare che sia per esempio 10



  • di Andrea TO (utente non iscritto) data: 15/11/2013 14:01:49

    Ok c'è l' ho fatta !!!
    Evviva
    qui sotto il codice
     
    Sub prova_bool()
    '
    ' prova_bool Macro
    '
    
    '
        Sheets("Foglio1").Select
        Range("A1").Select
        Range(Selection, Selection.End(xlDown)).Select
        ' Conta le variabili scritte sulla colonna A
        
        N_Var = Selection.Rows.Count
        
        Sheets("Foglio2").Select
        
        
        Rig = 2 ^ N_Var
         
        For i = 1 To N_Var
        
        
        x = 2 ^ i
        y = Rig / x
        
      
        Range(Cells(1, i), Cells(Rig / x, i)).Select
        Selection.Value = "1"
        Range(Cells(Rig / x + 1, i), Cells(Rig / x + y, i)).Select
        Selection.Value = "0"
        Cells(1, i).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        copia = Selection.Rows.Count
        Range(Cells(1, i), Cells(Rig, i)).Select
        ActiveSheet.Paste
        
        
        Next
        
        
        
    End Sub
    



  • di totygno71 (utente non iscritto) data: 15/11/2013 15:23:08

    bravo allora spunta su risolto e magari ottimizza il codice ricordanti di dimensionare le variabili (Option explicit)


  • Matrice Binaria in VBA
    di Andrea TO (utente non iscritto) data: 15/11/2013 15:51:38