Risultati da 1 a 8 di 8

Discussione: Unire due elenchi in uno singolo elenco ordinando per data



  1. #1
    L'avatar di mafryks
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    brescia
    Messaggi
    2
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    3

    Unire due elenchi in uno singolo elenco ordinando per data

    Ciao a tutti,

    ho due elenchi di poche voci in due fogli diversi,queste voci col passare dei giorni aumenteranno e vorrei unirle in un unico elenco rispettando l'ordine di data e ricopiando solamente le voci che soddisfano un determinato criterio.


    Nell'elenco del foglio 3 voglio riportare le celle B e C quando la corrispondente cella A ha un valore=1 , se ho solo un elenco non ho problemi ma nel mio caso ho due elenchi in due fogli diversi(foglio 1 e foglio 2) da unire nel foglio 3 mantenendo l'ordine della data e non so come impostare le formule. Grazie
    File Allegati File Allegati
    Ultima modifica fatta da:Canapone; 31/05/16 alle 15:54

  2. #2

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6778
    Versione Office
    2013
    Likes ricevuti
    716
    Likes dati
    164

    Re: Unire due elenchi in uno singolo elenco ordinando per data

    Ciao Mafryks

    Potresti provare questa macro

    Codice: 
    Sub copia()
    Dim ur1 As Long
    Dim ur2 As Long
    Dim lr As Long
    Dim rng1 As Range
    Dim rng2 As Range
    Dim cel As Range
    ur1 = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
    ur2 = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
    Set rng1 = Sheets("Sheet1").Range("a7:a" & ur1)
    Set rng2 = Sheets("Sheet2").Range("a7:a" & ur2)
    For Each cel In rng1
    lr = Sheets("Sheet3").Cells(Rows.Count, "E").End(xlUp).Row
    If cel.Value = 1 Then
    Range("a" & cel.Row & ":" & "c" & cel.Row).Copy Destination:=Sheets("Sheet3").Range("e" & lr + 1)
    End If
    Next cel
    For Each cel In rng2
    lr = Sheets("Sheet3").Cells(Rows.Count, "E").End(xlUp).Row
    If cel.Value = 1 Then
    Range("a" & cel.Row & ":" & "c" & cel.Row).Copy Destination:=Sheets("Sheet3").Range("e" & lr + 1)
    End If
    Next cel
    End Sub
    inserita nel file allegato.

    Sullo Sheet3 clicca sul pulsante copia.

    Tieni presente che la macro è stata scritta sulla base dell'esempio che hai allegato.

    Fai sapere.

    Alfredo
    File Allegati File Allegati

  3. I seguenti utenti hanno dato un "Like"


  4. #3

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6778
    Versione Office
    2013
    Likes ricevuti
    716
    Likes dati
    164

    Re: Unire due elenchi in uno singolo elenco ordinando per data

    Ciao Mafryks

    Giusto per divertimento ho riscritto la macro perché quella di prima non mi piaceva tanto dal punto di vista "estetico" (anche se funzionava correttamente.

    Codice: 
    Sub copia()
    Dim i As Integer
    Dim ur As Long
    Dim lr As Long
    Dim rng As Range
    Dim cel As Range
    Application.ScreenUpdating = False
    For i = 1 To 2
        Sheets(i).Select
        ur = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
        Set rng = Range("a7:c" & ur)
            For Each cel In rng
                lr = Sheets("Sheet3").Cells(Rows.Count, "E").End(xlUp).Row
                    If cel.Value = 1 Then
                        Range("a" & cel.Row & ":" & "c" & cel.Row).Copy Destination:=Sheets("Sheet3").Range("e" & lr + 1)
                    End If
            Next cel
    Next i
    Sheets("Sheet3").Select
    Application.ScreenUpdating = True
    End Sub
    Anche questa funziona strettamente sulla base dell'esempio da te allegato; se le colonne delle tabelle fossero di più o se l'operazione dovesse essere eseguita su più di due fogli andrebbe modificata in relazione alle tue reali necessità.

    Allego nuovo file con la nuova macro.

    Fai sapere.

    Alfredo
    File Allegati File Allegati

  5. I seguenti 4 utenti hanno dato un "Like" a alfrimpa per questo post:


  6. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7125
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1298

    Re: Unire due elenchi in uno singolo elenco ordinando per data

    Ciao Alfredo,
    la tua mi sembra una buona soluzione, però se decide di modificare qualcosa e aggiornare, per evitare che i dati si aggiungano in basso, se mi permetti, suggerirei di aggiungere questa riga dopo Application.ScreenUpdating = False:

    Codice: 
    uR0w = 
    Sheets("Sheet3").Range(Cells(7, 5), Cells(100, 7)) = ""
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  7. I seguenti utenti hanno dato un "Like"


  8. #5

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6778
    Versione Office
    2013
    Likes ricevuti
    716
    Likes dati
    164

    Re: Unire due elenchi in uno singolo elenco ordinando per data

    Grazie Ges per l'opinione e per l'appunto.

    In pratica, se non capisco male, è un ClearContents sulla zona?

    Ringrazio anche te e Gerardo per il "mi piace".

    Alfredo

  9. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7125
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1298

    Re: Unire due elenchi in uno singolo elenco ordinando per data

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Grazie Ges per l'opinione e per l'appunto.

    In pratica, se non capisco male, è un ClearContents sulla zona?

    .....

    .
    Si, quando posso evito ClearContents potendo ottenere con questo metodo lo stesso risultato in modo diciamo "meno invasivo"
    P.S. - E' un suggerimento di scossa di cui tengo sempre conto.:90:
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  10. #7
    L'avatar di mafryks
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    brescia
    Messaggi
    2
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    3

    Re: Unire due elenchi in uno singolo elenco ordinando per data

    Ciao a tutti,

    Grazie per l'aiuto,la macro funziona correttamente e risolve il mio problema, ho aggiunto anche il codice inviato da ges per fare in modo che i dati non si aggiungessero in basso.:208:


    Gianluca

  11. #8
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133

    Re: Unire due elenchi in uno singolo elenco ordinando per data

    Un saluto a tutti gli amici del forum, pur rendendomi conto che la discussione in oggetto è stata chiusa positivamente, ho voluto dare una risposta con l'utilizzo delle formule.
    Per cui, se non commetto infrazione suggerisco una mia ipotesi.
    Utilizzando tre colonne di supporto nel foglio Sheet3, e precisamente le colonne: I, J, K, inserisco la seguente:

    In I7:
    =SE.ERRORE(SE(VAL.ERRORE(INDICE(Sheet1!A$7:A$13;AGGREGA(15;6;(RIF.RIGA(Sheet1!$A$7:$A$13)-RIF.RIGA(Sheet1!$A$7)+1)/(Sheet1!$A$7:$A$13>0);RIF.RIGA(Sheet1!A1))));INDICE(Sheet2!A$7:A$13;AGGREGA(15;6;(RIF.RIGA(Sheet2!$A$7:$A$13)-RIF.RIGA(Sheet2!$A$7)+1)/(Sheet2!$A$7:$A$13>0);RIF.RIGA(Sheet2!A1)-SOMMA(Sheet1!$A$7:$A$13)));INDICE(Sheet1!A$7:A$13;AGGREGA(15;6;(RIF.RIGA(Sheet1!$A$7:$A$13)-RIF.RIGA(Sheet1!$A$7)+1)/(Sheet1!$A$7:$A$13>0);RIF.RIGA(Sheet1!A1))));"")

    da trascinare verso destra fino alla colonna K, e successivamente da tirare giù.

    In ultimo sempre nel foglio Sheet3 copio:
    In E7:
    =INDICE($I$7:$I$17;AGGREGA(14;6;(RIF.RIGA($J$7:$J$17)-6)/(($J$7:$J$17+RIF.RIGA($J$7:$J$17)/100)=PICCOLO($J$7:$J$17+RIF.RIGA($J$7:$J$17)/100;RIGHE($J$7:$J7)));1))

    In F7:
    =PICCOLO($J$7:$J$17;RIGHE($J$7:$J7))

    In G7:
    =INDICE($K$7:$K$17;AGGREGA(14;6;(RIF.RIGA($J$7:$J$17)-6)/(($J$7:$J$17+RIF.RIGA($J$7:$J$17)/100)=PICCOLO($J$7:$J$17+RIF.RIGA($J$7:$J$17)/100;RIGHE($J$7:$J7)));1))

    tutte e tre da tirare giù.
    Allego il file di prova.
    Saluti.
    File Allegati File Allegati

  12. I seguenti utenti hanno dato un "Like"

    ges

Discussioni Simili

  1. Elenchi a tendina concatenati
    Di MirkoB nel forum Domande su Excel in generale
    Risposte: 20
    Ultimo Messaggio: 06/12/16, 01:51
  2. Errore Ordinando x Colonna
    Di ik8ozv nel forum Domande su Excel in generale
    Risposte: 73
    Ultimo Messaggio: 09/08/16, 20:15
  3. Fogli in automatico da due elenchi
    Di alessandro79 nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 23/05/16, 11:51
  4. Elenco in ordine di data
    Di Maxy nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 08/03/16, 15:22
  5. Salvare singolo foglio in excel
    Di James nel forum Domande su Excel in generale
    Risposte: 0
    Ultimo Messaggio: 26/02/16, 11:14

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
  •