Intanto grazie ad Alexsandra che mi ha inviato l’ xls.
Per la compilazione del foglio Note, mi sembra questo l’ ultimo problema, io procederei in questo modo.
Intanto ti assicuri di avere nel foglio Note l’ esatta sequenza delle voci che ci sono in Ordine, per questo metti in B2 (tra poco spiego perche’ riga 2) =SCARTO(Ordine!$E$1;RIF.COLONNA(B2);0) e copi questa formula fino a U2;
Metti in V2 =SCARTO(Ordine!$J$1;RIF.COLONNA(V2)-20;0) e copi fino a AO2
In A2 segni, come ora “Numero Ordine”
La riga 1 la usiamo per avere in orizzontale una copia dell’ ordine, usando formule simili a quelle usate per l’ intestazione; quindi:
B1 =SCARTO(Ordine!$G$1;RIF.COLONNA(B2);0) che copi fino a U1
V1 =SCARTO(Ordine!$L$1;RIF.COLONNA(V2)-20;0) che copi fino a AO1
A1 =Ordine!C13
Poi selezioni A1:AO1 e assegni il nome “summary” a questo range
Devi infine aggiungere il seguente codice all’ interno della macro Nuovoordine, subito dopo il secondo Next y:
- Codice: Seleziona tutto
Sheets("Note").Select 'Fase di memorizzazione ordine
NORD = Range("A1").Value 'prendi Numero ordine
Range("Summary").Copy 'Copia Summary dell' ordine
Range("A1").Offset(NORD, 0).Select ' e copialo sulla riga giusta
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
La macro continua regolarmente con
- Codice: Seleziona tutto
Sheets("Ordine").Select
Range("G3:G22,L3:L22").Select
Etc etc
Un commento sul codice scritto: invece di usare indirizzamenti fissi (es. Range("L3:L22").Select) io assegnerei piu’ spesso un nome a quel range e poi userei il nome negli indirizzi; da una parte e’ piu’ semplice leggere il codice (es. Range(“Qt_Bevande”).Select) e dall’ altra se aggiungi, sposti, cancelli sul foglio di partenza il nome punta sempre (… spesso) all’ area giusta.
Buona sagra…