combinare a 3 a 3



  • combinare a 3 a 3
    di griorgio (utente non iscritto) data: 11/06/2017 12:31:32

    salve, devo usare questa formula in DA10:

    =SE((CONTA.SE(CD10;1)+CONTA.SE(CE10;1)+CONTA.SE(CF10;1))<=2;"";3)

    poi in DB10

    =SE((CONTA.SE(CD10;1)+CONTA.SE(CE10;1)+CONTA.SE(CG10;1))<=2;"";3)

    =SE((CONTA.SE(CD10;1)+CONTA.SE(CE10;1)+CONTA.SE(CH10;1))<=2;"";3)

    la formula può essere anche cambiata è importante che dia sempre
    lo stesso risultato;

    e quindi combinare a 3 a 3 le celle da CD10 a CW10.

    Questo lavoro lo faccio manualmente e oltre al tempo che ci
    impiego (qualche ora) incorro sempre in errore a combinare
    le celle indicate che sono complessivamente 1140.

    Chiedo se cortesemente mi aiutate a sviluppuare le 1140
    combinazioni con una macro tenendo presente che la formula
    dovrebbe rimanere attiva in via di cambiamenti delle celle da DC a DW.

    diversamente anche con dati in testo con macro sperando non
    impieghi molto tempo.






  • di Marius44 data: 11/06/2017 15:54:06

    Ciao
    Prova con la macro sottostante (da assegnare ad un pulsante dopo averla inserita in un Modulo Standard) e vedi se è quello che vuoi (sempre se ho capito bene la domanda).

    Ciao,
    Mario
     
    Sub Combina()
    Set angolo = Range("CD10")
    Range("da10:bcd12").ClearContents
    For r = 10 To 12
        c = 104
        For i = angolo.Column To angolo.Column + 18
            uno = Cells(r, i).Value
            For j = i + 1 To angolo.Column + 19
                due = Cells(r, j).Value
                For k = j + 1 To angolo.Column + 20
                    tre = Cells(r, k).Value
                    ris = 0
                    ris = uno + due + tre
                    c = c + 1
                    Cells(r, c).Select
                    If ris > 2 Then Cells(r, c) = ris
                Next k
            Next j
        Next i
    Next r
    End Sub
    


  • combinare a 3 a 3
    di griorgio (utente non iscritto) data: 11/06/2017 16:25:52

    Salve Marius,

    direi perfetto, pensavo di far fatica a chiarire il concetto.

    un'altra piccola cosa io uso option explicit e all'avvio della macro
    mi chiede di nominare la variabile, se cortesemente puoi aggiungerla.

    Questo in VBA ma se volessi farlo con formula ci sarebbe un modo?
    (chiarisco che la macro fa quanto chiesto).

    Grazie



  • di Marius44 data: 11/06/2017 16:46:59

    Ciao
    Subito dopo Sub Combina inserisci le righe di codice che posto sotto e non dovresti aver problemi se i numeri nelle celle sono 0 o 1; se dovessero essere con decimali allora cambia Integer con Double.

    Non son bravo con le formule ma se metti tutte quelle formule il file s'appesantisce troppo e (dipende dalla potenza del processore) potrebbe rallentare anche di tanto.

    Ciao,
    Mario
     
    Dim angolo As Range
    Dim r as long, c as long, i as long, j as long, k as long
    Dim uno as integer, due as integer, tre as integer, ris as integer
    


  • completare dati iniziali
    di griorgio (utente non iscritto) data: 11/06/2017 17:35:55

    SI Marius,

    hai perfettamente ragione sull'esistenza delle formule
    anche perchè devo trattare 90 righe.

    Va bene basterà qualche minuto di elaborazione.
    Farò anche la correzione per l'espansione a 90 righe nella macro.
    Al riguardo dovrò correggereil 12 a 102.
    OK

    Grazie