Risultati da 1 a 15 di 15

Discussione: Copiare dati con ordine da un file all'atro



  1. #1
    L'avatar di FrancescoF
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    USA
    Età
    47
    Messaggi
    4
    Versione Office
    OFFICE 2013
    Likes ricevuti
    0
    Likes dati
    0

    Copiare dati con ordine da un file all'atro

    Ciao forum vengo alla mia richiesta.
    Ho due file excel con dati diversi nel foglio tranne uno il codice dei prodotti che si trova nella colonna A ma ogni codice non si trova nella stessa riga.
    Vorrei una macro per importare i dati dall'altro file abbinandoli al codice uguale.
    Vi faccio vedere un esempio per farvi capire meglio.
    File Allegati File Allegati

  2. #2
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Ciao francesco!
    Per te è necessario che i dati siano in due cartelle di lavoro diverse? perche se il tutto fosse in una cartella solo sarebbe veramente facilissimo con semplice formula con il CERCA.VERT

    =CERCA.VERT(A2;Foglio1!$A$2:$B$50;2;0)


    se invece vuoi due file a tutti i costi è tutta un'altra storia
    vedi allegato
    fammi sapere!
    File Allegati File Allegati

  3. #3
    L'avatar di FrancescoF
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    USA
    Età
    47
    Messaggi
    4
    Versione Office
    OFFICE 2013
    Likes ricevuti
    0
    Likes dati
    0
    Grazie gerardo quello che hai ottenuto è proprio quello che voglio ma i dati me li deve importare dall'altro foglio preferibilmente con una macro.

  4. #4
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Citazione Originariamente Scritto da FrancescoF Visualizza Messaggio
    Grazie gerardo quello che hai ottenuto è proprio quello che voglio ma i dati me li deve importare dall'altro foglio preferibilmente con una macro.
    Immaginavo, ma come si suol dire, "tentar non nuoce", e vedrai che prima o poi qualcuno troverà la soluzione per te
    Ciao e buona continuazione

  5. #5

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Usando il suggerimento di Gerardo (che saluto :43:), una soluzione potrebbe essere questa:
    Codice: 
    Sub Test()
    Dim myFile As String
    Dim Sht1 As Worksheet
    Dim Sht2 As Worksheet
    Dim uRiga1 As Long
    Dim uRiga2 As Long
    Dim iRow As Long
    
    
    ChDir ThisWorkbook.Path
    myFile = Application.GetOpenFilename(filefilter:="Cartella di lavoro di Excel,*.xlsx", Title:="Importa i dati dal file xxxx")
    If myFile = "Falso" Then Exit Sub
    
    
    Application.EnableEvents = False
    Application.DisplayAlerts = False
    Application.Calculation = xlCalculationManual
    
    
    Workbooks.Open myFile
    Sheets(1).Move Before:=Workbooks(1).Sheets(1)
    
    
    Set Sht1 = Workbooks(1).Sheets(2)
    Set Sht2 = Workbooks(1).Sheets(1)
    
    
    uRiga1 = Sht1.Cells(Rows.Count, 1).End(xlUp).Row
    uRiga2 = Sht2.Cells(Rows.Count, 1).End(xlUp).Row
    
    
    For iRow = 2 To uRiga1
        Sht1.Cells(iRow, 4) = Application.WorksheetFunction.VLookup(Sht1.Cells(iRow, 1), Sht2.Range("A2:B" & uRiga2), 2, 0)
    Next
    
    
    Sheets(1).Delete
    Application.EnableEvents = True
    Application.DisplayAlerts = True
    Application.Calculation = xlCalculationAutomatic
    End Sub
    Ma ce ce ne sono tante altre anche senza importare il foglio e avviando cicli paralleli

  6. #6
    L'avatar di FrancescoF
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    USA
    Età
    47
    Messaggi
    4
    Versione Office
    OFFICE 2013
    Likes ricevuti
    0
    Likes dati
    0
    Grazie del tuo tempo Rubik72 ho copiato il tuo codice in un modulo del FILE1 per importare i dati del FILE2 ma mi da errore
    scusami sono imbranato con excel e ti prego di avere pazienza forse sbaglio una banalità ma non so come rimediare

  7. #7

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Apri l'editor Vba (ALT +F11) ed esegui la macro passo passo (F8) e vedi su quale comando ti dà errore

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  8. #8
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Apri l'editor Vba (ALT +F11) ed esegui la macro passo passo (F8) e vedi su quale comando ti dà errore

    Inviato dal mio GT-I9301I utilizzando Tapatalk
    Rubik
    Ottima l'idea quella di non far trovare sempre la "pappa pronta" con il solito file in allegato con la soluzione servita in un piatto d'argento, ma bisogna guidare passo passo all'inserimento di un codice VBA (alt+F11) o alla ricerca di errori (F8)
    un minimo di sforzo ci deve essere anche dall'altra parte...
    credo che questo sia il minimo che bisogna fare per aiutare chi ha voglia di imparare, ovviamente il tuo metodo che sia di esempio e stimolo anche per gli altri esperti quando postano...
    ciao Rubik grazie per il tuo contributo

  9. #9
    L'avatar di A.Maurizio
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Torino
    Età
    56
    Messaggi
    383
    Versione Office
    2013
    Likes ricevuti
    44
    Likes dati
    0
    Ciao Rubick Per curiosità ho scaricato i due file di "FrancescoF" e poi ho incollato il tuo Suggerimento .
    Ma quando avvio il tutto e mi apre il menu per andare a cercare il FILE2 e dico OK copia il tutto .
    Nel file 1 non copia assolutamente nulla ; Perchè ?
    Premetto che prima di procedere , per verificare sè esattamente copiava il tutto ho Eliminato i vecchi dati .
    Per qui sò quello che dico ; Però forse mi sono perso in qualche cosa , Fammi sapere Grazie
    Saluti a te e a Gerardo

  10. #10

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    L'ho provato e mi sembra ok. Andiamo per gradi

    1) Chiudere Excel (eventualmente fosse aperto);
    2) Aprire Excel e il FILE1.xlsm;
    3) Avviare la routine;
    4) Indicare il file da cui ricercare i dati (FILE2.xlsx)

    a) La routine apre il FILE2.xlsm;
    b) Sposta il Foglio1 del FILE2.xlsm nel FILE1.xlsm (chiudendo automaticamente il FILE1.xlsm visto che conteneva un solo Foglio)
    c) "Ricerca" i dati richiesti con un VLOOKUP tramite VBA;
    d) Elimina il Foglio appena spostato.

    Seguendo queste indicazioni a me non da errori!

  11. #11
    L'avatar di Powerwin
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Milano
    Messaggi
    1404
    Versione Office
    2016 - 2010
    Likes ricevuti
    194
    Likes dati
    71
    Si può provare anche con:

    =INDICE(A1:B50;CONFRONTA(A2;[FILE2.xlsx]Foglio1!$A$1:$A$50;0);2)

    mettendo anche la path dove si trova il File2 e trascinando la formula

  12. #12
    L'avatar di FrancescoF
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    USA
    Età
    47
    Messaggi
    4
    Versione Office
    OFFICE 2013
    Likes ricevuti
    0
    Likes dati
    0
    Ciao rubik72 non funziona
    mi colora in giallo questa riga: myFile = Application.GetOpenFilename(filefilter:="Cartella di lavoro di Excel,*.xlsx", Title:="Importa i dati dal file xxxx")
    Vi ringrazio che volete farmi imparare ma io sono proprio negato con excel mi serviva solo un aiuto per importare questi dati che sono tanti.
    Grazie anche a te powerwin per la formula ma vorrei usare una macro.

  13. #13

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Proviamo così, sostituisci il comando:
    Codice: 
    myFile = Application.GetOpenFilename(filefilter:="Cartella di lavoro di Excel,*.xlsx", Title:="Importa i dati dal file xxxx")
    con il percorso esatto es:
    Codice: 
    myFile = "C:\Users\MioPC\Documents\FILE2.xlsx"
    Naturalmente il comando di prima ti consentiva di selezionare il file da importare, mentre quest'ultimo comando è "statico" e devi essere certo del percorso scritto e non puoi spostare il file2 successivamente

  14. #14

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Citazione Originariamente Scritto da Powerwin Visualizza Messaggio
    Si può provare anche con:

    =INDICE(A1:B50;CONFRONTA(A2;[FILE2.xlsx]Foglio1!$A$1:$A$50;0);2)

    mettendo anche la path dove si trova il File2 e trascinando la formula
    La formula "INDICE" cerca un valore nel FILE1 mentre lo deve cercare nel FILE2.
    Forse volevi scrivere

    Codice: 
    =INDICE([FILE2.xlsx]Foglio1!$B$2:$B$50;CONFRONTA(A2;[FILE2.xlsx]Foglio1!$A$2:$A$50;0))
    comunque penso sia più indicata e intuitiva il CERCA.VERT proposto da Gerardo nel post #2

  15. #15
    L'avatar di Powerwin
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Milano
    Messaggi
    1404
    Versione Office
    2016 - 2010
    Likes ricevuti
    194
    Likes dati
    71
    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    La formula "INDICE" cerca un valore nel FILE1 mentre lo deve cercare nel FILE2.
    Forse volevi scrivere

    Codice: 
    =INDICE([FILE2.xlsx]Foglio1!$B$2:$B$50;CONFRONTA(A2;[FILE2.xlsx]Foglio1!$A$2:$A$50;0))
    comunque penso sia più indicata e intuitiva il CERCA.VERT proposto da Gerardo nel post #2
    Sì è così, ho frainteso io l'ordine dei fogli :28:

Discussioni Simili

  1. Risposte: 3
    Ultimo Messaggio: 14/11/16, 22:00
  2. Modifica dati di una tabella da un foglio all'atro
    Di Eagles77 nel forum Domande su Excel VBA e MACRO
    Risposte: 18
    Ultimo Messaggio: 10/11/16, 18:48
  3. Valore per ordine di grandezza in rapporto agli altri dati in matrice
    Di Andrau nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 09/08/16, 14:57
  4. File carico scarico in ordine di data scadenza
    Di wifi75 nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 10/03/16, 11:24
  5. Copiare dati da vari fogli Excel Nuova risposta File allegato
    Di daniel84 nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 08/12/15, 20:45

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
  •