Somma Celle dopo Confronto



  • Somma Celle dopo Confronto
    di Luca (utente non iscritto) data: 19/04/2013 22:49:56

    Buonasera,

    chiedo un vostro aiuto per la realizzazione di questa macro che spiego con un esempio:

    PRIMA --> img203.imageshack.us/img203/9761/primagt.jpg

    DOPO --> img194.imageshack.us/img194/9923/dopoj.jpg

    Mi piacerebbe poter creare nello stesso foglio di lavoro una colonna dove viene calcolata la somma del punteggio di ogni giocatore.

    Grazie a chi riesce a darmi una mano.

    Ciao!



  • di totygno71 data: 20/04/2013 09:56:02

    Ciao Luca,

    vuoi proprio una macro o ti va bene raggiungere l'obtv anche utilizzando formule?



  • di Luca (utente non iscritto) data: 20/04/2013 10:05:45

    Preferirei riuscire a realizzare una macro perche l'elenco dei giocatori è molto lungo ed inoltre alla macro devo poi aggiungere determinate cose. Il mio problema è il partire perchè non riesco a farli capire quando sommare la colonna "punteggio ottenuto"....in base a "Nome/Cognome"




  • di totygno71 data: 20/04/2013 10:32:08

    k

    non c'è nessun problema ^_^

    Tu hai già scritto qualcosa ???



  • di Luca (utente non iscritto) data: 20/04/2013 10:40:42

    Onestamente no. Cioè,

    credo di dover inserire un ciclo for each cell in [COLONNAA;COLONNAB] if cell...

    in cui confronto il contenuto della colonna A e B per ogni riga, e se il risultato è lo stesso, sommo il contenuto della colonna C,

    però a livello di codice non so come buttarlo giu'....



  • di totygno71 data: 20/04/2013 10:44:31

    Il concetto pùo essere valido, ma sommare nella colonna C? cosi verrà cancellato l'elenco originale però, se viene costruito un nuovo elenco a latare l'elenco originale rimane...
    Quale è la soluzione migliore???



  • di Luca (utente non iscritto) data: 20/04/2013 11:49:20

    no, non sommare nella colonna C, sommare il contenuto della colonna C ma in un'altra colonna.

    semplificando al massimo alla fine vorrei avere nome,cognome,punteggio nelle colonne A,B,C ed eseguendo la macro avere nelle colonne es. F,G,H nome, cognome ed il punteggio sommato per ogni giocatore..



  • di Luca (utente non iscritto) data: 20/04/2013 20:55:57

    Niente, ho provato un po di codici ma ci sono sempre errori di compilazione. L'unica piccolissima cosa che riesco a fare è questa:

    Sub Confronta_e_Somma()

    Dim Foglio As Worksheet
    Set Foglio = ThisWorkbook.Sheets(1)

    For Each cell In Foglio.[A:A]
    If cell <> prev Then
    Do

    End Sub

    ...cioè praticamente niente.

    Se qualcuno riesce a darmi almeno l'input per partire ve ne sarei grato!



  • di totygno71 data: 20/04/2013 21:52:21

    ecco
    prova il file allegato



  • di Luca (utente non iscritto) data: 20/04/2013 22:31:13

    Cavolo! Grazie mille, anche se mi fa capire che il mio livello di VBA è quindi pari allo ZERO!

    Sto cercando di capire la macro:

    Dopo aver settato le variabili "pulisco" il contenuto delle 3 nuove colonne, copio NOME,COGNOME nelle nuove colonne e rimuovo i nominativi doppi. Se il cognome è vuoto mi fermo, altrimenti, ...e qui diventa compicato Utilizzo rng, ma quindi faccio un controllo solo su COGNOME?
    -A cosa serve Header:=xlNo?
    -E' possibile modificare la macro perche non si fermi alla riga 15, ma controlli tutta la colonna, tipo settando le variabili, es. rng3 invece che [A3:B14] tutta la colonna A e B?

    Comunque, ancora grazie per l'aiuto!



  • di totygno71 data: 20/04/2013 22:50:08

    Prego_

    cit"ma quindi faccio un controllo solo su COGNOME?"
    RISP: Assolutamente No! si fa il controllo anche sul nome se provi a mettere rossi mario e rossi luca vedrai che distingue i due giocatori!
    Cit"A cosa serve Header:=xlNo? ... basta tradurlo in italiano ^_^
    cit"E' possibile modificare la macro perche non si fermi alla riga 15, ma controlli tutta la colonna, tipo settando le variabili, es. rng3 invece che [A3:B14] tutta la colonna A e B?"
    RISP: "si è possibile modificare i range basta cambiarli nel codice fino a quanto ti pare_

    Ciao



  • di Luca (utente non iscritto) data: 20/04/2013 23:05:24

    Riesci un attimo a spiegarmi:
    For Each c In rng1
    If c.Value = "" Then Exit For

    For Each w In rng
    If w.Value = c.Value And w.Offset(0, -1).Value = c.Offset(0, -1).Value Then
    c.Offset(0, 1).Value = c.Offset(0, 1).Value + w.Offset(0, 1).Value
    End If
    Next w

    Next c

    Non riesco a capire come fai a lavorare sulla colonna C?



  • di Luca (utente non iscritto) data: 20/04/2013 23:37:36

    Ci sono, ci sono. Penso di aver capito, almeno credo.

    Adesso faccio un pò di prove......domani arrivo però con altre domande!!!




  • di Luca (utente non iscritto) data: 21/04/2013 00:26:32

    Tantissime GRAZIE! Capito e realizzato la macro che mi serviva.

    Metto la spunta su risolta.

    Ciao!



  • di totygno71 data: 21/04/2013 14:58:14

    Prego:
    dovere ^_^



  • di stegalia (utente non iscritto) data: 14/05/2013 16:55:20

    ciao, mi servirebbe anche a me una cosa simile....
    ho un elenco con due colonne: codice e quantità
    io devo scorrere questo elenco e sommare le righe della colonna quantità se le righe della colonna codice sono uguali. Poi scrivere la somma e il codice in altre due colonne nuove..
    esempio
    CODICE QUANTITà CODICE_NEW QUANTITà_NEW
    AA 2 AA 2
    BA 3 BA 3
    BB 4 BB SOMMA (4+4+5)
    BB 4
    BB 5
    CF 6
    DG 2
    RE 4

    POTRESTI DARMI UNA MANO ? è UN ALGORITMO ABBASTANZA SEMPLICE MA NON PROGRAMMO DA 10 ANNI!!!
    GRAZIE



  • di Vecchio Frac data: 14/05/2013 17:42:34

    @stegalia
    meglio aprire una discussione nuova, anche perchè questa risulta "risolta".
    Nel merito, potresti cavartela probabilmente con la funzione =SOMMA.SE().
    Potresti anche vedere SUBTOTALE; in fondo si tratta di sommare le quantità al variare del campo codice.