Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[EXCEL] Perché la macro cancella i collegamenti?

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] Perché la macro cancella i collegamenti?

Postdi dova4ever » 11/03/12 13:42

Ciao Flash30005, mi rivolgo a te perché hai sviluppato tu la macro che consente al file di cui invio il link di funzionare alla perfezione.
Ho creato in quel file, che nel frattempo si è ulteriormente ingrandito, tre fogli di lavoro che hanno dei collegamenti con le pagine dei singoli allievi; mi sono reso conto che ogni volta che avvio la macro che distribuisce i dati si cancellano i collegamenti con le celle e dunque il foglio di lavoro 'CLASSIFICHE' è inservibile.
Come mai la macro cancella i dati da quei fogli di lavoro? È un problema risolvibile o le classifiche devo prepararle in un altro file? Ho notato che se proteggo i fogli di lavoro la macro si blocca perché tenta di cancellare da tutti i fogli l'intervallo di celle F4:CA500; come si può fare per modificare la macro per evitare che lavori su alcuni fogli?
Nel frattempo faccio un'altra domanda: se dovessi inserire altri lavori e quindi la fine dell'intervallo si spostasse dalla colonna CA a quella, per esempio, CC dovrei semplicemente cambiare l'intervallo nella macro o ci sono altre istruzioni da dare?
Grazie mille

http://uploading.com/files/fd4f8538/Rac ... 1-12.xlsm/
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Sponsor
 

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi dova4ever » 11/03/12 14:08

Ulteriore domanda: per alcuni lavori i dati sono arrivati quasi alla riga 500 devo modificare qualcosa nella macro?
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi Flash30005 » 11/03/12 15:13

Penso ti riferisca a "Raccolta_Lavori"
che contiene questo codice
Codice: Seleziona tutto
Sub CancellaF()
For FF = 1 To Worksheets.Count
If Sheets(FF).Name <> "Generale" Then
Foglio = Sheets(FF).Name
Worksheets(Foglio).Range("F4:CA500").ClearContents
End If
Next FF
Call CompAllievi
End Sub
Sub CompAllievi()
Set Ws1 = Worksheets("Generale")
RidC = 6
For CC1 = 1 To 97 Step 4
RidC = RidC - 1
UR1 = Ws1.Cells(Rows.Count, CC1).End(xlUp).Row
    For RR1 = 4 To UR1
        Foglio = Ws1.Cells(RR1, CC1).Value
        URF = Worksheets(Foglio).Cells(Rows.Count, CC1 + RidC).End(xlUp).Row + 1
        If URF < 3 Then URF = 3
        Ws1.Range(Cells(RR1, CC1 + 1), Ws1.Cells(RR1, CC1 + 2)).Copy Destination:=Worksheets(Foglio).Cells(URF, CC1 + RidC)
    Next RR1
Next CC1
End Sub

L'unico range che viene cancellato è "F4:CA500" di ogni foglio ad esclusione del foglio "Generale"
quindi non capisco a cosa ti riferisci con il discorso dei "Collegamenti"

Se aumenti le righe oltre 500 puoi mettere 1.000 o 10.000 al posto di 500
Codice: Seleziona tutto
Worksheets(Foglio).Range("F4:CA10000").ClearContents


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi dova4ever » 11/03/12 15:37

Hai ragione, mi riferisco a quel file che però nel frattempo è cresciuto (infatti ho inviato il nuovo link) ed ho inserito altri fogli di lavoro che contengono dei riferimenti al BEST e alla MEDIA dei fogli dei singoli allievi (creando così delle classifiche).
Posso fare in modo che la macro escluda anche questi fogli dalla cancellazione?
E poi, se io volessi aggiungere oltre alle righe anche delle colonne in più sia nel foglio "GENERALE" che in quelli dei singoli allievi potrei farlo semplicemente allargando il range anche come colonne?
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi Flash30005 » 12/03/12 08:47

Per evitare di cancellare dati sui fogli aggiunti devi solo aggiungere il nome dei fogli nella macro "CancellaF"
es.:
Codice: Seleziona tutto
If Sheets(FF).Name <> "Generale" then

dovrai inserire anche i nomi dei fogli che non vuoi vengano cancellati
Codice: Seleziona tutto
If Sheets(FF).Name <> "Generale" or Sheets(FF).Name <> "Classifica" or Sheets(FF).Name <> "Medie" then

potrai aggiungere tutti i nomi che vorrai.
I fogli elencati saranno esclusi.
Per quanto riguarda le righe non c'è alcun problema se mantieni la stessa struttura dati
mentre per le colonne devi aumentare il range del ciclo For... Next di CC1
Codice: Seleziona tutto
For CC1 = 1 To 97 Step 4

portarlo a 81, 85, 89 etc
(aggiungi un multiplo di 4 fino a coprire il nuovo range, considerando come ultima colonna la colonna Allievo e non Tempo e Data)



Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi dova4ever » 12/03/12 09:40

Grazie mille, Flash3005.
Come sempre preziosissimo!!!
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi dova4ever » 12/03/12 12:55

Scusa la mia enorme ignoranza; ho modificato il codice CancellaF() come hai detto tu ottenendo

If Sheets(FF).Name <> "Generale" Or Sheets(FF).Name <> "Classifiche" Or Sheets(FF).Name <> "Medie" Or Sheets(FF).Name <> "Record" Then


ma in questa maniera cancella i dati anche dal foglio "generale" come mai?

e mi riferisce questo errore nel codice CompAllievi()

URF = Worksheets(Foglio).Cells(Rows.Count, CC1 + RidC).End(xlUp).Row + 1


Tra l'altro adesso anche se tolgo i nomi dei fogli aggiunti nel codice l'errore è sempre lo stesso!

Ecco il codice come è al momento:
Sub CancellaF()
For FF = 1 To Worksheets.Count
If Sheets(FF).Name <> "Generale" Then
Foglio = Sheets(FF).Name
Worksheets(Foglio).Range("F4:CA500").ClearContents
End If
Next FF
Call CompAllievi
End Sub
Sub CompAllievi()
Set Ws1 = Worksheets("Generale")
RidC = 6
For CC1 = 1 To 97 Step 4
RidC = RidC - 1
UR1 = Ws1.Cells(Rows.Count, CC1).End(xlUp).Row
For RR1 = 4 To UR1
Foglio = Ws1.Cells(RR1, CC1).Value
URF = Worksheets(Foglio).Cells(Rows.Count, CC1 + RidC).End(xlUp).Row + 1
If URF < 3 Then URF = 3
Ws1.Range(Cells(RR1, CC1 + 1), Ws1.Cells(RR1, CC1 + 2)).Copy Destination:=Worksheets(Foglio).Cells(URF, CC1 + RidC)
Next RR1
Next CC1
End Sub
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi dova4ever » 12/03/12 13:23

E dice "indice non incluso nell'intervallo"
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi Flash30005 » 12/03/12 15:11

Ho fatto un errore
sostituisci tutti gli Or con gli And, così:
Codice: Seleziona tutto
If Sheets(FF).Name <> "Generale" And Sheets(FF).Name <> "Classifiche" And Sheets(FF).Name <> "Medie" And Sheets(FF).Name <> "Record" Then


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi dova4ever » 12/03/12 16:23

Ciao, ho fatto il cambiamento che hai detto ma il codice si blocca in questa riga

Ws1.Range(Cells(RR1, CC1 + 1), Ws1.Cells(RR1, CC1 + 2)).Copy Destination:=Worksheets(Foglio).Cells(URF, CC1 + RidC)


dandomi l'errore di run-time 1004: errore definito dall'applicazione o dall'oggetto.
Cosa può essere? Ora il codice è scritto così:

Sub CancellaF()
For FF = 1 To Worksheets.Count
If Sheets(FF).Name <> "Generale" And Sheets(FF).Name <> "Classifiche" And Sheets(FF).Name <> "Medie" And Sheets(FF).Name <> "Record" Then
Foglio = Sheets(FF).Name
Worksheets(Foglio).Range("F4:CA500").ClearContents
End If
Next FF
Call CompAllievi
End Sub
Sub CompAllievi()
Set Ws1 = Worksheets("Generale")
RidC = 6
For CC1 = 1 To 97 Step 4
RidC = RidC - 1
UR1 = Ws1.Cells(Rows.Count, CC1).End(xlUp).Row
For RR1 = 4 To UR1
Foglio = Ws1.Cells(RR1, CC1).Value
URF = Worksheets(Foglio).Cells(Rows.Count, CC1 + RidC).End(xlUp).Row + 1
If URF < 3 Then URF = 3
Ws1.Range(Cells(RR1, CC1 + 1), Ws1.Cells(RR1, CC1 + 2)).Copy Destination:=Worksheets(Foglio).Cells(URF, CC1 + RidC)
Next RR1
Next CC1
End Sub
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi Flash30005 » 12/03/12 20:13

Molto probabilmente, ora, avvi la macro da un altro foglio e non dal foglio "Generale"
quindi devi aggiungere questa riga nella macro "CompAllievi"
Codice: Seleziona tutto
Sub CompAllievi()
Set Ws1 = Worksheets("Generale") '<<<< esistente
Ws1.Select  '<<<< aggiungere qui
'...
'...


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi dova4ever » 12/03/12 21:07

No, invio sempre dal foglio generale. Però potrebbe essere un problema il fatto che i fogli "record", "medie" e "classifiche" non sono subito dopo il foglio generale?
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi Flash30005 » 12/03/12 21:59

No i fogli possono essere vounque e non in ordine
Prova ad aggiungere la riga che ti ho consigliato
e riprova

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi dova4ever » 12/03/12 22:50

Non mi riferisce più nessun errore ma...
continua a cancellare anche i valori nel foglio classifiche!!!

ciao

P.S.
Al momento il codice è questo:

Sub CancellaF()
For FF = 1 To Worksheets.Count
If Sheets(FF).Name <> "Generale" And Sheets(FF).Name <> "Record" And Sheets(FF).Name <> "Medie" And Sheets(FF).Name <> "Classifiche" Then
Foglio = Sheets(FF).Name
Worksheets(Foglio).Range("F4:CA500").ClearContents
End If
Next FF
Call CompAllievi
End Sub
Sub CompAllievi()
Set Ws1 = Worksheets("Generale")
Ws1.Select
RidC = 6
For CC1 = 1 To 97 Step 4
RidC = RidC - 1
UR1 = Ws1.Cells(Rows.Count, CC1).End(xlUp).Row
For RR1 = 4 To UR1
Foglio = Ws1.Cells(RR1, CC1).Value
URF = Worksheets(Foglio).Cells(Rows.Count, CC1 + RidC).End(xlUp).Row + 1
If URF < 3 Then URF = 3
Ws1.Range(Cells(RR1, CC1 + 1), Ws1.Cells(RR1, CC1 + 2)).Copy Destination:=Worksheets(Foglio).Cells(URF, CC1 + RidC)
Next RR1
Next CC1
End Sub
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi dova4ever » 12/03/12 22:59

Come non detto: sono proprio uno stupido... o meglio uno STUPIDO!!!

Nel codice ho messo il nome dei fogli con la sola iniziale maiuscola mentre i fogli erano nominati tutti con caratteri maiuscoli.

SCUSAMI tanto per il tempo che ti ho fatto perdere!!!

ciao ciao e grazie mille per tutto
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi Flash30005 » 12/03/12 23:37

In quel caso si sarebbero cancellati i dati nei fogli che non avresti voluto cancellare
ma non c'entra nulla con il blocco del codice da te postato
dova4ever ha scritto:Ciao, ho fatto il cambiamento che hai detto ma il codice si blocca in questa riga
Codice: Seleziona tutto
Ws1.Range(Cells(RR1, CC1 + 1), Ws1.Cells(RR1, CC1 + 2)).Copy Destination:=Worksheets(Foglio).Cells(URF, CC1 + RidC)

dandomi l'errore di run-time 1004: errore definito dall'applicazione o dall'oggetto.

:undecided:
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi dova4ever » 13/03/12 09:10

E allora perché non si blocca più?

BOH!!!

:-?
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi Flash30005 » 13/03/12 10:52

Potresti ripostare l'intera macro?
(ultima versione funzionante)

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi dova4ever » 13/03/12 13:09

Eccola:

Sub CancellaF()
For FF = 1 To Worksheets.Count
If Sheets(FF).Name <> "Generale" And Sheets(FF).Name <> "RECORD" And Sheets(FF).Name <> "MEDIE" And Sheets(FF).Name <> "CLASSIFICHE" Then
Foglio = Sheets(FF).Name
Worksheets(Foglio).Range("F4:CA500").ClearContents
End If
Next FF
Call CompAllievi
End Sub
Sub CompAllievi()
Set Ws1 = Worksheets("Generale")
Ws1.Select
RidC = 6
For CC1 = 1 To 97 Step 4
RidC = RidC - 1
UR1 = Ws1.Cells(Rows.Count, CC1).End(xlUp).Row
For RR1 = 4 To UR1
Foglio = Ws1.Cells(RR1, CC1).Value
URF = Worksheets(Foglio).Cells(Rows.Count, CC1 + RidC).End(xlUp).Row + 1
If URF < 3 Then URF = 3
Ws1.Range(Cells(RR1, CC1 + 1), Ws1.Cells(RR1, CC1 + 2)).Copy Destination:=Worksheets(Foglio).Cells(URF, CC1 + RidC)
Next RR1
Next CC1
End Sub


ciao
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [EXCEL] Perché la macro cancella i collegamenti?

Postdi Flash30005 » 13/03/12 13:18

perché hai inserito la riga che ti dicevo
Codice: Seleziona tutto
Ws1.Select

che permette di selezionare sempre il foglio "Generale" anche se avvi la macro da altro foglio
Significa, però, che non hai usato il pulsante di comando che si trova solo sul foglio "Generale"
ma abbia avviato la macro con altri sistemi; magari in debug e non ti sei reso conto che eri su "Classifiche" (per esempio).

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Perché la macro cancella i collegamenti?":


Chi c’è in linea

Visitano il forum: patel e 8 ospiti