Non mi sono ancora chiari tutti i termini del problema, per cui vado a tentoni.
Fatti il file PRIMO.xls e un altro file che chiami MODELLOX.xls.
Sul file PRIMO, seleziona la cella in cui metterai il numero di tabella e assegnagli il nome “numeroT”: seleziona la cella, Menu /Inserisci /Nome /Definisci; scrivi NumeroT nell’ area superiore e chiudi con Ok.
Poi parti dal file Modellox su un foglio “sbagliato” (vedi oltre) e procedi registrando una macro mentre fai esattamente le cose descritte: vai su file PRIMO, selezioni il foglio con le tabelle (allo scopo, prima di partire con la registrazione posizionati sul foglio sbagliato), selezioni tutte le celle della prima colonna, copi questa area, vai sul file Modello, selezioni il foglio corretto, selezioni la prima cella su cui vuoi incollare il dato, fai Modifica /Incolla Speciale /Valori/Ok, ripeti esattamente per le altre colonne da copiare (compresa quella che deve essere moltiplicata, ma la moltiplicazione la faremo tra un attimo); continua a registrare mentre: vai sul file PRIMO, selezioni la cella col Coefficiente, copi, vai sul file Modello, selezioni la colonna da moltiplicare, fai Modifica /Incolla Speciale /Valori, ma qui spunti anche Moltiplica, Ok.
Completa la macro con la copia del testo da PRIMO a Modello, usando sempre la tecnica del Modifica /Incolla Speciale /Valori/Ok.
Quando hai finito ferma la registrazione, o tramite l’ apposito pulsante che sara’ comparso, oppure tramite Strumenti /Macro /Interrompi registrazione.
A questo punto apri il vba editor con Alt-F11 e trova il Modulox (probabilmente Modulo1) su cui e’ stata registrata la tua macro. Non dovrebbe essere difficile seguire le istruzioni create associandole ai vari step; localizza quelle dove viene selezionata la colonna da copiare, ad esempio sara’ una sequenza tipo
- Codice: Seleziona tutto
Range("B1:B10").Select
Selection.Copy
Modifica la prima istruzione in
- Codice: Seleziona tutto
Range("B1").offset((Range("NumeroT").value - 1)*50,0).range("A1:A10").select
Note:
-B1 e’ deducibile direttamente dall’ istruzione originale
-A1:A10 e’ “l’ altezza” (n° di righe) della tabella; va sempre specificata come inizio A1 mentre come fine si usera’ Ax, dove x sono le righe che l’ istruzione originale selezionava
-Questa modifica dovrebbe essere fatta in 3 istruzioni, e solo “B1” va adeguata all’ istruzione originale mentre il resto rimane costante.
Salva il Modellox con l’ opzione “Consigliata solo lettura”: File /Salva con nome; clicca Strumenti /Opzioni generali, spunta “Consigliata solo lettura”, eventualmente metti una password di scrittura (cosi’ forzi l’ apertura in sola lettura, salvo conoscere la password); completi il salvataggio, chiudi il file e lo riapri (in sola lettura…).
A questo punto prova a impostare dei parametri su PRIMO.xls, lancia la macro e vedi che cosa fa. A lavoro competato salvi il risultato con "Salva con nome" e chiudi.
Ricorda che se vuoi fare delle modifiche al file Modellox (ad esempio per inserire qualche formattazione sul testo e sulla tabella di output) non devi aprirlo in sola lettura.
Buon lavoro, prova e facci sapere!