Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel copio cella in file aperti

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

Excel copio cella in file aperti

Postdi salatony » 09/02/18 21:13

Ciao,
immancabilmente chiedo il Vostro aiuto.
Mi spiego,
Devo inserire un numero, in una cella ben precisa, in centinaia di FILE.
Potrei tenere aperti più file contemporaneamente, e forse con una macro, copiare la cella, esempio F5, da un file principale in tutti i file momentaneamente aperti (basterà solo salvarli).
Spero di essermi spiegato, e ti chiedo, si può fare?.
Grazie
Ciao
salatony
Utente Junior
 
Post: 18
Iscritto il: 08/11/13 21:16

Sponsor
 

Re: Excel copio cella in file aperti

Postdi Anthony47 » 10/02/18 13:42

Immagino che parli di inserire sempre nella stessa cella di un tot di file sempre lo stesso valore, magari prendendolo dalla cella F5 di un file/foglio master.

Per poter procedere tuttavia c'e' bisogno di informazioni certe:
-dove prendo il dato da incollare nei vari file (puo' essere un valore noto, o un indirizzo di cella di cui si prende contenuto, oppure contenuto e formato; chiarisci tu)
-dove trovo i file da aggiornare
-come identifico che il file e' da aggiornare
-nome foglio e indirizzo cella da aggiornare
Con queste informazioni si potra' elaborare una macro che faccia tutte le cose piu' o meno automaticamente (spiega tu il livello di automatismo + controllo che vorresti)

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 15114
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel copio cella in file aperti

Postdi salatony » 10/02/18 20:36

Ciao
Esatto, il dato da incollare e'un valore noto, devo sostituire lo 0,4 in F5 (che si trova nella stessa cella di tutti i file), con il numero 1.
I file da agg.re sono in una cartella: Fornitori/nomi singoli fornitori/FILE (da agg.re).
I file sono tutti da agg.re.
Il foglio di rif.to (in tutti i file), in cui si trova la cella F5, da agg.re, è Foglio1.
Quello che vorrei é: aprire es. I primi 50 file, poi quando sono tutti aperti, faccio partire la macro, che mi copia il valore 1 nel Foglio1 in F5, in tutti i file aperti, dopodiché li chiude e li salva
Grazie
Ciao
salatony
Utente Junior
 
Post: 18
Iscritto il: 08/11/13 21:16

Re: Excel copio cella in file aperti

Postdi Anthony47 » 11/02/18 00:54

Ti proporro' (se non lo fara' qualcun altro prima di me) una macro che apre i file uno dopo l'altro, verifica che in Foglio1!F5 ci sia scritto un valore compreso tra 0.3 e 0.5, sostituisce con 1, salva e chiude il file; ripete per il prossimo file nella directory.
Contare fino a 50 non serve a niente se non a complicarsi la vita.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 15114
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel copio cella in file aperti

Postdi salatony » 12/02/18 13:10

Perfetto,
Procediamo, ti ringrazio,
Ciao
salatony
Utente Junior
 
Post: 18
Iscritto il: 08/11/13 21:16

Re: Excel copio cella in file aperti

Postdi Anthony47 » 14/02/18 01:18

Allora, la mia proposta e' di inserire in un file nuovo, che salverai in una directory diversa da quella che contiene i file da modificare, questa macro:
Codice: Seleziona tutto
Sub MassEdit()
Dim myDir As String, myCFile As String, myErr As String, myDest As String
Dim fCnt As Long, myNew
'
myDest = "Foglio1"                  '<<< Il Foglio in cui si creera' il riepilogo
myDir = "D:\PIPPO\Archivio\"        '<<< La dir dei file da consolidare (con \ finale)
myNew = 1                           '<<< Il nuovo valore da inserire; se e' una stringa, usare le virgolette, es "Nuova Stringa"
'
Debug.Print
Application.EnableEvents = False
myCFile = Dir(myDir & "*.xls*")
Do
If myCFile = "" Then Exit Do
On Error Resume Next
    Workbooks.Open (myDir & myCFile)
    Sheets(myDest).Range("F5").Value = myNew
    If ActiveWorkbook.Name <> myCFile Or _
      Sheets(myDest).Range("F5").Value <> myNew Then
        On Error GoTo 0
        myErr = myErr & myCFile & vbCrLf
        Debug.Print myCFile
        If ActiveWorkbook.Name <> ThisWorkbook.Name Then
            ActiveWorkbook.Close False
        End If
    Else
        ActiveWorkbook.Close True
        fCnt = fCnt + 1
    End If
myCFile = Dir
Loop
Application.EnableEvents = True
If Len(myErr) > 5 Then
    MsgBox ("Tot " & fCnt & " file modificati" & vbCrLf _
       & "Situazioni di errore sui seguenti file:" & vbCrLf & myErr)
Else
    MsgBox ("Tot " & fCnt & " file modificati")
End If
End Sub

Va inserita in un "modulo standard" del vba; le righe marcate <<< sono da personalizzare secondo i commenti.

Quando sei pronto avvia la Sub MassEdit: partendo da Excel, premi Alt-F8; scegli MassEdit dall'elenco di macro disponibili; premi Esegui.
Tutti i file contenuti nella directory dichiarata saranno aperti, modificati e salvati; uno dopo l'altro.
A conclusione del lavoro un messaggio avertira' quanti file sono stati modificati e quali eventualmente hanno manifestato un problema (che va indagato autonomamente).
Oltre che nel msgbox, l'elenco dei file con errore e' visionabile anche nella "finestra Immediata" del vba; per accedere a questa finestra, partendo da una pagina dell'editor delle macro, premere Contr-g

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 15114
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Excel copio cella in file aperti":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti