Condividi:        

Copia dati in piu file

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

Copia dati in piu file

Postdi salatony » 26/10/18 17:22

Ciao,
Ho un problema, spiego,
Ho un file Excel (foglio1)nel quale ho una lista fornitori con i loro codici consegnati + alcuni dati, così formato:
Col.a nomi fornitori
Col.b codici (lettere e n°)
Col. C alla X , ci sono i dati.
Avrei bisogno di copiare questi dati (da col. C a col. X), nella corrispettiva cartella fornitore (ogni fornitore ha una cartella con i rispettivi file , i nomi dei file sono quelli che dicevo prima nel foglio1 col.b).
Una volta aperti i file dei codici (da foglio1 col.b),
Per ogni file aperto bisogna copiare i dati da foglio1, da col.c a col.x, ma.... Bisogna copiarli nella 1° cella vuota che si incontra nella col.c20 (del file destinazione) in giù, questo perché ci sono altri dati registrati, poi io verifico e salvo
Grazie
Ciao
salatony
Utente Junior
 
Post: 68
Iscritto il: 08/11/13 21:16

Sponsor
 

Re: Copia dati in piu file

Postdi Anthony47 » 27/10/18 17:46

Mi sembrano piu' specifiche funzionali che richieste di aiuto per un forum...

Comunque per poter dare una risposta dovresti chiarire se nel "foglio1" hai di volta in volta un unico fornitore (come farebbe pensare la frase "poi io verifico e salvo") OPPURE ci sono sequenze di fornitori, anche alternati tra di loro, che quindi andrebbero prima filtrati e poi spostati tutti sul "giusto file cliente" (per cui alla fine ti troverai con N file aperti, di cui 1 quello di partenza e N-1 da controllare e chiudere manualmente, come da tua richiesta).

Non ultimo, chiarisci se il nome file=none cliente e' in colonna A oppure B

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

Re: Copia dati in piu file

Postdi salatony » 05/11/18 17:02

Ti rispondo
In foglio1 col.a ci sono sequenze con nomi di fornitori, alcuni uguali (perché consegnano piu codici diversi).
Sempre in foglio1 col.b, ci sono i nomi dei file (codici consegnati, da cercare e aprire), e poi copiare quello che è presente a dx, da col.c ad x (della stessa riga sempre foglio1) e incollare solo queste celle nei file di destinazione aperti, ma a partire dall'ultima cella libera sotto c20 (i file restano aperti) io verifico se l incollatura é ok, chiudo e salvo.
Ciao
salatony
Utente Junior
 
Post: 68
Iscritto il: 08/11/13 21:16

Re: Copia dati in piu file

Postdi Anthony47 » 06/11/18 17:34

La mia interpretazione e' questa macro:
Codice: Seleziona tutto
Sub spalmer()
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=110135
Dim I As Long, fPath As String, nFile As String, fExt As String, flOk As Boolean
Dim sWs As Worksheet, myNext As Long, shName As String, J As Long, cRow As Long

fPath = "C:\PROVA\"         '<<< La directory con i file da popolare, con lo \ finale
fExt = ".xlsx"              '<<< Il "tipo" di file Excel da cercare
shName = "Foglio1"          '<<< Il Nome del FOGLIO da popolare

Set sWs = ActiveSheet
For I = 2 To Cells(Rows.Count, "B").End(xlUp).Row
    cRow = 0
    nFile = Cells(I, "B").Value & fExt
    If Application.WorksheetFunction.CountIf(Range("B2").Resize(I - 1, 1), Cells(I, "B").Value) < 2 Then
        On Error Resume Next
            Workbooks.Open fPath & nFile
        On Error GoTo 0
        For J = I To sWs.Cells(sWs.Rows.Count, "B").End(xlUp).Row
            If sWs.Cells(J, "B") = sWs.Cells(I, "B") Then
                cRow = cRow + 1
                If UCase(ActiveWorkbook.Name) = UCase(nFile) Then
                    flOk = True
                    Sheets(shName).Select
                    myNext = Cells(Rows.Count, "C").End(xlUp).Row + 1
                    Cells(myNext, "C").Resize(1, 22).Value = sWs.Cells(J, "C").Resize(1, 22).Value
                    sWs.Cells(J, "B").Interior.Color = RGB(0, 255, 0)
                Else
                    flOk = False
                    sWs.Cells(I, "B").Interior.Color = RGB(255, 0, 0)
                End If
            End If
        Next J
        If flOk Then
            MsgBox ("Controlla le righe aggiunte (" & cRow & ") Poi continua la macro usando F5")
            Stop
            On Error Resume Next
                Workbooks(nFile).Close True
            On Error GoTo 0
            flOk = False
        Else
            MsgBox ("File non trovato: " & nFile & vbCrLf & "Righe orfane: " & cRow & vbCrLf & "Controlla, poi continua la macro usando F5")
            Stop
            ThisWorkbook.Activate
        End If
    End If
    ThisWorkbook.Activate
Next I
MsgBox ("Completato...")
End Sub

Va messa in un modulo standard del vba e va eseguita avendo prima attivato il foglio contenente i dati da "spalmare"
Le righe marcate <<< vanno personalizzate, come da commento.

La macro:
1) esamina la colonna B del foglio attivo, da riga 2 in avanti
2) cerca di aprire il file avente quel nome file, guardando nella directory che e' stata dichiarata
2a) se trova il file, accoda al contenuto gia' presente tutti i record che nel file di origine in colonna B hanno quello stesso valore. La cella B sul foglio originale viene colorata in verde.
A fine elenco la macro si sospende e l'utente viene invitato a controllare quanto fatto; se tutto Ok l'utente puo' continuare la macro premendo F5 sulla finestra del vba; se non e' Ok l'utente deve chiudere il file di destinazione (quello su cui sono state aggiunte le righe) SENZA SALVARLO, e poi continuare la macro sempre con F5. Le celle di colonna B RIMANGONO COLORATE DI VERDE, salvo azione manuale dell'utente
2b) se non trova il file allora la cella B sul foglio originale viene colorata in rosso e un messaggio averte della presenza di N record "orfani"; la macro va ripresa sempre col tasto F5

Questo viene ripetuto per ogni codice diverso dai precedenti trovato in colonna B.

Prova e fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copia dati in piu file

Postdi salatony » 14/11/18 14:53

Ho provato,
risposta:
File non trovato.
Allora Ho creato una cartella (test), con 2 file + il file principale che contiene i dati da cercare e copiare.
Nella macro in fpath ho inserito il percorso della cartella Test, o verificato l'estensione .xls. xlsx, ma nulla è stato aperto e copiato. ciao
salatony
Utente Junior
 
Post: 68
Iscritto il: 08/11/13 21:16

Re: Copia dati in piu file

Postdi Anthony47 » 14/11/18 22:45

Allora zippa la "cartella (test), con 2 file + il file principale" con la macro da te inserita; poi pubblica il file .zip e vedremo di capire dove e' l'inghippo

Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

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

Re: Copia dati in piu file

Postdi salatony » 19/11/18 12:02

Ciao,
La cosa diventa complicata (per me), che non ho Internet a casa ma devo utilizzare il cellulare.
Inoltre ho Excel 2003.
Se non si riesce lasciamo perdere.
Grazie
Ciao
salatony
Utente Junior
 
Post: 68
Iscritto il: 08/11/13 21:16

Re: Copia dati in piu file

Postdi Anthony47 » 19/11/18 13:02

La cosa diventa complicata (per me), che non ho Internet a casa ma devo utilizzare il cellulare.
Che strano… Io quando ho bisogno di andare veloce (soprattutto in upload) uso il cellulare che va in 4G ed e' molto piu' veloce dell'Adsl!

Il tuo file serve per capire perche' il mio processo non ha dato gli esiti sperati: Non funziona? E' stato usato male? Ho interpretato male la richiesta?

Senza non so da dove partire…
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copia dati in piu file

Postdi salatony » 29/11/18 11:21

Ciao,
Ho provato ancora,
Ho creato una cartella c:\pippo\test+file principale, non funzionava, poi ho provato c:\pippo\test(svuotata)+file principale+file da aggiornare (che erano nella cartella test) così funziona.
Però ci sono un paio di cose da sistemare.
A) non apre i file che sono all'interno della cartella test
B) LA finestra di conferma e la pag. Visibile del vba con f5, sono un problema (mi lega alla sequenza di apertura dei file), molto meglio aprire (e tenere aperti) tutti i file insieme e aggiornarli subito, poi io li correggo e salvo.
C) ok x le celle verdi e rosse
Grazie
Ciao
salatony
Utente Junior
 
Post: 68
Iscritto il: 08/11/13 21:16

Re: Copia dati in piu file

Postdi Anthony47 » 29/11/18 15:39

Se stai usando la macro che ti avevo suggerito il 5-nov, allora la directory in cui sono presenti i file da aprire e' dichiarata nell'istruzione
Codice: Seleziona tutto
fPath = "C:\PROVA\"         '<<< La directory con i file da popolare, con lo \ finale
che avevo spiegato era da personalizzare secondo la tua situazione.

Quanto a non interrompere la macro, identifica il ciclo If flOk Then /Else / End If e sostituisci il codice attuale con
Codice: Seleziona tutto
        If flOk Then
            Beep
            flOk = False
        Else
            MsgBox ("File non trovato: " & nFile & vbCrLf & "Righe orfane: " & cRow & vbCrLf & "Controlla, poi continua la macro usando F5")
'            Stop
            ThisWorkbook.Activate
        End If

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

Re: Copia dati in piu file

Postdi salatony » 04/12/18 17:11

Ciao,
Va bene anche così,
però quando non trova il file da aggiornare,e quindi la cella si colora di rosso, viene ancora fuori la macro con f5 (ok x il verde).
Cmq grazie molto.
Alla prossima
Ciao
salatony
Utente Junior
 
Post: 68
Iscritto il: 08/11/13 21:16

Re: Copia dati in piu file

Postdi salatony » 04/12/18 17:16

Dimenticavo, ho fatto la sostituzione del codice che mi hai chiesto come dicevo sopra è ok
Ciao
salatony
Utente Junior
 
Post: 68
Iscritto il: 08/11/13 21:16

Re: Copia dati in piu file

Postdi Anthony47 » 05/12/18 11:38

Pero' non ho capito se ora e' tutto Ok o c'e' ancora qualcosa…
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copia dati in piu file

Postdi salatony » 07/12/18 15:53

Be, si qualcosa c'è,
devo dichiarare la directory, per ogni fornitore.
Quando, potrebbe aprire in automatico le directory e i file, che si trovano nel file principale, in foglio1 (colonna a, le directory da aprire, colonna b, i file da aprire, e da col. C ad ... quello che deve essere copiato)

Ma potrebbe andare bene con quello che hai progettato.
Ciao

P.s.
Ma perché quando scrivo scompare Anteprima e Invia?
salatony
Utente Junior
 
Post: 68
Iscritto il: 08/11/13 21:16

Re: Copia dati in piu file

Postdi Anthony47 » 08/12/18 00:31

Be, si qualcosa c'è,
devo dichiarare la directory, per ogni fornitore.
Quando, potrebbe aprire in automatico le directory e i file, che si trovano nel file principale, in foglio1 (colonna a, le directory da aprire, colonna b, i file da aprire, e da col. C ad ... quello che deve essere copiato)

Senza un file dimostrativo faccio fatica a comprendere; non riesci proprio ad allegarlo?

Sulla scomparsa di Anteprima e Invia quando scrivi un messaggio non so; pero' se ti scompare Invia, come fai a pubblicare il tuo messaggio?

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

Re: Copia dati in piu file

Postdi salatony » 08/12/18 18:59

Ciao, quando non ce invio, apro due schermate nel cellulare, e poi copio e incollo, cmq la causa è lunghezza del mess.comeora
salatony
Utente Junior
 
Post: 68
Iscritto il: 08/11/13 21:16

Re: Copia dati in piu file

Postdi salatony » 08/12/18 19:01

Il file era già zippato ma come spedirlo senza scaricare altri prg?
Ciao
salatony
Utente Junior
 
Post: 68
Iscritto il: 08/11/13 21:16

Re: Copia dati in piu file

Postdi Anthony47 » 08/12/18 19:13

Per allegare un file puoi usare un servizio di filesharing, ad esempio filedropper.com; vedi viewtopic.php?f=26&t=103893&p=605487#p605487

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

Re: Copia dati in piu file

Postdi salatony » 13/12/18 21:37

ciao,
forse riesco,
http://www.filedropper.com/schede
ciao
salatony
Utente Junior
 
Post: 68
Iscritto il: 08/11/13 21:16

Re: Copia dati in piu file

Postdi Anthony47 » 16/12/18 22:56

Stai dicendo che, con riferimento a Foglio1 di "copiafornit.xls", la directory in cui cercare il file "prodotto" e' indicato in colonna A?

Cerca all'interno della Sub spalmer la riga nFile = Cells(I, "B").Value & fExt e modificala in
Codice: Seleziona tutto
nFile = Cells(I, "A").Value  & "\" & Cells(I, "B").Value & fExt


Nell'istruzione fPath = "C:\etcetc\" lascerai solo il percorso comune a tutte le directory dei Fornitori (sempre con \ finale)

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

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Copia dati in piu file":


Chi c’è in linea

Visitano il forum: raimea e 58 ospiti