| | Post: 2 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
10/09/2018 20:16 | |
Buonasera a tutti, vi sarei davvero grata se mi aiutaste a risolvere questo problema,
Data una matrice A, devo costruire una matrice B costituita da solo quelle righe (della matrice A) non contenenti la cella con il testo "nullo".
Ho allegato un foglio dove la matrice B l'ho scritta a mano io.
Grazie a tutti |
|
| | Post: 3.886 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
10/09/2018 20:52 | |
Ciao Melissa
Prova con questa macro
vb
Sub CreaTabella()
Dim i As Integer
Dim ur As Integer
Dim lr As Integer
ur = Cells(Rows.Count, 3).End(xlUp).Row
Range("E3:g1000").ClearContents
For i = 3 To ur
lr = Cells(Rows.Count, "E").End(xlUp).Row
If Range("c" & i).Value <> "nullo" Then
Cells(lr + 1, "E").Value = Range("c" & i).Offset(0, -2).Value
Cells(lr + 1, "f").Value = Range("c" & i).Offset(0, -1).Value
Cells(lr + 1, "g").Value = Range("c" & i).Value
End If
Next i
End Sub
Alfredo |
| | Post: 2 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
10/09/2018 22:03 | |
Innanzitutto ti ringrazio Alfredo per esserti interessato al mio problema. La tua macro l'ho appena eseguita e funziona benissimo sul file che ho allegato. Il problema però è che non so come adattare la tua macro ad un foglio elettronico cui le matrici da analizzare sono in posizioni diverse da quella del file. E' per questo che speravo fosse possibile risolvere il problema semplicemente con l'ausilio di qualche formula (che mi sarebbe più facile adattare a fogli più complessi). Pensi non sia possibile?
Grazie ancora per la tua disponibilità e pazienza
|
| | Post: 3.887 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
10/09/2018 22:23 | |
Melissa con il VBA è tutto possibile (o quasi ) quindi allega un file che sia strutturalmente uguale al tuo originale (con dati non sensibili) e vedremo il da farsi.
Sul file che allegherai inserisci a mano (come hai fatto con il precedente) il risultato desiderato. [Modificato da alfrimpa 10/09/2018 22:31]
Alfredo |
| | Post: 3 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
11/09/2018 09:12 | |
Buongiorno Alfredo, sei gentilissimo! Grazie
Ho allegato il file con la matrice A (i dati) e la matrice B (il risultato che mi piacerebbe ottenere). Le ho sistemate a partire dalla 28esima riga del foglio elettronico.
Entrambe le matrici avranno un numero di righe che aumenterà nel tempo: ogni giorno aggiungerò nuove righe alla matrice A quindi immagino potrò arrivare anche a 50000 righe prima di resettarla.
|
| | Post: 1.683 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
11/09/2018 09:58 | |
ciao
per la formula
è
=SE.ERRORE(INDICE(A$30:A$5000;AGGREGA(15;6;RIF.RIGA($1:$5000)/($S$30:$S$5000<>"nullo");RIF.RIGA(A1)));"")
da mettere in U30
e da tirare a dx e in basso
ma con 50000 righe penso che il vba
vada molto più veloce |
| | Post: 4 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
11/09/2018 10:50 | |
Woooooow!!! Federico, grazieeeeeee! E' esattamente ciò di cui avevo bisogno!!
Siete stati fantastici ad aiutarmi! |
| | Post: 3.888 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
11/09/2018 10:58 | |
Ciao Melissa ecco la macro
vb Sub CreaTabella1()
Dim i As Integer
Dim ur As Integer
Dim lr As Integer
ur = Sheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
ActiveSheet.Range("u30:am1000").ClearContents
For i = 30 To ur
lr = ActiveSheet.Cells(Rows.Count, "U").End(xlUp).Row
If ActiveSheet.Range("s" & i).Value <> "nullo" Then
ActiveSheet.Cells(lr + 1, "u").Value = Sheets("Foglio2").Range("a" & i).Value
ActiveSheet.Cells(lr + 1, "V").Value = Sheets("Foglio2").Range("B" & i).Value
ActiveSheet.Cells(lr + 1, "W").Value = Sheets("Foglio2").Range("C" & i).Value
ActiveSheet.Cells(lr + 1, "X").Value = Sheets("Foglio2").Range("D" & i).Value
ActiveSheet.Cells(lr + 1, "Y").Value = Sheets("Foglio2").Range("E" & i).Value
ActiveSheet.Cells(lr + 1, "Z").Value = Sheets("Foglio2").Range("F" & i).Value
ActiveSheet.Cells(lr + 1, "AA").Value = Sheets("Foglio2").Range("G" & i).Value
ActiveSheet.Cells(lr + 1, "AB").Value = Sheets("Foglio2").Range("H" & i).Value
ActiveSheet.Cells(lr + 1, "AC").Value = Sheets("Foglio2").Range("I" & i).Value
ActiveSheet.Cells(lr + 1, "AD").Value = Sheets("Foglio2").Range("J" & i).Value
ActiveSheet.Cells(lr + 1, "AE").Value = Sheets("Foglio2").Range("K" & i).Value
ActiveSheet.Cells(lr + 1, "AF").Value = Sheets("Foglio2").Range("L" & i).Value
ActiveSheet.Cells(lr + 1, "AG").Value = Sheets("Foglio2").Range("M" & i).Value
ActiveSheet.Cells(lr + 1, "AH").Value = Sheets("Foglio2").Range("N" & i).Value
ActiveSheet.Cells(lr + 1, "AI").Value = Sheets("Foglio2").Range("O" & i).Value
ActiveSheet.Cells(lr + 1, "AJ").Value = Sheets("Foglio2").Range("P" & i).Value
ActiveSheet.Cells(lr + 1, "AK").Value = Sheets("Foglio2").Range("Q" & i).Value
ActiveSheet.Cells(lr + 1, "AL").Value = Sheets("Foglio2").Range("R" & i).Value
ActiveSheet.Cells(lr + 1, "AM").Value = Sheets("Foglio2").Range("S" & i).Value
End If
Next i
Application.ScreenUpdating = True
End Sub
Due cose:
1) Elimina la riga tra il titolo delle tabelle e l'inizio dei dati
2) Sopra le tabelle inserisci una nuova riga in modo che i dati partano nuovamente dalla riga 30.
Prova e fai sapere.
P.S. la macro funziona ma può essere scritta meglio con minor numero di righe; se riesco te la posto. [Modificato da alfrimpa 11/09/2018 11:01]
Alfredo |
| | Post: 3.889 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
11/09/2018 11:02 | |
Melissa2018, 11/09/2018 10.50:
Woooooow!!! Federico, grazieeeeeee! E' esattamente ciò di cui avevo bisogno!!
Siete stati fantastici ad aiutarmi!
Si però con 50.000 righe il rischio che si impalli il pc è concreto .
Alfredo |
| | Post: 1.684 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
11/09/2018 11:08 | |
ciao Al
ho paura che con 50000 righe
si rallenti appena appena
Melissa
usa il Vba
|
| | Post: 5 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
11/09/2018 18:02 | |
Buonasera a tutti!
Alfredo, addirittura mi ha anche riadattato la macro, siete troppo gentili e pazienti con me grazie!
Ho fatto ciò che mi hai scritto, credo, circa il rigo vuoto sotto le tabelle, ma stranamente questa macro mi dà invece un errore di cui ti allego lo screenshot.
|
| | Post: 6 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
11/09/2018 18:06 | |
Ma se mi fermassi a 15000 righe (anzichè le 50000 preventivate) pensate che il mio laptop mi si impallerebbe ugualmente utilizzando invece quella formula (di Federico)? |
| | Post: 1.687 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
11/09/2018 18:10 | |
ciao
prova non si impalla
al massimo ci mette qualche secondo
|
| | Post: 3.892 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
11/09/2018 18:18 | |
Melissa2018, 11/09/2018 18.02:
Buonasera a tutti!
Alfredo, addirittura mi ha anche riadattato la macro, siete troppo gentili e pazienti con me grazie!
Ho fatto ciò che mi hai scritto, credo, circa il rigo vuoto sotto le tabelle, ma stranamente questa macro mi dà invece un errore di cui ti allego lo screenshot.
Melissa mi devi allegare il file che ti dà l'errore e dire su quale istruzione si verifica.
Comunque controlla che i nomi dei fogli nel file siano uguali a quelli contenuti nella macro perché 99 su 100 il problema è quello.
Comunque riallega il file che ti dà l'errore e vediamo.
Alfredo |
| | Post: 3.893 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
11/09/2018 18:20 | |
Intanto ti allego il mio funzionante
Alfredo |
| | Post: 1.688 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
11/09/2018 18:51 | |
ciao Al
visto il file di Melissa
io l'ho modificata così
va bene?
Sub CreaTabella1()
Dim i As Integer
Dim ur As Integer
Dim lr As Integer
ur = Sheets("Foglio1").Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
Range("u30:am1000").ClearContents
For i = 30 To ur
lr = Cells(Rows.Count, "U").End(xlUp).Row
If Range("s" & i).Value <> "nullo" Then
Cells(lr + 1, "u").Value = Range("a" & i).Value
Cells(lr + 1, "V").Value = Range("B" & i).Value
Cells(lr + 1, "W").Value = Range("C" & i).Value
Cells(lr + 1, "X").Value = Range("D" & i).Value
Cells(lr + 1, "Y").Value = Range("E" & i).Value
Cells(lr + 1, "Z").Value = Range("F" & i).Value
Cells(lr + 1, "AA").Value = Range("G" & i).Value
Cells(lr + 1, "AB").Value = Range("H" & i).Value
Cells(lr + 1, "AC").Value = Range("I" & i).Value
Cells(lr + 1, "AD").Value = Range("J" & i).Value
Cells(lr + 1, "AE").Value = Range("K" & i).Value
Cells(lr + 1, "AF").Value = Range("L" & i).Value
Cells(lr + 1, "AG").Value = Range("M" & i).Value
Cells(lr + 1, "AH").Value = Range("N" & i).Value
Cells(lr + 1, "AI").Value = Range("O" & i).Value
Cells(lr + 1, "AJ").Value = Range("P" & i).Value
Cells(lr + 1, "AK").Value = Range("Q" & i).Value
Cells(lr + 1, "AL").Value = Range("R" & i).Value
Cells(lr + 1, "AM").Value = Range("S" & i).Value
End If
Next i
Application.ScreenUpdating = True
End Sub
Scrive sullo stesso foglio
|
| | Post: 3.895 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
11/09/2018 19:02 | |
Si Gianfranco se funziona (come credo) va bene.
Io avevo fatto le prove su una copia del foglio ecco perché avevo messo ActiveShet che poi ho omesso di torgliere.
Adesso dobbiamo solo sapere cos'è quell'errore di run-time 9 "Indice non incluso nell'intervallo (che secondo me è il nome di un foglio non corretto)
Alfredo |
| | Post: 1.689 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
11/09/2018 19:04 | |
ciao
si
il file esempio si sviluppa solo sul foglio1
la tua sub ne prevede 2
|
| | Post: 3.896 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
11/09/2018 19:06 | |
Gianfranco quando inserisci del codice sul forum non utilizzare il parametro Text ma VB.
1) Seleziona il codice
2) clicca su Code
3) nella finestra digita VB e Invio e ancora VB e Invio.
In tal modo il plug in del forum interpreta in modo corretto le istruzioni colorando le parole chiave del VBA (come nel codice inserito da me.
Alfredo |
| | Post: 7 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
12/09/2018 12:10 | |
Buongiorno!
Alfredo, ho scaricato il file che hai postato e eseguendo la tua macro con le righe presenti tutto funziona.
Ho fatto quindi alcune prove per vedere se avrebbe funzionato con altri dati inseriti nella Matrice A:
a) nelle celle S35 e S36 ho messo adesso nullo al posto del testo precedente;
b) nella cella S41 ho inserito adesso kk al posto del nullo preesistente (riga 41 Matrice A);
c) ho aggiunto una riga di nuovi dati (la riga 45 sulla matrice A).
Le modifiche b e c non vengono recepite correttamente dalla macro.
Sbaglio io in qualcosa?
ti riallego il file con le modifiche (ho evidenziato le righe soggette a modifiche)
Grazie per il tuo aiuto! |
| | Post: 8 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
12/09/2018 12:29 | |
Federico, la tua macro sembra funzionare benissimo!!!! Adesso potrò cimentarmi in prove di ogni tipo. Grazie!!
Non immaginate neanche quanto tempo prezioso mi avete regalato col vostro aiuto. Siete fantastici!
P.S.Come mi avevate avvisata, l'utilizzo di quella formula, nel caso si considerino molte righe di dati rallenta davvero molti secondi (per modifiche di ogni tipo e su qualsiasi cella del foglio). La custodirò comunque gelosamente perchè mi tornerà utilissima per molti altri fogli elettronici. [Modificato da Melissa2018 12/09/2018 12:31] |
| | Post: 1.690 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
12/09/2018 12:54 | |
ciao Melissa
a dire il vero la macro è di AL
io conosco pochissimo di VBA
l'ho solo adattata al tuo file campione
poiché si riferiva a due fogli e non a uno.
se guardi bene è la stessa identica
con riferimenti diversi.
ah!
non so quante righe vengano estrapolate
se dovessero essere tante
cambia
Range("u30:am1000").ClearContents
quel 1000 nel numero che vuoi (30000/50000)
per evitare doppioni
in pratica ora cancella ad ora solo 1000 righe
al lancio della macro
Ciao
[Modificato da federico460 12/09/2018 12:59] |
| | Post: 3.898 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/09/2018 13:29 | |
Ciao Mellissa e un saluto a Federico
Non eri tu a sbagliare ma sono stato io a non apportare delle modifiche (necessarie) alla macro.
Prova con questa
vb Sub CreaTabella()
Dim i As Integer
Dim ur As Integer
Dim lr As Integer
ur = Sheets("Foglio1").Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
ActiveSheet.Range("u30:am100000").ClearContents
For i = 30 To ur
lr = ActiveSheet.Cells(Rows.Count, "U").End(xlUp).Row
With ActiveSheet
If .Range("s" & i).Value <> "nullo" Then
.Cells(lr + 1, "u").Value = Sheets("Foglio1").Range("a" & i).Value
.Cells(lr + 1, "V").Value = Sheets("Foglio1").Range("B" & i).Value
.Cells(lr + 1, "W").Value = Sheets("Foglio1").Range("C" & i).Value
.Cells(lr + 1, "X").Value = Sheets("Foglio1").Range("D" & i).Value
.Cells(lr + 1, "Y").Value = Sheets("Foglio1").Range("E" & i).Value
.Cells(lr + 1, "Z").Value = Sheets("Foglio1").Range("F" & i).Value
.Cells(lr + 1, "AA").Value = Sheets("Foglio1").Range("G" & i).Value
.Cells(lr + 1, "AB").Value = Sheets("Foglio1").Range("H" & i).Value
.Cells(lr + 1, "AC").Value = Sheets("Foglio1").Range("I" & i).Value
.Cells(lr + 1, "AD").Value = Sheets("Foglio1").Range("J" & i).Value
.Cells(lr + 1, "AE").Value = Sheets("Foglio1").Range("K" & i).Value
.Cells(lr + 1, "AF").Value = Sheets("Foglio1").Range("L" & i).Value
.Cells(lr + 1, "AG").Value = Sheets("Foglio1").Range("M" & i).Value
.Cells(lr + 1, "AH").Value = Sheets("Foglio1").Range("N" & i).Value
.Cells(lr + 1, "AI").Value = Sheets("Foglio1").Range("O" & i).Value
.Cells(lr + 1, "AJ").Value = Sheets("Foglio1").Range("P" & i).Value
.Cells(lr + 1, "AK").Value = Sheets("Foglio1").Range("Q" & i).Value
.Cells(lr + 1, "AL").Value = Sheets("Foglio1").Range("R" & i).Value
.Cells(lr + 1, "AM").Value = Sheets("Foglio1").Range("S" & i).Value
End If
End With
Next i
Application.ScreenUpdating = True
End Sub
Volevo a anche cercare di sfoltirla un po'; se riesco te la posto. [Modificato da alfrimpa 12/09/2018 13:30]
Alfredo |
| | Post: 9 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
12/09/2018 18:33 | |
Alfredo, ora è perfetta!
Ho provato addirittura con una matrice A da 7500 righe e mi restituisce correttamente tutti i valori che con trepidazione aspettavo! Sei un genio!
Ma se volessi effettuare in futuro un'analisi su di una matrice di anche 200/300000 righe, come mi ha suggerito Federico, devo aumentare il numero 100000 presente nella 7ima riga del VB che mi hai gentilmente regalato?
ActiveSheet.Range("u30:am100000").ClearContents
Io sono davvero una novellina con excel, pensa, fino a qualche settimana fa non sapevo nemmeno cosa fosse una macro!
Ma grazie a voi sto studiando e imparando il più possibile. Questo forum è un tesoro di informazioni.
Grazie per avermi regalato tutto questo tempo
|
| | Post: 3.901 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/09/2018 18:42 | |
No Melissa non è ancora perfetta devo eliminare tutte quelle istruzioni .Cells e sostituirle con un'unica istruzione all'interno di un ciclo e ancora non mi riesce.
Questa istruzione
vb ActiveSheet.Range("u30:am100000").ClearContents
altro non significa che: cancella il contenuto dell'intervallo u30:am100000 del foglio attivo in quel momento.
Ovviamente il 100000 può essere sostituito con il numero che vuoi (anche 1000000) così sei tranquilla.
Alfredo |
| | Post: 10 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
12/09/2018 19:14 | |
Alfredo, la macro va benissimo così, fa esattamente ciò di cui avevo bisogno, per me è perfetta!
Sono addirittura riuscita a creare un pulsantino per attivarla, troppo comodo, favoloso! Mi sembra non vero che ci sia riuscita... impedita come sono per queste cose, per me è una conquista! |
| | Post: 3.902 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/09/2018 19:29 | |
Brava Melissa ma creare un pulsante non era possibile che non sapeesi farlo e poi ricorda non esistono cose facili o difficili esistono cose che si sanno e cose che non si sanno
Comunque se la tabella Matrice A avesse avuto un'intestazione con i nomi dei campi non te la potevi cavare con un semplice Filtro avanzato che ti consente la copia dei record estratti anche in altra parte del foglio?
Alfredo |
| | Post: 3.905 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
13/09/2018 09:53 | |
Ciao Melissa
Come detto in precedenza ti riposto la macro di prima un po' "sfoltita"
vb Sub CreaTabella()
Dim i As Integer
Dim k As Integer
Dim ur As Integer
Dim lr As Integer
ur = Sheets("Foglio1").Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
ActiveSheet.Range("u30:am100000").ClearContents
For i = 30 To ur
lr = ActiveSheet.Cells(Rows.Count, "U").End(xlUp).Row
With ActiveSheet
If .Range("s" & i).Value <> "nullo" Then
For k = 21 To 39
.Cells(lr + 1, k).Value = Cells(i, k - 20).Value
Next k
End If
End With
Next i
Application.ScreenUpdating = True
End Sub
Ora mi devi dire se riesci a capire tutte le istruzioni.
Se hai bisogno provo a spiegartele.
Alfredo |
| | Post: 11 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
13/09/2018 16:31 | |
Buonasera Alfredo! Il tuo consiglio sul filtro avanzato per le tabelle è interessantissimo, ci sto guardando proprio adesso (ovviamente non ne ero a conoscenza), so già che lo userò per le prossime necessità... Ma il foglio di calcolo che mi hai regalato tu è oramai una bomboniera, mi piace troppo!
Perchè hai deciso di sfoltire la macro? Quali vantaggi ha rispetto alla precedente? Velocità di esecuzione?
|
| | Post: 12 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
13/09/2018 16:37 | |
alfrimpa, 13/09/2018 09.53:
Ora mi devi dire se riesci a capire tutte le istruzioni.
Se hai bisogno provo a spiegartele.
Se davvero gentile a renderti così disponibile, grazie!
Avrò premura di studiarci dietro, così come comprendere davvero anche tutte le altre formule utilissime che ho letto su questo forum e di cui ho preso nota. Si riescono a fare davvero cose interessanti
|
|
|