Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

stessa macro per più fogli

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

Re: stessa macro per più fogli

Postdi Flash30005 » 08/03/10 13:50

Si peccato che per le ottine dovrai cambiare un po' di cose
se lo prevedevamo con poche modifiche potevi ottenere anche le decine :(

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-

Sponsor
 

Re: stessa macro per più fogli

Postdi miko » 09/03/10 13:55

ciao,
per completare il nostro programma ho bisogno ancora del tuo aiuto.
da ciascun foglio, terni 1, terni 2 etc., dobbiamo prelevare una uguale quantità di righe, diciamo 30, poi vediamo se aggiungendo nuove combinazioni è necessario modificare la quantità.
precisamente dobbiamo copiare il range dei terni e delle corrispondenti frequenze, che abbiamo ordinato in ciascun foglio;
con riferimento all'ultimo file è il range (L3:T30).
queste 30 righe le incolliamo nel foglio valori max, a partire dalla cella B3, e successivamente le ordiniamo.
in questo modo, nel foglio valori max, abbiamo una visione completa di quei terni che hanno subito variazioni ad ogni aggiunta delle combinazioni dell'archivio, senza dover consultare ogni volta i vari fogli.
manipolando alcune tue macro sono riuscito nell'intento, ma prima di inserire la macro nel file originale preferirei avere il tuo parere.
ho testato la macro più volte, in una nuova cartella e variando i valori;
ho inserito nella cella B2 un valore casuale e tutto funziona;
i terni vengono inseriti a partire dalla cella B3.
nella macro sono da cambiare alcuni riferimenti;
Codice: Seleziona tutto
Sub ORDINA_VALORI_MAX()
(1)Application.ScreenUpdating = False
(2)Sheets("VALORI MAX").Select
'(3)Range("B3", Range("F65536").End(xlUp)).ClearContents  'leggi seguito del post
(4)Range("B3:F500").ClearContents

(5)For FS = 1 To Worksheets.Count
    If Sheets(FS).Name <> "ARCHIVIO" And Sheets(FS).Name <> "VALORI MAX" Then
    Sheets(FS).Select
   Range("H3:L5").Copy _
Destination:=Sheets("VALORI MAX").Range("B" & Rows.Count).End(xlUp).Offset(1, 0)
Sheets("VALORI MAX").Select
   End If
   Next FS
    NSETT = Sheets("VALORI MAX").Range("B" & Rows.Count).End(xlUp).Row
'INDIVIDUA IL RANGE DEI TERNI ED IL RANGE DELLE FREQUENZE
'CHE DEVONO ESSERE ORDINATI
Set rng = Range(Cells(3, 2), Cells(NSETT, 6))
                                               
'DISPONE I VALORI DEI RANGE PRECEDENTI IN ORDINE DECRESCENTE
        rng.Sort Key1:=Cells(3, 6), Order1:=xlDescending
        Set rng = Nothing
      Range("F3").Select
    Application.ScreenUpdating = True
End Sub

ritieni che la macro sia corretta oppure è opportuno modificarla?
ho notato che se tolgo la linea 4 ed inserisco la 3 la macro copia i valori a partire dalla cella B2 cancellando il valore già presente, mentre se faccio eseguire le prime 4 linee e poi le linee da 5 in poi tutto funziona.
per le ottine vedrò cosa riesco a fare senza troppi pasticci.
ciao grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: stessa macro per più fogli

Postdi Flash30005 » 09/03/10 16:00

Sostituisci le due righe (3 e 4)
con queste due
Codice: Seleziona tutto
URV = Range("B" & Rows.Count).End(xlUp).Row
Range("B3:F" & URV).ClearContents

Chiaramente in B2 deve esserci qualcosa (tipo "testata")

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: stessa macro per più fogli

Postdi miko » 09/03/10 17:25

ciao flash,
ho provato la sostituzione delle linee che mi hai scritto, ma il risultato è sempre quello che ottengo con la linea 3;
qualunque cosa scrivo in B2, viene cancellato, ed i valori inseriti a partire da B2;
ovviamente, per i riferimenti successivi, l'ordinamento parte da B3.
ho pensato che forse era un problema di formattazione involontaria della cartella e così ho provato con una cartella nuova;
ho provato anche la macro che hai modificato nel post "modifica macro copia tra fogli";
il risultato è sempre lo stesso.
non capisco dov'è il problema, eppure la macro del topic su menzionato funziona benissimo.
non è importante, possiamo usare la linea 4, ma è per capire.
ciao grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: stessa macro per più fogli

Postdi Flash30005 » 10/03/10 03:54

Sorry
correggi la riga
Codice: Seleziona tutto
URV = Range("B" & Rows.Count).End(xlUp).Row + 1


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: stessa macro per più fogli

Postdi miko » 10/03/10 08:52

buon giorno,
ora funziona
grazie ciao
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: stessa macro per più fogli

Postdi miko » 13/03/10 01:17

ciao,
ho modificato la macro per adattarla ai terni, quaterne etc. senza nascondere le colonne, ma spostando i valori e quindi cambiando le colonne;
tutto funziona perfettamente.
quando però ho provato per le ottine e novine ho avuto problemi, come avevi previsto.
ho sempre errore nella stessa linea di codice: RNS=RS.
ti mostro il codice che ho variato:
Codice: Seleziona tutto
Sub Aggiorna_Ottine()
Dim X1, X2, X3, X4, X5, X6, X7, X8 As Integer  'aggiunto x8
A = 0
-----
Gruppi = 8  '<<<variato
Base = 10 - (Gruppi - 2)  '<<<<non variato
---
For X1 = 2 To Base  '<<<<non variato
    RNS = 3   '<<<non variato
--------
For X7 = X6 + 1 To Base + 6   '<<<<non variato
 N7 = Sheets("ARCHIVIO").Cells(i, X7).Value   '<<<<non variato
   For X8 = X7 + 1 To Base + 7   '<<<aggiunto
    N8 = Sheets("ARCHIVIO").Cells(i, X8).Value  '<<<aggiunto
   SettA = N2 & N3 & N4 & N5 & N6 & N7 & N8  '<<<aggiunto N8
               Call CercaSettA
               Next X8  '<<<aggiunto
                 Next X7
---------

Codice: Seleziona tutto
Sub CercaSettA
-----
Percent = A / (45 * NEs)  'variato 45
---
For RS = RNS To NOTTINE
    SettS = ""
    For CS = 3 To 9   '<<<variato 9
---
Sheets(NFC).Cells(RS, 11).Value = Sheets(NFC).Cells(RS, 11).Value + 1
        RNS = RS   '<<<<ERRORE
---

come vedi ho cambiato il nome della variabile Nsett in Nottine in tutto il listato.
ho riletto più volte la tua spiegazione del 03/03/10 03:55 a proposito di rns ed rs ma dopo due giorni di tentativi non riesco ancora a capire cosa e come devo modificare.
ciao grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: stessa macro per più fogli

Postdi Flash30005 » 14/03/10 10:03

Penso che l'unica cosa da fare è
riprendere il programma settine
spostare le colonne sul foglio per permettere l'aggiunta di altre 3 colonne (per arrivare alle decine)
modificare la macro settine affinché scriva e legga su questi nuovi riferimenti
e una volta che il programma settine (con le settine funziona) fare le dovute modifiche alla macro per processare le ottine poi le novine e decine.
Chiaramente ogni file di excel dovrebbe essere salvato singolarmente fino a che non ci inventiamo un automatismo che riconosca nel foglio stesso sono riportati terni o quaterne o settine etc e si "adatti" automaticamente...
ma questo è un altro discorso...

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-

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "stessa macro per più fogli":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti