Discussione:
Trasponi valori con condizioni [VBA]
(troppo vecchio per rispondere)
Ki$$
2024-03-29 07:55:14 UTC
Permalink
Io penso che qua andrebbe benissimo una VBA...


*****************************************
allora... ho un file di esempio da aprire:

https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY



come si vede c'è la colonna [J] che ha valori (alcuni duplicati)
e le colonne M-N con condizioni (maggiore di.. e minore di..)

io vorrei che premendo il pulsante automaticamente mi si riempisse la tabella
B29:G34 (con il risultato voluto nella tabella di esempio appena sotto B40:G46)


in pratica i passaggi sono:

- solo univoci in [J] (rimuove i duplicati)
- trasponi valori voluti (seguendo le condizioni in colonna M-N)

andrebbe meglio per me un trasponi valori perché, se io volessi per esempio
rimuovere manualmente il valore presente in B41 (o anche altri in altre celle)
potrei poi ripristinare allo stato iniziale la tabella alla pressione del
pulsante.

PS1 : tenere presente che la colonna [J] ha una sola cella mentre ogni colonna
della tabella è in realtà un uninone di 2 celle.

PS2: nel caso le condizioni [M-N] trovassero valori in numero maggiore di
quelli che può contenere la tabella, penso che una sezione apposita nella VBA
(che anticipatamente ne stabilisse i limiti da me manualmente) sarebbe utile.

...ovviamente i limiti della tabella quindi invece di B29:G34 potrebbe essere
B29:G37 oppure B29:H36.
--
Ki$$
casanmaner
2024-03-29 12:43:32 UTC
Permalink
Con Office 365 e se le celle fossero singole e non unite a coppie:

=LET(INTERVALLO;--J26:J50;TESTO(A.CAPO.COL(DATI.ORDINA(FILTRO(INTERVALLO;(INTERVALLO>--N28)*(INTERVALLO<--N29)+(INTERVALLO>--N31)*(INTERVALLO<--N32)+(INTERVALLO>--N34)*(INTERVALLO<--N35)+(INTERVALLO>--N37)*(INTERVALLO<--N38)));6;"");"000"))

:-)

Per la soluzione VBA ... fornisci una email valida alla quale poterti
recapitare il mio l'IBAN sul quale accreditare un po' degli Euro che
pensi di giocare e fai sapere i numeri che pensi possano essere vincenti.
A vincita acquisti arriverà il codice :-)
Ki$$
2024-03-29 13:16:05 UTC
Permalink
Post by casanmaner
=LET(INTERVALLO;--J26:J50;TESTO(A.CAPO.COL(DATI.ORDINA(FILTRO(INTERVALLO;(INTERVALLO>--N28)*(INTERVALLO<--N29)+(INTERVALLO>--N31)*(INTERVALLO<--N32)+(INTERVALLO>--N34)*(INTERVALLO<--N35)+(INTERVALLO>--N37)*(INTERVALLO<--N38)));6;"");"000"))
:-)
Per la soluzione VBA ... fornisci una email valida alla quale poterti
recapitare il mio l'IBAN sul quale accreditare un po' degli Euro che pensi di
giocare e fai sapere i numeri che pensi possano essere vincenti.
A vincita acquisti arriverà il codice :-)
ahahahahahahaha

bella questa... :)
--
Ki$$
Ki$$
2024-03-29 13:20:40 UTC
Permalink
Post by Ki$$
Post by casanmaner
=LET(INTERVALLO;--J26:J50;TESTO(A.CAPO.COL(DATI.ORDINA(FILTRO(INTERVALLO;(INTERVALLO>--N28)*(INTERVALLO<--N29)+(INTERVALLO>--N31)*(INTERVALLO<--N32)+(INTERVALLO>--N34)*(INTERVALLO<--N35)+(INTERVALLO>--N37)*(INTERVALLO<--N38)));6;"");"000"))
:-)
Per la soluzione VBA ... fornisci una email valida alla quale poterti
recapitare il mio l'IBAN sul quale accreditare un po' degli Euro che pensi
di giocare e fai sapere i numeri che pensi possano essere vincenti.
A vincita acquisti arriverà il codice :-)
ahahahahahahaha
bella questa... :)
comunque io potrei unire a coppie anche la colonna [N] quindi alla fine non ci
sarebbe il problema di questa conversione. (mi son dimenticato di scriverlo)

:)
--
Ki$$
casanmaner
2024-03-29 13:31:07 UTC
Permalink
Post by Ki$$
Post by casanmaner
=LET(INTERVALLO;--J26:J50;TESTO(A.CAPO.COL(DATI.ORDINA(FILTRO(INTERVALLO;(INTERVALLO>--N28)*(INTERVALLO<--N29)+(INTERVALLO>--N31)*(INTERVALLO<--N32)+(INTERVALLO>--N34)*(INTERVALLO<--N35)+(INTERVALLO>--N37)*(INTERVALLO<--N38)));6;"");"000"))
:-)
Per la soluzione VBA ... fornisci una email valida alla quale poterti
recapitare il mio l'IBAN sul quale accreditare un po' degli Euro che
pensi di giocare e fai sapere i numeri che pensi possano essere vincenti.
A vincita acquisti arriverà il codice :-)
ahahahahahahaha
bella questa... :)
comunque io potrei unire a coppie anche la colonna [N]  quindi alla fine
non ci sarebbe il problema di questa conversione. (mi son dimenticato di
scriverlo)
Il problema non è tanto nella colonna N
Ma il fatto che vi siano celle unite in B29:G34.
Rende impossibile l'espansione per le versioni più recenti di Office (mi
pare sia presente anche in Excel 2021).
Ma anche in VBA occorre creare delle matrici di valori "sfalsate" perchè
due celle unite sono comunque viste come due celle è non un'unica cella.
Diciamo che non è il massimo.
Ki$$
2024-03-29 13:42:38 UTC
Permalink
Post by casanmaner
Post by Ki$$
ahahahahahahaha
bella questa... :)
comunque io potrei unire a coppie anche la colonna [N]  quindi alla fine
non ci sarebbe il problema di questa conversione. (mi son dimenticato di
scriverlo)
Il problema non è tanto nella colonna N
Ma il fatto che vi siano celle unite in B29:G34.
Rende impossibile l'espansione per le versioni più recenti di Office (mi pare
sia presente anche in Excel 2021).
Ma anche in VBA occorre creare delle matrici di valori "sfalsate" perchè due
celle unite sono comunque viste come due celle è non un'unica cella.
Diciamo che non è il massimo.
ok penso di aver capito il problema.

Intanto faccio a mano come ho fatto fino ora (son solo 2-3 passaggi), poi vedrò
se riesco a trovare una soluzione appropriata.

Comunque no problem casa.. per quanto mi riguarda son solo 2-3 minuti in più
per aggiustare il tutto a mio piacimento
--
Ki$$
casanmaner
2024-03-29 13:27:20 UTC
Permalink
Mi ero dimenticato di prendere valori unici:

=LET(INTERVALLO;--UNICI(J26:J51);TESTO(A.CAPO.COL(DATI.ORDINA(FILTRO(INTERVALLO;(INTERVALLO>--N28)*(INTERVALLO<--N29)+(INTERVALLO>--N31)*(INTERVALLO<--N32)+(INTERVALLO>--N34)*(INTERVALLO<--N35)+(INTERVALLO>--N37)*(INTERVALLO<--N38)));6;"");"000"))
Bruno Campanini
2024-03-29 17:34:10 UTC
Permalink
Post by Ki$$
Io penso che qua andrebbe benissimo una VBA...
*****************************************
https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY
come si vede c'è la colonna [J] che ha valori (alcuni duplicati)
e le colonne M-N con condizioni (maggiore di.. e minore di..)
io vorrei che premendo il pulsante automaticamente mi si riempisse la tabella
B29:G34 (con il risultato voluto nella tabella di esempio appena sotto B40:G46)
- solo univoci in [J] (rimuove i duplicati)
- trasponi valori voluti (seguendo le condizioni in colonna M-N)
andrebbe meglio per me un trasponi valori perché, se io volessi per esempio
rimuovere manualmente il valore presente in B41 (o anche altri in altre
celle) potrei poi ripristinare allo stato iniziale la tabella alla pressione
del pulsante.
PS1 : tenere presente che la colonna [J] ha una sola cella mentre ogni
colonna della tabella è in realtà un uninone di 2 celle.
PS2: nel caso le condizioni [M-N] trovassero valori in numero maggiore di
quelli che può contenere la tabella, penso che una sezione apposita nella VBA
(che anticipatamente ne stabilisse i limiti da me manualmente) sarebbe utile.
...ovviamente i limiti della tabella quindi invece di B29:G34 potrebbe essere
B29:G37 oppure B29:H36.
Volevo mettere le mani sul tuo file ma per farlo vuole la mia eMail
e io non gliela dò: non per segretezza ma per principio.

Bruno
Ki$$
2024-03-29 17:39:46 UTC
Permalink
Post by Bruno Campanini
Post by Ki$$
Io penso che qua andrebbe benissimo una VBA...
*****************************************
https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY
come si vede c'è la colonna [J] che ha valori (alcuni duplicati)
e le colonne M-N con condizioni (maggiore di.. e minore di..)
io vorrei che premendo il pulsante automaticamente mi si riempisse la
tabella B29:G34 (con il risultato voluto nella tabella di esempio appena
sotto B40:G46)
- solo univoci in [J] (rimuove i duplicati)
- trasponi valori voluti (seguendo le condizioni in colonna M-N)
andrebbe meglio per me un trasponi valori perché, se io volessi per esempio
rimuovere manualmente il valore presente in B41 (o anche altri in altre
celle) potrei poi ripristinare allo stato iniziale la tabella alla
pressione del pulsante.
PS1 : tenere presente che la colonna [J] ha una sola cella mentre ogni
colonna della tabella è in realtà un uninone di 2 celle.
PS2: nel caso le condizioni [M-N] trovassero valori in numero maggiore di
quelli che può contenere la tabella, penso che una sezione apposita nella
VBA (che anticipatamente ne stabilisse i limiti da me manualmente) sarebbe
utile.
...ovviamente i limiti della tabella quindi invece di B29:G34 potrebbe
essere B29:G37 oppure B29:H36.
Volevo mettere le mani sul tuo file ma per farlo vuole la mia eMail
e io non gliela dò: non per segretezza ma per principio.
Bruno
ma guarda che non ci vuole nessuna mail.

"per ora" è tutto free of charge. ;)
...ritenta.

https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY
--
Ki$$
Ki$$
2024-03-29 17:40:41 UTC
Permalink
Post by Ki$$
Post by Bruno Campanini
Post by Ki$$
Io penso che qua andrebbe benissimo una VBA...
*****************************************
https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY
come si vede c'è la colonna [J] che ha valori (alcuni duplicati)
e le colonne M-N con condizioni (maggiore di.. e minore di..)
io vorrei che premendo il pulsante automaticamente mi si riempisse la
tabella B29:G34 (con il risultato voluto nella tabella di esempio appena
sotto B40:G46)
- solo univoci in [J] (rimuove i duplicati)
- trasponi valori voluti (seguendo le condizioni in colonna M-N)
andrebbe meglio per me un trasponi valori perché, se io volessi per
esempio rimuovere manualmente il valore presente in B41 (o anche altri in
altre celle) potrei poi ripristinare allo stato iniziale la tabella alla
pressione del pulsante.
PS1 : tenere presente che la colonna [J] ha una sola cella mentre ogni
colonna della tabella è in realtà un uninone di 2 celle.
PS2: nel caso le condizioni [M-N] trovassero valori in numero maggiore di
quelli che può contenere la tabella, penso che una sezione apposita nella
VBA (che anticipatamente ne stabilisse i limiti da me manualmente) sarebbe
utile.
...ovviamente i limiti della tabella quindi invece di B29:G34 potrebbe
essere B29:G37 oppure B29:H36.
Volevo mettere le mani sul tuo file ma per farlo vuole la mia eMail
e io non gliela dò: non per segretezza ma per principio.
Bruno
ma guarda che non ci vuole nessuna mail.
"per ora" è tutto free of charge. ;)
...ritenta.
https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY
aspè magari vado a vedere se l'ho condiviso col mondo.
--
Ki$$
Ki$$
2024-03-29 17:43:43 UTC
Permalink
Post by Ki$$
Post by Ki$$
Post by Bruno Campanini
Volevo mettere le mani sul tuo file ma per farlo vuole la mia eMail
e io non gliela dò: non per segretezza ma per principio.
Bruno
ma guarda che non ci vuole nessuna mail.
"per ora" è tutto free of charge. ;)
...ritenta.
https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY
aspè magari vado a vedere se l'ho condiviso col mondo.
fatto modifica. ora lo si può anche editare (prima solo visualizzare)
--
Ki$$
Bruno Campanini
2024-03-29 17:52:26 UTC
Permalink
Post by Ki$$
Post by Ki$$
Post by Ki$$
Post by Bruno Campanini
Volevo mettere le mani sul tuo file ma per farlo vuole la mia eMail
e io non gliela dò: non per segretezza ma per principio.
Bruno
ma guarda che non ci vuole nessuna mail.
"per ora" è tutto free of charge. ;)
...ritenta.
https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY
aspè magari vado a vedere se l'ho condiviso col mondo.
fatto modifica. ora lo si può anche editare (prima solo visualizzare)
Comunque il contenuto si poteva copiare... ed io così ho fatto.

Bruno
Bruno Campanini
2024-03-29 20:52:34 UTC
Permalink
Post by Ki$$
Post by Ki$$
Post by Ki$$
Post by Bruno Campanini
Volevo mettere le mani sul tuo file ma per farlo vuole la mia eMail
e io non gliela dò: non per segretezza ma per principio.
Bruno
ma guarda che non ci vuole nessuna mail.
"per ora" è tutto free of charge. ;)
...ritenta.
https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY
aspè magari vado a vedere se l'ho condiviso col mondo.
fatto modifica. ora lo si può anche editare (prima solo visualizzare)
'sto c....!

Bruno
Bruno Campanini
2024-03-29 17:50:42 UTC
Permalink
Post by Bruno Campanini
Post by Ki$$
Io penso che qua andrebbe benissimo una VBA...
*****************************************
https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY
come si vede c'è la colonna [J] che ha valori (alcuni duplicati)
e le colonne M-N con condizioni (maggiore di.. e minore di..)
io vorrei che premendo il pulsante automaticamente mi si riempisse la
tabella B29:G34 (con il risultato voluto nella tabella di esempio appena
sotto B40:G46)
- solo univoci in [J] (rimuove i duplicati)
- trasponi valori voluti (seguendo le condizioni in colonna M-N)
andrebbe meglio per me un trasponi valori perché, se io volessi per esempio
rimuovere manualmente il valore presente in B41 (o anche altri in altre
celle) potrei poi ripristinare allo stato iniziale la tabella alla
pressione del pulsante.
PS1 : tenere presente che la colonna [J] ha una sola cella mentre ogni
colonna della tabella è in realtà un uninone di 2 celle.
PS2: nel caso le condizioni [M-N] trovassero valori in numero maggiore di
quelli che può contenere la tabella, penso che una sezione apposita nella
VBA (che anticipatamente ne stabilisse i limiti da me manualmente) sarebbe
utile.
...ovviamente i limiti della tabella quindi invece di B29:G34 potrebbe
essere B29:G37 oppure B29:H36.
Volevo mettere le mani sul tuo file ma per farlo vuole la mia eMail
e io non gliela dò: non per segretezza ma per principio.
Bruno
Comunque:
===================
Sub Button1_Click()
Dim R As Range, T As Range, i, k

Set T = [Foglio1!P1]
Set R = Range([Foglio1!K5], [Foglio1!K5].End(xlDown))

For Each i In R
If (i > "020" And i < "050") Or _
(i > "110" And i < "150") Or _
(i > "220" And i < "325") Or _
(i > "425" And i < "600") Then
k = k + 1
T(k) = i
End If
Next

End Sub
=====================

Bruno
Ki$$
2024-03-29 17:54:13 UTC
Permalink
Post by Bruno Campanini
Post by Bruno Campanini
Post by Ki$$
Io penso che qua andrebbe benissimo una VBA...
*****************************************
https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY
come si vede c'è la colonna [J] che ha valori (alcuni duplicati)
e le colonne M-N con condizioni (maggiore di.. e minore di..)
io vorrei che premendo il pulsante automaticamente mi si riempisse la
tabella B29:G34 (con il risultato voluto nella tabella di esempio appena
sotto B40:G46)
- solo univoci in [J] (rimuove i duplicati)
- trasponi valori voluti (seguendo le condizioni in colonna M-N)
andrebbe meglio per me un trasponi valori perché, se io volessi per
esempio rimuovere manualmente il valore presente in B41 (o anche altri in
altre celle) potrei poi ripristinare allo stato iniziale la tabella alla
pressione del pulsante.
PS1 : tenere presente che la colonna [J] ha una sola cella mentre ogni
colonna della tabella è in realtà un uninone di 2 celle.
PS2: nel caso le condizioni [M-N] trovassero valori in numero maggiore di
quelli che può contenere la tabella, penso che una sezione apposita nella
VBA (che anticipatamente ne stabilisse i limiti da me manualmente) sarebbe
utile.
...ovviamente i limiti della tabella quindi invece di B29:G34 potrebbe
essere B29:G37 oppure B29:H36.
Volevo mettere le mani sul tuo file ma per farlo vuole la mia eMail
e io non gliela dò: non per segretezza ma per principio.
Bruno
===================
Sub Button1_Click()
Dim R As Range, T As Range, i, k
Set T = [Foglio1!P1]
Set R = Range([Foglio1!K5], [Foglio1!K5].End(xlDown))
For Each i In R
If (i > "020" And i < "050") Or _
(i > "110" And i < "150") Or _
(i > "220" And i < "325") Or _
(i > "425" And i < "600") Then
k = k + 1
T(k) = i
End If
Next
End Sub
=====================
Bruno
provo domani con calma.

ora non posso.
--
Ki$$
Bruno Campanini
2024-03-29 22:12:01 UTC
Permalink
Post by Bruno Campanini
Post by Bruno Campanini
Post by Ki$$
Io penso che qua andrebbe benissimo una VBA...
*****************************************
https://drive.google.com/uc?id=1C6wxMM5goe_cJ28ptXl10ZKfl2UosEUY
come si vede c'è la colonna [J] che ha valori (alcuni duplicati)
e le colonne M-N con condizioni (maggiore di.. e minore di..)
io vorrei che premendo il pulsante automaticamente mi si riempisse la
tabella B29:G34 (con il risultato voluto nella tabella di esempio appena
sotto B40:G46)
- solo univoci in [J] (rimuove i duplicati)
- trasponi valori voluti (seguendo le condizioni in colonna M-N)
andrebbe meglio per me un trasponi valori perché, se io volessi per
esempio rimuovere manualmente il valore presente in B41 (o anche altri in
altre celle) potrei poi ripristinare allo stato iniziale la tabella alla
pressione del pulsante.
PS1 : tenere presente che la colonna [J] ha una sola cella mentre ogni
colonna della tabella è in realtà un uninone di 2 celle.
PS2: nel caso le condizioni [M-N] trovassero valori in numero maggiore di
quelli che può contenere la tabella, penso che una sezione apposita nella
VBA (che anticipatamente ne stabilisse i limiti da me manualmente) sarebbe
utile.
...ovviamente i limiti della tabella quindi invece di B29:G34 potrebbe
essere B29:G37 oppure B29:H36.
Volevo mettere le mani sul tuo file ma per farlo vuole la mia eMail
e io non gliela dò: non per segretezza ma per principio.
Bruno
===================
Sub Button1_Click()
Dim R As Range, T As Range, i, k
Set T = [Foglio1!P1]
Set R = Range([Foglio1!K5], [Foglio1!K5].End(xlDown))
For Each i In R
If (i > "020" And i < "050") Or _
(i > "110" And i < "150") Or _
(i > "220" And i < "325") Or _
(i > "425" And i < "600") Then
k = k + 1
T(k) = i
End If
Next
End Sub
=====================
Bruno
Quasi ad litteram:

https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=AzXmym

Particolari personalizzazioni: omesse.

Bruno
Ki$$
2024-03-29 23:51:22 UTC
Permalink
Post by Bruno Campanini
Post by Bruno Campanini
Post by Bruno Campanini
Volevo mettere le mani sul tuo file ma per farlo vuole la mia eMail
e io non gliela dò: non per segretezza ma per principio.
Bruno
===================
Sub Button1_Click()
Dim R As Range, T As Range, i, k
Set T = [Foglio1!P1]
Set R = Range([Foglio1!K5], [Foglio1!K5].End(xlDown))
For Each i In R
If (i > "020" And i < "050") Or _
(i > "110" And i < "150") Or _
(i > "220" And i < "325") Or _
(i > "425" And i < "600") Then
k = k + 1
T(k) = i
End If
Next
End Sub
=====================
Bruno
https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=AzXmym
Particolari personalizzazioni: omesse.
Bruno
sembra che vada bene... (provo domani)

e... a prescindere dall'unione celle di cui si è parlato nei precedenti post...

...e se uno volesse sostituire a "020" e "050" le celle [O7] e [O8] ... e poi
quindi anche tutte le altre? (in pratica le condizioni le setto sul foglio
invece che nel codice)?
--
Ki$$
casanmaner
2024-03-30 06:51:13 UTC
Permalink
Post by Ki$$
sembra che vada bene... (provo domani)
e... a prescindere dall'unione celle di cui si è parlato nei precedenti post...
prova meglio :)
Ki$$
2024-03-30 07:53:02 UTC
Permalink
Post by casanmaner
Post by Ki$$
sembra che vada bene... (provo domani)
e... a prescindere dall'unione celle di cui si è parlato nei precedenti post...
prova meglio :)
già... va bene solo per la prima colonna forse proprio per quel motivo che
dicevi.

a questo punto vedrò temporaneamente di togliere l'unione celle e magari
rimpicciolire un po i caratteri della tabella
--
Ki$$
casanmaner
2024-03-30 08:01:23 UTC
Permalink
Post by Ki$$
Post by casanmaner
Post by Ki$$
sembra che vada bene... (provo domani)
e... a prescindere dall'unione celle di cui si è parlato nei precedenti post...
prova meglio :)
già... va bene solo per la prima colonna forse proprio per quel motivo
che dicevi.
a questo punto vedrò temporaneamente di togliere l'unione celle e magari
rimpicciolire un po i caratteri della tabella
Attenzione anche all'eventuale presenza di duplicati negli intervalli
considerati.
Se aggiungi 022 alla lista vedrai che viene riportato due volte.
La procedura andrebbe integrata per fare in modo che i duplicati vengano
esclusi.
Ki$$
2024-03-30 08:08:13 UTC
Permalink
Post by casanmaner
Post by Ki$$
Post by casanmaner
prova meglio :)
già... va bene solo per la prima colonna forse proprio per quel motivo che
dicevi.
a questo punto vedrò temporaneamente di togliere l'unione celle e magari
rimpicciolire un po i caratteri della tabella
Attenzione anche all'eventuale presenza di duplicati negli intervalli
considerati.
Se aggiungi 022 alla lista vedrai che viene riportato due volte.
La procedura andrebbe integrata per fare in modo che i duplicati vengano
esclusi.
ok faccio prove dopo...
--
Ki$$
Ki$$
2024-03-30 08:25:27 UTC
Permalink
Post by casanmaner
Post by Ki$$
Post by casanmaner
prova meglio :)
già... va bene solo per la prima colonna forse proprio per quel motivo che
dicevi.
a questo punto vedrò temporaneamente di togliere l'unione celle e magari
rimpicciolire un po i caratteri della tabella
Attenzione anche all'eventuale presenza di duplicati negli intervalli
considerati.
Se aggiungi 022 alla lista vedrai che viene riportato due volte.
La procedura andrebbe integrata per fare in modo che i duplicati vengano
esclusi.
la versione definitiva (prima di corregere i duplicati) con la Form. Condiz.
(vengono evidenziati solo quelli presenti in tabella)


https://drive.google.com/file/d/1pUk5ssRMrKK4iTzAbDUQQrnqB0Upn_4u/view?usp=sharing
--
Ki$$
casanmaner
2024-03-30 08:45:25 UTC
Permalink
Post by Ki$$
la versione definitiva (prima di corregere i duplicati) con la Form. Condiz.
(vengono evidenziati solo quelli presenti in tabella)
https://drive.google.com/file/d/1pUk5ssRMrKK4iTzAbDUQQrnqB0Upn_4u/view?usp=sharing
Prova ad aggiungere in fondo 022 e vedi che succede.
Ki$$
2024-03-30 09:54:53 UTC
Permalink
Post by casanmaner
Post by Ki$$
la versione definitiva (prima di corregere i duplicati) con la Form. Condiz.
(vengono evidenziati solo quelli presenti in tabella)
https://drive.google.com/file/d/1pUk5ssRMrKK4iTzAbDUQQrnqB0Upn_4u/view?usp=sharing
Prova ad aggiungere in fondo 022 e vedi che succede.
ah se io al posto di K14(113) metto 022 (mi aggiunge il duplicato in tabella,
ma invece se lo 022 lo aggiungo alla lista (alla fine) sembra funzionare bene.
--
Ki$$
Ki$$
2024-03-30 09:56:50 UTC
Permalink
Post by Ki$$
Post by casanmaner
Post by Ki$$
la versione definitiva (prima di corregere i duplicati) con la Form. Condiz.
(vengono evidenziati solo quelli presenti in tabella)
https://drive.google.com/file/d/1pUk5ssRMrKK4iTzAbDUQQrnqB0Upn_4u/view?usp=sharing
Prova ad aggiungere in fondo 022 e vedi che succede.
ah se io al posto di K14(113) metto 022 (mi aggiunge il duplicato in
tabella, ma invece se lo 022 lo aggiungo alla lista (alla fine) sembra
funzionare bene.
no no mi sbagliavo è la stessa cosa errore in entrambi i casi
--
Ki$$
Bruno Campanini
2024-03-30 10:06:41 UTC
Permalink
Post by Ki$$
Post by Bruno Campanini
Post by Bruno Campanini
Post by Bruno Campanini
Volevo mettere le mani sul tuo file ma per farlo vuole la mia eMail
e io non gliela dò: non per segretezza ma per principio.
Bruno
===================
Sub Button1_Click()
Dim R As Range, T As Range, i, k
Set T = [Foglio1!P1]
Set R = Range([Foglio1!K5], [Foglio1!K5].End(xlDown))
For Each i In R
If (i > "020" And i < "050") Or _
(i > "110" And i < "150") Or _
(i > "220" And i < "325") Or _
(i > "425" And i < "600") Then
k = k + 1
T(k) = i
End If
Next
End Sub
=====================
Bruno
https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=AzXmym
Particolari personalizzazioni: omesse.
Bruno
sembra che vada bene... (provo domani)
e... a prescindere dall'unione celle di cui si è parlato nei precedenti post...
...e se uno volesse sostituire a "020" e "050" le celle [O7] e [O8] ... e poi
quindi anche tutte le altre? (in pratica le condizioni le setto sul foglio
invece che nel codice)?
Ieri sera mi ci sono addormentato sopra e non ho guardato
troppo per il sottile.

https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=E6MwwF

Dicevi di voler modificare le condizioni dal foglio
anziché dal codice.
Ci sarebbe un soprapprezzo...

Bruno

Bruno
Ki$$
2024-03-30 10:14:01 UTC
Permalink
Post by Bruno Campanini
Post by Ki$$
Post by Bruno Campanini
https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=AzXmym
Particolari personalizzazioni: omesse.
Bruno
sembra che vada bene... (provo domani)
e... a prescindere dall'unione celle di cui si è parlato nei precedenti post...
...e se uno volesse sostituire a "020" e "050" le celle [O7] e [O8] ... e
poi quindi anche tutte le altre? (in pratica le condizioni le setto sul
foglio invece che nel codice)?
Ieri sera mi ci sono addormentato sopra e non ho guardato
troppo per il sottile.
https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=E6MwwF
Dicevi di voler modificare le condizioni dal foglio
anziché dal codice.
Ci sarebbe un soprapprezzo...
Bruno
Bruno
pago inm contanti...

ti mando una colonna di 9 numeri: (4 numeri poi gli altri 5 alla consegna)


me l'ha insegnato Achille Lauro :)
--
Ki$$
Bruno Campanini
2024-03-30 10:27:40 UTC
Permalink
Post by Ki$$
Post by Bruno Campanini
Post by Ki$$
Post by Bruno Campanini
https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=AzXmym
Particolari personalizzazioni: omesse.
Bruno
sembra che vada bene... (provo domani)
e... a prescindere dall'unione celle di cui si è parlato nei precedenti post...
...e se uno volesse sostituire a "020" e "050" le celle [O7] e [O8] ... e
poi quindi anche tutte le altre? (in pratica le condizioni le setto sul
foglio invece che nel codice)?
Ieri sera mi ci sono addormentato sopra e non ho guardato
troppo per il sottile.
https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=E6MwwF
Dicevi di voler modificare le condizioni dal foglio
anziché dal codice.
Ci sarebbe un soprapprezzo...
Bruno
Bruno
pago inm contanti...
ti mando una colonna di 9 numeri: (4 numeri poi gli altri 5 alla consegna)
me l'ha insegnato Achille Lauro :)
Sostituisci l'ultimo For... Next col seguente:
=====================
For Each i In A
If (i > [Sheet1!O7] And i < [Sheet1!O8]) Or _
(i > [Sheet1!O10] And i < [Sheet1!O11]) Or _
(i > [Sheet1!O13] And i < [Sheet1!O14]) Or _
(i > [Sheet1!O16] And i < [Sheet1!O17]) Then
k = k + 1
T(k, j) = i
If k Mod h = 0 Then
j = j + 2: k = k - h
End If
End If
Next
=====================

Un'annotazione: con i > di... And i < di...
si esclude i =... !?

Bruno
Ki$$
2024-03-30 10:54:00 UTC
Permalink
Post by Bruno Campanini
Post by Ki$$
Post by Bruno Campanini
Ieri sera mi ci sono addormentato sopra e non ho guardato
troppo per il sottile.
https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=E6MwwF
Dicevi di voler modificare le condizioni dal foglio
anziché dal codice.
Ci sarebbe un soprapprezzo...
Bruno
Bruno
pago inm contanti...
ti mando una colonna di 9 numeri: (4 numeri poi gli altri 5 alla consegna)
me l'ha insegnato Achille Lauro :)
=====================
For Each i In A
If (i > [Sheet1!O7] And i < [Sheet1!O8]) Or _
(i > [Sheet1!O10] And i < [Sheet1!O11]) Or _
(i > [Sheet1!O13] And i < [Sheet1!O14]) Or _
(i > [Sheet1!O16] And i < [Sheet1!O17]) Then
k = k + 1
T(k, j) = i
If k Mod h = 0 Then
j = j + 2: k = k - h
End If
End If
Next
=====================
Un'annotazione: con i > di... And i < di...
si esclude i =... !?
Bruno
se il prof mi vuol mettere alla prova, la risposta è:

si escludono

minore 020
051-109
151-219
326-424
maggiore 600

però ora non saprei ora come metterlo iscritto in formula in modo smart in

"i =... !"

dovrei documentarmi ma ora proprio non ho tempo...

più tardi avrete le mie 3 striscie di 9 numeri (totale 27) poi se volete per
conto vostro potete aggiungergli altre combinazioni con gli stessi numeri per
aumentarne le probabilità.
--
Ki$$
Bruno Campanini
2024-03-30 14:27:59 UTC
Permalink
Post by Ki$$
Post by Bruno Campanini
Post by Ki$$
Post by Bruno Campanini
Ieri sera mi ci sono addormentato sopra e non ho guardato
troppo per il sottile.
https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=E6MwwF
Dicevi di voler modificare le condizioni dal foglio
anziché dal codice.
Ci sarebbe un soprapprezzo...
Bruno
Bruno
pago inm contanti...
ti mando una colonna di 9 numeri: (4 numeri poi gli altri 5 alla consegna)
me l'ha insegnato Achille Lauro :)
=====================
For Each i In A
If (i > [Sheet1!O7] And i < [Sheet1!O8]) Or _
(i > [Sheet1!O10] And i < [Sheet1!O11]) Or _
(i > [Sheet1!O13] And i < [Sheet1!O14]) Or _
(i > [Sheet1!O16] And i < [Sheet1!O17]) Then
k = k + 1
T(k, j) = i
If k Mod h = 0 Then
j = j + 2: k = k - h
End If
End If
Next
=====================
Un'annotazione: con i > di... And i < di...
si esclude i =... !?
Bruno
si escludono
minore 020
051-109
151-219
326-424
maggiore 600
però ora non saprei ora come metterlo iscritto in formula in modo smart in
"i =... !"
dovrei documentarmi ma ora proprio non ho tempo...
più tardi avrete le mie 3 striscie di 9 numeri (totale 27) poi se volete per
conto vostro potete aggiungergli altre combinazioni con gli stessi numeri per
aumentarne le probabilità.
=====================================
Public Sub Test1()
Dim i, Scelta As String

Scelta = InputBox("Define i", "Enter Number")
i = CInt(Scelta)

If i < 20 Or i > 600 Or _
(i >= 51 And i <= 109) Or _
(i >= 151 And i <= 219) Or _
(i >= 326 And i <= 424) Then
MsgBox False
Else
MsgBox i
End If

End Sub
================================

Bruno
Ki$$
2024-03-30 14:53:16 UTC
Permalink
Post by Bruno Campanini
Post by Ki$$
Post by Bruno Campanini
=====================
For Each i In A
If (i > [Sheet1!O7] And i < [Sheet1!O8]) Or _
(i > [Sheet1!O10] And i < [Sheet1!O11]) Or _
(i > [Sheet1!O13] And i < [Sheet1!O14]) Or _
(i > [Sheet1!O16] And i < [Sheet1!O17]) Then
k = k + 1
T(k, j) = i
If k Mod h = 0 Then
j = j + 2: k = k - h
End If
End If
Next
=====================
Un'annotazione: con i > di... And i < di...
si esclude i =... !?
Bruno
si escludono
minore 020
051-109
151-219
326-424
maggiore 600
però ora non saprei ora come metterlo iscritto in formula in modo smart in
"i =... !"
dovrei documentarmi ma ora proprio non ho tempo...
più tardi avrete le mie 3 striscie di 9 numeri (totale 27) poi se volete
per conto vostro potete aggiungergli altre combinazioni con gli stessi
numeri per aumentarne le probabilità.
=====================================
Public Sub Test1()
Dim i, Scelta As String
Scelta = InputBox("Define i", "Enter Number")
i = CInt(Scelta)
If i < 20 Or i > 600 Or _
(i >= 51 And i <= 109) Or _
(i >= 151 And i <= 219) Or _
(i >= 326 And i <= 424) Then
MsgBox False
Else
MsgBox i
End If
End Sub
================================
Bruno
non è che poi serve a tanto ora quest'ultima.
lo è invece molto piU' quella precedente.
--
Ki$$
Ki$$
2024-03-30 15:01:53 UTC
Permalink
Post by Bruno Campanini
Post by Ki$$
Post by Bruno Campanini
=====================
For Each i In A
If (i > [Sheet1!O7] And i < [Sheet1!O8]) Or _
(i > [Sheet1!O10] And i < [Sheet1!O11]) Or _
(i > [Sheet1!O13] And i < [Sheet1!O14]) Or _
(i > [Sheet1!O16] And i < [Sheet1!O17]) Then
k = k + 1
T(k, j) = i
If k Mod h = 0 Then
j = j + 2: k = k - h
End If
End If
Next
=====================
Un'annotazione: con i > di... And i < di...
si esclude i =... !?
Bruno
si escludono
minore 020
051-109
151-219
326-424
maggiore 600
però ora non saprei ora come metterlo iscritto in formula in modo smart in
"i =... !"
dovrei documentarmi ma ora proprio non ho tempo...
più tardi avrete le mie 3 striscie di 9 numeri (totale 27) poi se volete
per conto vostro potete aggiungergli altre combinazioni con gli stessi
numeri per aumentarne le probabilità.
=====================================
Public Sub Test1()
Dim i, Scelta As String
Scelta = InputBox("Define i", "Enter Number")
i = CInt(Scelta)
If i < 20 Or i > 600 Or _
(i >= 51 And i <= 109) Or _
(i >= 151 And i <= 219) Or _
(i >= 326 And i <= 424) Then
MsgBox False
Else
MsgBox i
End If
End Sub
================================
Bruno
ma funziona anche con colonne unite!

grande...
--
Ki$$
Ki$$
2024-03-30 15:36:59 UTC
Permalink
Post by Ki$$
Post by Bruno Campanini
Post by Ki$$
si escludono
minore 020
051-109
151-219
326-424
maggiore 600
però ora non saprei ora come metterlo iscritto in formula in modo smart in
"i =... !"
dovrei documentarmi ma ora proprio non ho tempo...
più tardi avrete le mie 3 striscie di 9 numeri (totale 27) poi se volete
per conto vostro potete aggiungergli altre combinazioni con gli stessi
numeri per aumentarne le probabilità.
=====================================
Public Sub Test1()
Dim i, Scelta As String
Scelta = InputBox("Define i", "Enter Number")
i = CInt(Scelta)
If i < 20 Or i > 600 Or _
(i >= 51 And i <= 109) Or _
(i >= 151 And i <= 219) Or _
(i >= 326 And i <= 424) Then
MsgBox False
Else
MsgBox i
End If
End Sub
================================
Bruno
ma funziona anche con colonne unite!
grande...
applicato al mio xlsm...

(certo li inserisce 1 alla volta.. però fa tutto da solo)

si tratta di max una 20ina di secondi di attesa (o anche molto meno a seconda
delle condizioni che imposto)

apparentemente è perfetto.
--
Ki$$
Ki$$
2024-03-30 17:16:18 UTC
Permalink
Post by Ki$$
Post by Ki$$
Post by Bruno Campanini
=====================================
Public Sub Test1()
Dim i, Scelta As String
Scelta = InputBox("Define i", "Enter Number")
i = CInt(Scelta)
If i < 20 Or i > 600 Or _
(i >= 51 And i <= 109) Or _
(i >= 151 And i <= 219) Or _
(i >= 326 And i <= 424) Then
MsgBox False
Else
MsgBox i
End If
End Sub
================================
Bruno
ma funziona anche con colonne unite!
grande...
applicato al mio xlsm...
(certo li inserisce 1 alla volta.. però fa tutto da solo)
si tratta di max una 20ina di secondi di attesa (o anche molto meno a seconda
delle condizioni che imposto)
ho notato che dopo averlo avviato, se poco dopo premo esc, la velocità di
esecuzione dello script aumenta notevolmente... non é istantaneo, ma molto
veloce (dura meno di 10 secondi)

bene così.
--
Ki$$
casanmaner
2024-03-30 17:44:08 UTC
Permalink
Post by Ki$$
ho notato che dopo averlo avviato, se poco dopo premo esc,
Strano che non vada in debug chiedendo se interrompere l'esecuzione.

Se vuoi velocizzare l'inserimento disabilita il calcolo automatico
all'inizio della procedura per riabilitare il calcolo automatico.

Per disabilitare il calcolo automatico inserisci dopo le dichiarazioni
delle variabili

Application.Calculation = xlCalculationManual


mentre per riabilitare il calcolo automatico prima End Sub inserisci

Application.Calculation = xlCalculationAutomatic
Ki$$
2024-03-30 17:49:16 UTC
Permalink
Post by casanmaner
Post by Ki$$
ho notato che dopo averlo avviato, se poco dopo premo esc,
Strano che non vada in debug chiedendo se interrompere l'esecuzione.
Se vuoi velocizzare l'inserimento disabilita il calcolo automatico all'inizio
della procedura per riabilitare il calcolo automatico.
Per disabilitare il calcolo automatico inserisci dopo le dichiarazioni delle
variabili
Application.Calculation = xlCalculationManual
mentre per riabilitare il calcolo automatico prima End Sub inserisci
Application.Calculation = xlCalculationAutomatic
premo esc solo se è "chiusa" la finestra di VBA.
esc sul foglio. e veloce.

Pensavo fosse la formatt condizionale che era in contemporanea (poi l'ho tolta
ed era lento uguale).

provo anche come hai detto tu.
--
Ki$$
Ki$$
2024-03-30 17:55:48 UTC
Permalink
Post by Ki$$
Post by casanmaner
Post by Ki$$
ho notato che dopo averlo avviato, se poco dopo premo esc,
Strano che non vada in debug chiedendo se interrompere l'esecuzione.
Se vuoi velocizzare l'inserimento disabilita il calcolo automatico
all'inizio della procedura per riabilitare il calcolo automatico.
Per disabilitare il calcolo automatico inserisci dopo le dichiarazioni
delle variabili
Application.Calculation = xlCalculationManual
mentre per riabilitare il calcolo automatico prima End Sub inserisci
Application.Calculation = xlCalculationAutomatic
premo esc solo se è "chiusa" la finestra di VBA.
esc sul foglio. e veloce.
Pensavo fosse la formatt condizionale che era in contemporanea (poi l'ho
tolta ed era lento uguale).
provo anche come hai detto tu.
si ora é istantaneo...

risolto.
--
Ki$$
Bruno Campanini
2024-03-30 18:18:52 UTC
Permalink
Post by casanmaner
Post by Ki$$
ho notato che dopo averlo avviato, se poco dopo premo esc,
Strano che non vada in debug chiedendo se interrompere l'esecuzione.
Se vuoi velocizzare l'inserimento disabilita il calcolo automatico all'inizio
della procedura per riabilitare il calcolo automatico.
Per disabilitare il calcolo automatico inserisci dopo le dichiarazioni delle
variabili
Application.Calculation = xlCalculationManual
mentre per riabilitare il calcolo automatico prima End Sub inserisci
Application.Calculation = xlCalculationAutomatic
Sì, il lavoro da fare quando si hanno numerose formule
sul foglio.
Io lo faccio raramente.... delle formule non ne ho quasi mai.
Ki$$ invece è tutto una formula.

Buona Pasqua ad ambedue.

Bruno
casanmaner
2024-03-31 06:54:36 UTC
Permalink
Post by Bruno Campanini
Buona Pasqua ad ambedue.
Buona Pasqua anche a te Bruno

Ki$$
2024-03-30 10:21:09 UTC
Permalink
Post by Bruno Campanini
Post by Ki$$
Post by Bruno Campanini
https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=AzXmym
Particolari personalizzazioni: omesse.
Bruno
sembra che vada bene... (provo domani)
e... a prescindere dall'unione celle di cui si è parlato nei precedenti post...
...e se uno volesse sostituire a "020" e "050" le celle [O7] e [O8] ... e
poi quindi anche tutte le altre? (in pratica le condizioni le setto sul
foglio invece che nel codice)?
Ieri sera mi ci sono addormentato sopra e non ho guardato
troppo per il sottile.
https://1drv.ms/x/s!AvTaMfd5-b2o9ge5700qfaIiI8Hj?e=E6MwwF
Dicevi di voler modificare le condizioni dal foglio
anziché dal codice.
Ci sarebbe un soprapprezzo...
Bruno
Bruno
vabbè dai anche oggi offro io.... RAR aperto per tutti... regalo di pasqua per
la seconda volta...
--
Ki$$
Loading...