Risultati da 1 a 10 di 10

Discussione: Eliminare righe se alcune celle assumono un determinato valore



  1. #1
    L'avatar di Isaize
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Età
    32
    Messaggi
    5
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    2

    Eliminare righe se alcune celle assumono un determinato valore

    Salve a tutti sono nuovo e spero di esprimere con chiarezza la mia problematica.
    Mi trovo a dover affrontare un database (20000 righe) in cui:


    • devo ripetere il valore nella riga dispari, colonna "A", nella riga pari successiva ( a1=a2;a3=a4;a5=a6...)



    • a seconda che il valore ,nelle righe dispari, nella colonna "D", sia maggiore oppure minore uguale di un cut-off (0,05) devo "conservare" la riga stessa ed eliminare la successiva (>0,05) oppure eliminare la riga dispari stessa e conservare la pari successiva (<=0,05)



    • eliminare le righe che (dopo i passaggi precedenti) abbiano nella colonna "G" un valore >0,05


    Allego il file in cui riporto un esempio con 18 righe,credo sia indispensabile per capirsi. Scorrendo ci sono gli step (logici) successivi e infine il risultato atteso di due righe,o meglio ..sperato.

    Forse è una richiesta complicata, ma non ho che un idea molto vaga di come funzioni la VBA. Ringrazio in anticipo chi vorrà cimentarsi..
    File Allegati File Allegati
    Ultima modifica fatta da:Marius44; 25/10/16 alle 14:32

  2. #2
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    72
    Messaggi
    1389
    Versione Office
    Excel2007
    Mi Piace ricevuti
    349
    Mi Piace dati
    94

    Re: Eliminare righe se alcune celle assumono un determinato valore

    Ciao
    se debbo essere sincero, non ho capito molto
    Ti allego il tuo file in cui nelle colonne AA,AB e AC ho inserito delle formule. Prova a vedere se, in linea i massima, vanno bene. In seguito potrai sostituire i "min" e i "mag" con quello che devi fare.

    Ciao,
    Mario

  3. #3
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    72
    Messaggi
    1389
    Versione Office
    Excel2007
    Mi Piace ricevuti
    349
    Mi Piace dati
    94

    Re: Eliminare righe se alcune celle assumono un determinato valore

    Dimenticavo il file
    File Allegati File Allegati

  4. #4
    L'avatar di Isaize
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Età
    32
    Messaggi
    5
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    2

    Re: Eliminare righe se alcune celle assumono un determinato valore

    Ciao! e grazie della veloce risposta.
    Non devo essermi spiegato bene..e forse per questo non capisco cosa hai fatto nel file.
    Nell'esempio riporto solo le prime 18 righe di un file lungo 20000. (righe 1-18)


    successivamente(righe 21-38) riporto le stesse righe dopo aver riportato il valore della colonna A nelle righe dispari in quelle pari successive, come hai fatto tu con la formula
    Codice HTML: 
    =SE(A..<>"";A..;"")
    -e mi son accorto di aver trascinando aumentato di un valore manualmente!invece dovevo fare copia incolla!-


    ancora dopo (nelle righe da 41 a 57) riporto dinuovo le stesse 18 righe di esempio dopo averle "scremate" secondo le condizioni al secondo punto del mio primo post. Per scremate intendo che ho eliminato (solo cancellando i valori per tentare di spiegarmi) le righe a seconda che :
    se nella cella della riga dispari(del file iniziale)alla colonna D ho un valore superiore a 0,05 salvo la riga stessa ed elimino la successiva
    se nella cella della riga dispari(del file iniziale)alla colonna D ho un valore minore uguale a 0,05 salvo la riga successiva(pari) ed elimino la dispari su cui sto lavorando.
    le righe lavorano in coppia (1 e2;3 e4 ;...1735 e 1736) devo tenerne una e eliminare quella che non mi serve a seconda del valore alla colonna D delle righe dispari.


    l'ultimo step consiste nell'eliminazione delle righe superstiti che hanno un valore >0,05 alla colonna G.


    fatto questo mi restano solo le due righe che mi interessano (riga 60 e 61) che sono "oggetti" diversi che soddisfano le condizioni
    ogni oggetto inizialmente ha due righe per se, dopo il secondo step ne ha 1 (o la dispari o la sua pari successiva del file iniziale)
    infine elimino gli oggetti che non soddisfano la condizione al punto 3


    I valori delle caselle restano sempre i medesimi, devo solo scovare e tenere le righe che mi interessano ed eliminare tutto il resto
    posso farlo manualmente su 18 righe e non su 22000
    Quello che avevo in mente era di dare in tre fasi successive il compito ad excel di fare il lavoro da solo e ho immaginato che una macro (tre da eseguire in sequenza forse?) potessero assolvere al compito.


    Ti ringrazio ancora ,non so nemmeno se sia possibile fare quello chiedo e mi scuso se non si riesce ancora a capire ma a parole è molto difficile spiegare una cosa che verrebbe da dire " se qui ho questo valore mi tengo questa questa , se c'ho quest altro mi tengo l'altra.."


    Ciao,
    Isaia

  5. #5
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    72
    Messaggi
    1389
    Versione Office
    Excel2007
    Mi Piace ricevuti
    349
    Mi Piace dati
    94

    Re: Eliminare righe se alcune celle assumono un determinato valore

    Ciao
    Penso d'aver capito, finalmente, cosa vuoi fare e credo che sia più facile di quanto previsto.
    Inserisci in un Modulo standard di VBA il codice seguente e associalo ad un pulsante.
    Codice: 
    Option Explicit
    
    
    Sub prova()
    Dim i As Long
    For i = 1 To 18 Step 2
        Cells(i, 1).Copy
        Cells(i + 1, 1).PasteSpecial Paste:=xlValues
    Next i
    
    
    For i = 1 To 18 Step 2
        If Cells(i, 4) <= 0.05 Then
            Range(Cells(i, 1), Cells(i, 9)).ClearContents
        ElseIf Cells(i, 4) > 0.05 Then
            Range(Cells(i + 1, 1), Cells(i + 1, 9)).ClearContents
        End If
    Next i
    
    
    For i = 1 To 18
        If Cells(i, 7) > 0.05 Then
            Range(Cells(i, 1), Cells(i, 9)).ClearContents
        End If
    Next i
    End Sub
    Tieni presente che a me ne rimangono 3 non 2 come dici tu.
    Vedi se va bene. Ciao,
    Mario

  6. I seguenti utenti hanno dato un "Mi Piace"


  7. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    52
    Messaggi
    3700
    Versione Office
    2011/2016MAC
    Mi Piace ricevuti
    1104
    Mi Piace dati
    653

    Re: Eliminare righe se alcune celle assumono un determinato valore

    Ciao a tutti,
    confesso di non aver capito ...
    Per esempio dici come ultimo step che vuoi l'eliminazione delle righe che hanno un valore >0,05 alla colonna G ... ma tutte i valori che hai riportato nell'esempio superano 0,05!!!

    EDIT: Ciao Mario, mi pare che tu hai capito ... meglio così!
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  8. #7
    L'avatar di Isaize
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Età
    32
    Messaggi
    5
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    2

    Re: Eliminare righe se alcune celle assumono un determinato valore

    Grazie Mario! funziona perfettamente! (avevi ragione son tre le righe!)
    volevo chiederti solo un ultima cosa..si possono aggiungere delle linee di codice per cancellare le righe vuote? son certo che girando su questo utilissimo forum troverei il modo, ma preferirei una cosa "pulita".
    Grazie ancora! intanto se posso segnalare come [RISOLTO] vi prego di spiegarmi come fare!

  9. #8
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    48
    Messaggi
    4894
    Versione Office
    Office 2013
    Mi Piace ricevuti
    725
    Mi Piace dati
    738

    Re: Eliminare righe se alcune celle assumono un determinato valore

    Ciao Isaize
    Tu chiedi di mettere [RISOLTO] ma nello stesso tempo chiedi:
    si possono aggiungere delle linee di codice per cancellare le righe vuote?
    forse bisognerà aspettere per mettere RISOLTO?
    Fai sapere
    Un saluto

    Non mandate messaggi privati per problemi di excel, usate il forum per rishieste di aiuto
    Scarica il nuovo Add-ins per inserire griglie ed intervalli di Excel con il BBCode Clicca qui

  10. I seguenti utenti hanno dato un "Mi Piace"


  11. #9
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    72
    Messaggi
    1389
    Versione Office
    Excel2007
    Mi Piace ricevuti
    349
    Mi Piace dati
    94

    Re: Eliminare righe se alcune celle assumono un determinato valore

    Ciao
    Un consiglio: i dati da elaborare falli partire dalla riga 2. Nella riga 1 inserisci un pulsante oppure una figura a cui associare la macro.
    Per "ripulire", se ho capito bene cosa intendi, ho aggiunto l'ultimo ciclo.
    Allego il file, guarda il Foglio2 e clicca sul pulsante.
    La macro è diventata questa:
    Codice: 
    
    Option Explicit
    
    
    Sub prova()
    Dim i As Long, uriga As Long
    uriga = Cells(Rows.Count, 1).End(xlUp).Row + 1
    For i = 2 To uriga Step 2
        Cells(i, 1).Copy
        Cells(i + 1, 1).PasteSpecial Paste:=xlValues
    Next i
    For i = 2 To uriga Step 2
        If Cells(i, 4) <= 0.05 Then
            Range(Cells(i, 1), Cells(i, 9)).ClearContents
        ElseIf Cells(i, 4) > 0.05 Then
            Range(Cells(i + 1, 1), Cells(i + 1, 9)).ClearContents
        End If
    Next i
    For i = 2 To uriga
        If Cells(i, 7) > 0.05 Then
            Range(Cells(i, 1), Cells(i, 9)).ClearContents
        End If
    Next i
    For i = uriga To 2 Step -1
        If Cells(i, 1) = "" Then Rows(i).EntireRow.Delete Shift:=xlShiftUp
    Next i
    End Sub
    Se va bene, diccelo che metteremo RISOLTO.
    Ciao,
    Mario
    File Allegati File Allegati

  12. I seguenti utenti hanno dato un "Mi Piace"


  13. #10
    L'avatar di Isaize
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Età
    32
    Messaggi
    5
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    2

    Re: Eliminare righe se alcune celle assumono un determinato valore

    Grazie! l'ultima versione funziona perfettamente e assolve a tutti i compiti. Considero il mio problema risolto.

Discussioni Simili

  1. Salta celle con un determinato valore.
    Di NikiDiluccio nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 01/11/16, 12:17
  2. Eliminare righe che contengono un determinato valore
    Di Keishusan nel forum Domande su Excel VBA e MACRO
    Risposte: 14
    Ultimo Messaggio: 07/09/16, 12:43
  3. PROBLEMA:trovare intervallo celle dato un determinato valore.
    Di Amegrim nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 05/09/16, 13:09
  4. IF celle assumono un valore THEN fai apparire un foglio
    Di micheledag nel forum Domande su Excel VBA e MACRO
    Risposte: 23
    Ultimo Messaggio: 02/03/16, 17:15
  5. Contare celle consecutive scartando un determinato valore
    Di Davide nel forum Domande su Excel VBA e MACRO
    Risposte: 22
    Ultimo Messaggio: 09/01/16, 09:46

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •