Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

combinazioni vincolate

30 views
Skip to first unread message

p.s...@tiscali.it

unread,
Oct 27, 2005, 4:12:45 AM10/27/05
to
ciao,

nella colonna A ho una serie di numeri , es 0 2 3 4 7 12 ... scrivo a
caso , poi per esempio nella cella B1 ho il numero 92.

Vorrei conoscere tutte le possibili combinazioni dei numeri presenti in
colonna A , che mi generano , come somma 92.

E' possibile fare una cosa del genere?

grazie
p.

Roberto S

unread,
Oct 27, 2005, 7:13:11 PM10/27/05
to

Ciao p., questo codice cicla per tutta la colonna A e, quando trova due
celle comunque e ovunque disposte che hanno somma = CELLA(B1) copia in
colonna C e colonna D i due valori:

Sub somma92()
Dim k As Integer, l As Integer, maxrow As Integer, riga As Integer, som As
Integer
maxrow = Range("a1:a65532").End(xlDown).Row
som = Cells(1, 2).Value
riga = 0

For k = 1 To maxrow - 1
For l = k + 1 To maxrow
If Cells(k, 1).Value + Cells(l, 1).Value = som Then
riga = riga + 1
Cells(riga, 3).Value = Cells(k, 1).Value
Cells(riga, 4).Value = Cells(l, 1).Value
End If
Next l
Next k

End Sub

Puoi copiare questo codice e incollarlo (tasto destro sulla linguetta del
foglio>visualizza codice). Per farlo partire puoi assegnare una lettera da
STRUMENTI>MACRO>OPZIONI oppure disegnando sul foglio un pulsante o una forma
qualsiasi e quindi, con tasto destro del mouse>ASSEGNA MACRO.
Roberto


Roberto S

unread,
Oct 27, 2005, 7:26:53 PM10/27/05
to
Attenzione, ho notato che sul server il testo è formattato male: l'ultimo
Integer deve stare sulla stessa riga che inizia con il primo DIM, oppure
aggiungi il segno "_" (senza virgolette).
Aggiungo due righe che cancellano eventuali contenuti nelle colonne C e D:

Sub somma92()
Dim k As Integer, l As Integer, maxrow As Integer, riga As Integer, som As
Integer

Range("C:C:D:D").ClearContents

p.s...@tiscali.it

unread,
Oct 28, 2005, 4:05:21 AM10/28/05
to
Ciao Roberto,
Grazie per la tua risposta. Questa è perfetta per ottenere le coppie
di numeri che, sommati, producono il numero in B1, però non sono tutte
le combinazioni possibili che formano il valore presente in B1. Infatti
ci sono anche le terne, quaterne...di numeri presenti in colonna A che,
sommati, producono il numero in B1.
È difficile ottenere questo risultato?

Grazie
p.

Roberto S

unread,
Oct 28, 2005, 3:02:29 PM10/28/05
to

Grazie
p.

Ciao p., ... ok, ma in quale ordine di grandezza ci stiamo muovendo? quante
righe ci sono in colonna A? la somma quali valori può assumere? e quali i
numeri presenti in colonna A? Perchè poniamo che tu abbia 10000 righe, che i
valori abbiano un range molto ampio così come la somma da cercare... dubito
che la tua richiesta sia fattibile agevolmente dato che ad un certo punto
le cifre esplodono!... o perlomeno ci vorrà una ventola molto potente!...
diverso è il discorso se *ti accontenti* di ricercare i gruppi di quattro,
cinque... dieci numeri.
Questo lo dico in base alla mia - limitata - esperienza. Magari qualche
VBAista più esperto potrà smentirmi.
Roberto

p.s...@tiscali.it

unread,
Oct 29, 2005, 8:11:17 AM10/29/05
to

Roberto S ha scritto:

> Ciao p., ... ok, ma in quale ordine di grandezza ci stiamo muovendo? quante
> righe ci sono in colonna A? la somma quali valori può assumere? e quali i
> numeri presenti in colonna A? Perchè poniamo che tu abbia 10000 righe, che i
> valori abbiano un range molto ampio così come la somma da cercare... dubito
> che la tua richiesta sia fattibile agevolmente dato che ad un certo punto
> le cifre esplodono!... o perlomeno ci vorrà una ventola molto potente!...
> diverso è il discorso se *ti accontenti* di ricercare i gruppi di quattro,
> cinque... dieci numeri.
> Questo lo dico in base alla mia - limitata - esperienza. Magari qualche
> VBAista più esperto potrà smentirmi.
> Roberto

Roberto,

direi nell'ordine delle centinaia, da 10 a 500 righe circa.
La somma può assumere valori da zero a 100 milioni circa, con due
decimali.
I numeri in colonna A vanno da zero a 10 milioni, con due decimali.

troppo ?
grazie
p.

Roberto S

unread,
Oct 29, 2005, 12:41:55 PM10/29/05
to
Roberto,

direi nell'ordine delle centinaia, da 10 a 500 righe circa.

La somma puň assumere valori da zero a 100 milioni circa, con due


decimali.
I numeri in colonna A vanno da zero a 10 milioni, con due decimali.

troppo ?

Secondo me sě: io, provando a fare una ricerca sulle somme delle
combinazioni al Superenalotto mi sono arreso per molto molto meno... avevo
calcolato che per testare una singola somma erano necessarie diverse ore, 8,
se ricordo bene, con la differenza che le cose, in quel caso, sono ben
definite... Certo io ho come processore ho un P3 a 600 mega, sicuramente con
una cpu piů potente le cose cambiano, ma per come la metti giů la vedo
dura...
Roberto

grazie
p.


0 new messages