Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Modifica numero su 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

Modifica numero su piu file

Postdi Ubuntus » 11/12/15 11:44

ciao

avevo questa macro che ora non capisco perche non funziona su un nuovo file creato.

In pratica ho 2 fogli in uno inserisco un numero delle settimane, lui mi cambia questo numero nei file desiderati ( salvati nel foglio due "macromese"), in modo da avere sempre i grafici aggiornati

Nel secondo foglio macro mese, ho tutti gli indirizzi dove deve andare a cambiarmi questo numero
es C:\pippo\pippo.xls grafici ecc, mi apre i fogli e mi cambia il numero

Codice: Seleziona tutto

' Foglio1 - Worksheet
'
Option Explicit

Private Function GetRangeByAddress(ByVal Address As String) As Excel.Range
    On Error Resume Next
    Set GetRangeByAddress = Application.Range(Address)
End Function

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error GoTo ErrH

Dim wbk     As Excel.Workbook
Dim rng     As Excel.Range
Dim rngOut  As Excel.Range
Dim strAddr As String
Dim r       As Long
Dim strPath     As String
Dim strFilename As String
   
    r = 1
    Set rng = ThisWorkbook.Worksheets("Macromese").Cells(r)
    strAddr = Me.Range(Mid$(rng.Formula, 2)).Address(External:=True)
    If strAddr = Target.Address(External:=True) Then
      Application.ScreenUpdating = False
      Do
        strAddr = Mid$(rng.Offset(r).Formula, 2)
        Set rngOut = GetRangeByAddress(strAddr)
        If rngOut Is Nothing Then
          strPath = Split(strAddr, "!")(0)
          strPath = Mid$(Left$(strAddr, InStrRev(strAddr, "\")), 2)
          strFilename = Mid$(strAddr, Len("'" & strPath) + 2)
          strFilename = Left$(strFilename, InStrRev(strFilename, "]") - 1)
          strAddr = "'" & Mid$(strAddr, Len("'" & strPath) + 1)
          Set wbk = Me.Application.Workbooks.Open(strPath & strFilename)
          Set rngOut = GetRangeByAddress(strAddr)
        End If
        rngOut.Value = Target.Value
        If wbk Is Nothing Then
          ' DO NOTHING
        Else
          wbk.Close True
          Set wbk = Nothing
        End If
        r = r + 1
      Loop While Len(rng.Offset(r).Value)
    Else
      ' DO NOTHING
    End If
   
ExtP:
    Application.ScreenUpdating = True
    Set rngOut = Nothing
    Set rng = Nothing
    Set wbk = Nothing
    Exit Sub
   
ErrH:
    MsgBox Err.Description
    Resume ExtP
   
End Sub


Oppure c'è un metodo piu furbo, per forzare un numero su diversi fogli ad una determinata cella

grazie
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Sponsor
 

Re: Modifica numero su piu file

Postdi Anthony47 » 12/12/15 02:51

Purtroppo "non funziona" non significa niente.
E poi solo sapendo cosa c'e' nei due file si puo' seguire il codice.

Quindi il mio suggerimento e' che descrivi meglio che cosa ti capita e poi pubblichi una set di file con cui ricreare il tuo ambiente.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Modifica numero su piu file

Postdi Ubuntus » 15/12/15 18:10

mi servirebbe una macro dove mi modifichi la scritta contentante in una cella es pippo.xls - Foglio1-B52, per tutti i fogli da me richiesti ( io gli fornisco indirizzo dove modificare la cella) in base a cosa scrivo nella mia cella lavoro-foglio1 A1.

E che me lo modifichi ad ogni variazione della cella A1.

In pratica quando modificavo la cella A1 su quel file, mi modificava di conseguenza tutte le altre celle dei vari fogli la cella B5. questi fogli sono diversi e sono tutti chiusi

sul file originale la macro funziona, ma se modifico il file per farlo utilizzare su altri fogli in altre posizioni della rete la macro non sembra piu funzionare ( eppure lavoro sempre sullo stesso livello di percorso)
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Re: Modifica numero su piu file

Postdi Anthony47 » 15/12/15 23:59

Una macro e' un programma che esegue una cosa ben specifica, lavorando su informazioni certe, che al momento non vedo...

Allora, vorresti che quando si modifica la cella A1 su un certo foglio (attivo) di un certo file (aperto e attivo) la macro vada a modificare un tot di file chiusi; giusto?
Se "Giusto!":
-esiste un elenco di file da modificare? Se Si, dove e' e che formato ha?
-il nome foglio e l'indirizzo di cella da modificare su ognuno di questi file e' fisso (uguale per tutti) o cambia?
-che siano fisse o variabili, queste informazioni dove si trovano?

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Modifica numero su piu file

Postdi Ubuntus » 17/12/15 16:18

Una macro e' un programma che esegue una cosa ben specifica, lavorando su informazioni certe, che al momento non vedo...

Allora, vorresti che quando si modifica la cella A1 su un certo foglio (attivo) di un certo file (aperto e attivo) la macro vada a modificare un tot di file chiusi; giusto?


Si e la cella si trova in A1

Se "Giusto!":
-esiste un elenco di file da modificare? Se Si, dove e' e che formato ha?

I file sono excel, e le celle dei fogli si trovano in riga a2 a3 a4 ( devo cambiare il valore di queste celle)

-il nome foglio e l'indirizzo di cella da modificare su ognuno di questi file e' fisso (uguale per tutti) o cambia?

Cambia la posizione è nella cella A2 a3 a4


es A2 ='C:\Users\ra72\Desktop\[cocci.xlsx]Foglio1'!$A$24

es A3 ='C:\Users\ra2\Desktop\[pippo.xlsx]Foglio1'!$A$24
es a4 ...a15
ecc

-che siano fisse o variabili, queste informazioni dove si trovano?



come sopra

es A2 ='C:\Users\ra2\Desktop\[cocci.xlsx]Foglio1'!$A$24

es A3 ='C:\Users\ra2\Desktop\[pippo.xlsx]Foglio1'!$A$24

spero di essere stato piu chiaro

grazie Ciao
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Re: Modifica numero su piu file

Postdi Anthony47 » 17/12/15 23:14

Do' per scontato che quanto sia inserito in A2, A3 etc sono delle formule e non delle stringhe.
In questo caso potresti provare con una macro come questa:
Codice: Seleziona tutto
Sub aggClosed()
Dim I As Long, Upd As Long, CLink, mySplit, mySplit1, CA1
Dim myMess As String, Msg1 As String
'
CA1 = Range("A1").Value
Msg1 = "Completato con errore su file:": myMess = Msg1
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(I, 1).HasFormula Then
        CLink = Mid(Replace(Replace(Cells(I, 1).Formula, "[", "", , , vbTextCompare), "'", "", , , vbTextCompare), 2, 999)
        mySplit = Split(CLink, "]", -1, vbTextCompare)
        If UBound(mySplit, 1) > 0 Then
            mySplit1 = Split(mySplit(1), "!", , vbTextCompare)
            If UBound(mySplit1, 1) > 0 Then
                Application.EnableEvents = False
                Workbooks.Open mySplit(0)
                Sheets(mySplit1(0)).Range(mySplit1(1)).Value = CA1
                ActiveWorkbook.Close True
                Upd = Upd + 1
            Else
                myMess = myMess & CLink & vbCrLf
            End If
        Else
            myMess = myMess & vbCrLf & CLink
        End If
    End If
Next I
Application.EnableEvents = True
If Len(myMess) > Len(Msg1) Then
    MsgBox (myMess)
Else
    MsgBox ("Completato su " & Upd & " File")
End If
End Sub

Va lanciata avendo attivo il foglio con l'elenco File/Fogli/Celle.

I fogli devono essere accessibili e le celle non protette.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Modifica numero su piu file

Postdi Ubuntus » 18/12/15 14:47

a lanciata avendo attivo il foglio con l'elenco File/Fogli/Celle.



Grazie, cosa significa ciò?

l'ho provata è lanciata dal editor macro e funziona, volevo capire se notava la differenza della variozione della cella A1 ed in base a cio la macro veniva lanciata
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Re: Modifica numero su piu file

Postdi Anthony47 » 19/12/15 21:33

La cosa importante e' che quando lanci la macro il fogli attivo sia quello che contiene i collegamenti agli altri file.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Modifica numero su piu file

Postdi Ubuntus » 22/12/15 15:51

c'è un modo che quando varia la cella A1 mi lanci automaticamente la macro ?

grazie :)
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Re: Modifica numero su piu file

Postdi Ubuntus » 22/12/15 18:08

oggi dopo averlo usato con successo salvato, lancio e mi da questo errore

Codice: Seleziona tutto
Errore Run time 50290

Application.EnableEvents = False


e si blocca su quella riga li
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Re: Modifica numero su piu file

Postdi Anthony47 » 23/12/15 00:28

Sullo stesso computer su cui ha funzionato? Ed e' un errore sistematico o ogni tanto? Ad esempio se quando va in debug premi F8, la macro avanza o l'errore si ripresenta?
Parliamo della macro che avevo suggerito io, o hai fatto modifiche, ad esempio per inserire o collegare tutto a una macro di WorksheetChange?
Dal vba, Menu /Strumenti, Riferimenti; fai uno screenshot della finestra "Riferimenti" che si e' aperta e pubblicala.
Potrebbe aiutare anche lo screenshot del messaggio di errore, e infine dovresti indicare quale versione di Excel usi.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Modifica numero su piu file

Postdi Ubuntus » 23/12/15 09:56

si dallo stesso PC, non avendo apportato nessuna modifica , un ora prima andava un ora dopo no, magari perche è stata aperto da altri pc nella rete, essendo un file condiviso con piu utenti

Stamattina rinfunziona tutto magacamente :)

Excel 2007
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Re: Modifica numero su piu file

Postdi Ubuntus » 28/01/16 16:20

ho voluto replicare questa macro su un altro foglio, mi apre il foglio e mi scrive

"Indice non incluso nell intervallo"

cosa significa?

i fogli sono praticamente identici solo due fogli nuovi
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Re: Modifica numero su piu file

Postdi Anthony47 » 28/01/16 22:59

Su quale riga?
Comunque la cosa piu' probabile e' un nome foglio che non quadra piu'.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Modifica numero su piu file

Postdi Ubuntus » 02/02/16 17:10

in che senso un nome del foglio non quadra piu....

In cella A2 dovrebbe esserci indirizzo dove puntare e modificare
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Re: Modifica numero su piu file

Postdi Anthony47 » 02/02/16 22:42

Se invece di chiedere fornissi anche le risposte forse andremmo piu' spediti...
"Non quadra più" nel senso che la macro si aspetta altre cose.
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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Modifica numero su piu file

Postdi Ubuntus » 03/02/16 12:17

non saprei cosa aggiungere,...

la macro è stata inserita nel foglio 5, ora se lo lancio mi da un errore 400

e se eseguo dal codice si ferma qua

" Workbooks.Open mySplit(0)" errore run time
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Re: Modifica numero su piu file

Postdi Anthony47 » 05/02/16 02:28

non saprei cosa aggiungere,...
Veramente il 28-1 ti avevo chiesto "Su quale riga [la macro va in errore]?"
Quindi da "aggiungere" c'era appunto l'istruzione che dava errore, quello che hai scritto nell'ultimo messaggio.
Pero' ...c'e' un "però": avevi parlato di errore "Indice non incluso nell intervallo", che dovrebbe essere Errore 9; ora parli di Errore 400 che e' " Errore definito dall'applicazione o dall'oggetto". Quale sara' la versione giusta??

Comunque aggiungi questa istruzione in questa posizione:
Codice: Seleziona tutto
                    Debug.Print "#-" & mySplit(0) & "-#"            '<<< AGGIUNGI
                    Workbooks.Open mySplit(0)
Poi quando va in errore prendi nota del messaggio di errore (tipo e descrizione) e vai in Debug: controlla quale istruzione risulta evidenziata, poi premi Contr-g e prendi nota di cosa risulta scritto nella finestra "Immediata" che si e' aperta, nell'ultima riga scritta.

Tutto da scrivere nel prossimo messaggio....
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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Modifica numero su piu file

Postdi Ubuntus » 05/02/16 11:25

ora funziona grazie :D , ....e non mi ha dato errori provo a caricare la stessa macro su un altro file....per curiosità cosa fa questa riga
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Re: Modifica numero su piu file

Postdi Ubuntus » 05/02/16 12:01

ho capito che se messo =+"\\C:.... non va , se utilizzo ="\\C:.... funziona
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56


Torna a Applicazioni Office Windows


Topic correlati a "Modifica numero su piu file":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti