Condividi:        

Unire 2 file Excel con aggiornamento automatico

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Unire 2 file Excel con aggiornamento automatico

Postdi Dany22xx » 20/01/16 00:12

Ciao a tutti gli utenti,sono nuovo di questo forum...sono a scrivere perché chiedere aiuto su come unire 2 file Excel e con aggiornamento automatico.
É da circa un mese che faccio delle prove ma senza risultato vi spiego cosa devo fare:
Devo creare un file Excel (file 2), contenente le seguenti colonne :codice cliente , nome cliente, importo, note .
Le colonne codice, nome , importo devono aggiornarsi in automatico da un altro file Excel (chiamiamolo file 1)tutte le volte che apriamo il file ,questi campi devono essere bloccati da non poterli modificare manualmente, invece le note vengono inserite manualmente, il tutto deve essere in ordine d'importo dal maggiore al minore e tutti i campi della riga legati tra di loro.
Il file 1 viene salvato nella stessa cartella del file 2 e non deve essere modificato di volta in volta, il file 1 viene estrapolato da un gestionale ed al suo interno ci sono circa 30 colonne campi definiti x un numero variabile di righe con la prima riga di testata.a noi ci interessa solo le colonne codice cliente, nome ,importo. (Primo problema,il codice cliente non É mai salvato nella stessa riga, É che nel file a volte ci sono 30 a volte ne contiene 50 righe )
Problema n.2: se inserisco nel file 2 delle note sul cliente "pluto" sulla riga "5" ma aggiornando il file 1 il cliente pluto non é piu sulla riga 5 ma si é spostato sulla riga "11"le note devono sopostarsi rimanendo legate agli altri campi oppure se il cliente pluto non É presente nell,elenco le note devono cancellarsi altrimenti finire in fondo all'elenco per poi essere cancellate manualmente.
In pratica i campi codice cliente,nome, importo devono aggiornarsi in automatico all'apertura del file, le note devono spostarsi sulla riga della posizione del cliente ed il tutto in ordinè di importo dal maggiore al minore.
Possiamo usare il codice cliente come campo univoco x il collegamento dei dati, il problema É mettere tutto assieme per poter far funzionare il file.
Spero di essere stato chiaro sul problema, ringrazio anticipatamente tutti quelli che mi daranno un aiuto in merito
Grazie danilo
Dany22xx
Newbie
 
Post: 2
Iscritto il: 19/01/16 22:37

Sponsor
 

Re: Unire 2 file Excel con aggiornamento automatico

Postdi Anthony47 » 20/01/16 03:04

Ciao Dany22XX, benvenuto nel forum.
A grandi linee il processo e' questo:
-dal file del gestionale popoli la colonna Codice Cliente di File2, accodando al File solo i Codici non ancora presenti (ovviamente la prima volta sono tutti "non presenti", quindi verranno accodati tutti). In questo modo sul File 2 il Codice cliente rimane la chiave di tutte le altre operazioni.
-usando la chiave Codice cliente, tramite Cerca.Vert prelevi dal file gestionale i dati che ti interessano. Usa formule del tipo =SE.ERRORE(CERCA.VERT(Valore; [File1.xlsx]Foglio1'!TabellaDati;ColonnaCercata;0);"") per evitare l'errore #N/D in caso di Codice non trovato.
-le Note le scrivi sulla riga del Codice cliente a cui si riferiscono.
-quando vuoi esegui un ordinamento di tutte le colonne di File2 per Valore crescente; come risultato dell'ordinamento le righe di codici non presenti nel file1 finiranno in fondo,

Per popolare in File2 l'elenco dei Codici clienti potrai usare questa macro, da inserire in File2 e da lanciare dopo aver selezionato il foglio di tuo interesse:
Codice: Seleziona tutto
Sub newCC()
Dim File1 As Worksheet, LastA As Long, J As Long
'
LastA = Cells(Rows.Count, 1).End(xlUp).Row
Set File1 = Workbooks("FileDelGestionale.xlsx").Sheets("Foglio1")      '<<<<
For i = 1 To File1.Cells(Rows.Count, 1).End(xlUp).Row
    If Application.WorksheetFunction.CountIf(Range("A:A"), File1.Cells(i, 1)) = 0 Then
        Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = File1.Cells(i, 1)
        J = J + 1
    End If
Next i
If LastA > 1 And J > 0 Then
    Range(Cells(LastA, 2), Cells(LastA, Columns.Count).End(xlToLeft)).Copy Cells(LastA + 1, 2).Resize(J, 1)
End If
End Sub

La riga marcata <<< va personalizzat col nome del file e del foglio contenenti i dati del gestionale.

La prima volta la eseguirai col foglio "vuoto", e saranno inseriti tutti i Codici Clienti presenti.
A questo punto inserisci sulla prima riga le formule che ti servono per popolare questo foglio coi dati che cerchi, e copiale sulle righe successive.
Lavora sul file, e facci le cose che servono.

Per ordinarlo puoi registrare una macro mentre:
-selezioni tutte le colonne usate del foglio
-esegui l'ordinamento secondo le colonne che ritieni
-interrompi la registrazione
Assegni quindi la macro a un pulsante, in modo che quando vorrai rieseguirla bastera' premere il pulsante.

La volta successiva che riesegui la Sub newCC, con un nuovo file1, i Codici clienti non ancora presenti saranno accodati, e le formule che hai impostato copiate automaticamente su queste righe.

Penso che questo sia tutto... adesso tocca a te.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Unire 2 file Excel con aggiornamento automatico

Postdi Dany22xx » 20/01/16 08:56

grazie mille per la velocissima risposta, oggi o domani provo a vedere se riesco a farla funzionare, grazie
Danilo
Dany22xx
Newbie
 
Post: 2
Iscritto il: 19/01/16 22:37


Torna a Applicazioni Office Windows


Topic correlati a "Unire 2 file Excel con aggiornamento automatico":


Chi c’è in linea

Visitano il forum: Nessuno e 75 ospiti