Ho un file composto da quasi un centinaio di fogli che uso per tenere aggiornate le schede dei clienti mensilmente.
In tutti i fogli (uno per cliente) ho una casella con il nome del mese a cui si riferisce la scheda (il range è sempre "A3:C6")
Tutti i mesi copio il file del mese precedente e lo rinomino al mese successivo, dopodichè lo devo preparare: devo quindi aprire tutti i fogli, cancellare tutti i valori immessi in un determinato range di righe che è variabile da scheda a scheda e tenere conto che queste righe contengono anche celle con formule bloccate e protette, quindi sostituire il nome del mese in ogni singolo foglio.
Con registra macro ho cercato di ottimizzare il processo andando a registrare una macro con ciò che faccio in preparazione del mese successivo ma mi mancano alcuni passaggi per migliorare il tutto:
1) Vorrei poter inserire il mese nelle celle (A3:C6) in automatico, immagino mi si apra una finestra dove chiede di inserire il mese, digito ad esempio Febbraio e la macro lo riporta su tutti i fogli.
2) In realtà ho 3/4 piccole eccezzioni di clienti che hanno una fatturazione ogni 2 mesi, quindi dovrei prevedere di escludere solo quelle schede dalla modifica del mese.
3) Registrando la macro mi crea l'operazione con i nomi dei singoli fogli, se io aggiungo un foglio di un nuovo cliente (solitamente lo faccio creando una copia di un cliente già eistente) la macro andrà riaggiornata? non so se è possibile automatizzare questo passaggio.
4) Nel cancellare tutta l'area da "azzerare" (nell'esempio il range è (A8:I19)) devo tenere conto che questa è variabile sia per numero di righe che colonne e che in diverse schede ho delle colonne in più con oltretutto delle formule inserite che naturalmente non vanno cancellate
Non posto il codice creato perchè contiene i nomi dei clienti e perchè non so quanto sia utile avere ripetizioni su ripetizioni, metto un file con 2 fogli estrapolati dal mio file e il codice ricreato su questo miniprogetto ripercorrendo i passaggio di cui parlo sopra.
Immagino che far sì che sia tutto "automatizzato" sia difficile ma non so neppure fino a dove si possa arrivare quindi chiedo lumi a chi ha conoscenze molto superiori alle mie in questo ambito.
Come sempre un sentito ringraziamento e anche un buon weekend a tutti!
- Codice: Seleziona tutto
Sub NuovoMese()
'
' NuovoMese Macro
Range("A3:C6").Select
Selection.ClearContents
Range("A8:I19").Select
Selection.ClearContents
Sheets("Pallino").Select
Range("A3:C6").Select
Selection.ClearContents
Range("A8:I19").Select
Selection.ClearContents
End Sub
http://www.filedropper.com/macromese1