VBA: errore di compilazione - routine troppo grande

Anonimo
2016-07-01T14:51:41+00:00

per la prima volta, nella mia breve esperienza di vba, mi è capitato di ricevere l'errore in oggetto.

qualcuno avrebbe dei suggerimenti in modo da non stravolgere il lavoro e risolvere questo problema?

di seguito posto il codice.

[quote]

Sub Salva_Ricetta()

Application.ScreenUpdating = False

Sheets("mod_tirelle").Select

Range("b3").Select

tirella = Range("b3")

If tirella = "" Then

    art = Range("g3")

    artcol = Range("o3")

    fondo = Range("g4")

    fondocol = Range("o4")

    Data = Range("b5")

    res = Range("D5")

    lm = Range("F5")

    ind = Range("h5")

    'Distinta1

    cdl1 = Range("A6")

    spess1 = Range("d7")

    comp1 = Range("a8")

    comp1a = Range("a10")

    peso1a = Range("d10")

    comp1b = Range("a11")

    peso1b = Range("d11")

    comp1c = Range("a12")

    peso1c = Range("d12")

    comp1d = Range("a13")

    peso1d = Range("d13")

    comp1e = Range("a14")

    peso1e = Range("d14")

    comp1f = Range("a15")

    peso1f = Range("d15")

    comp1g = Range("a16")

    peso1g = Range("d16")

    comp1h = Range("a17")

    peso1h = Range("d17")

    comp1i = Range("a18")

    peso1i = Range("d18")

    comp1l = Range("a19")

    peso1l = Range("d19")

    comp1m = Range("a20")

    peso1m = Range("d20")

    comp1n = Range("a21")

    peso1n = Range("d21")

    comp1o = Range("a22")

    peso1o = Range("d22")

    comp1p = Range("a23")

    peso1p = Range("d23")

    comp1q = Range("a24")

    peso1q = Range("d24")

    'Distinta2

    cdl2 = Range("e6")

    spess2 = Range("h7")

    comp2 = Range("e8")

    comp2a = Range("e10")

    peso2a = Range("h10")

    comp2b = Range("e11")

    peso2b = Range("h11")

    comp2c = Range("e12")

    peso2c = Range("h12")

    comp2d = Range("e13")

    peso2d = Range("h13")

    comp2e = Range("e14")

    peso2e = Range("h14")

    comp2f = Range("e15")

    peso2f = Range("h15")

    comp2g = Range("e16")

    peso2g = Range("h16")

    comp2h = Range("e17")

    peso2h = Range("h17")

    comp2i = Range("e18")

    peso2i = Range("h18")

    comp2l = Range("e19")

    peso2l = Range("h19")

    comp2m = Range("e20")

    peso2m = Range("h20")

    comp2n = Range("e21")

    peso2n = Range("h21")

    comp2o = Range("e22")

    peso2o = Range("h22")

    comp2p = Range("e23")

    peso2p = Range("h23")

    comp2q = Range("e24")

    peso2q = Range("h24")

    'Distinta3

    cdl3 = Range("i6")

    spess3 = Range("l7")

    comp3 = Range("i8")

    comp3a = Range("i10")

    peso3a = Range("l10")

    comp3b = Range("i11")

    peso3b = Range("l11")

    comp3c = Range("i12")

    peso3c = Range("l12")

    comp3d = Range("i13")

    peso3d = Range("l13")

    comp3e = Range("i14")

    peso3e = Range("l14")

    comp3f = Range("i15")

    peso3f = Range("l15")

    comp3g = Range("i16")

    peso3g = Range("l16")

    comp3h = Range("i17")

    peso3h = Range("l17")

    comp3i = Range("i18")

    peso3i = Range("l18")

    comp3l = Range("i19")

    peso3l = Range("l19")

    comp3m = Range("i20")

    peso3m = Range("l20")

    comp3n = Range("i21")

    peso3n = Range("l21")

    comp3o = Range("i22")

    peso3o = Range("l22")

    comp3p = Range("i23")

    peso3p = Range("l23")

    comp3q = Range("i24")

    peso3q = Range("l24")

    'Distinta4

    cdl4 = Range("m6")

    spess4 = Range("p7")

    comp4 = Range("m8")

    comp4a = Range("m10")

    peso4a = Range("p10")

    comp4b = Range("m11")

    peso4b = Range("p11")

    comp4c = Range("m12")

    peso4c = Range("p12")

    comp4d = Range("m13")

    peso4d = Range("p13")

    comp4e = Range("m14")

    peso4e = Range("p14")

    comp4f = Range("m15")

    peso4f = Range("p15")

    comp4g = Range("m16")

    peso4g = Range("p16")

    comp4h = Range("m17")

    peso4h = Range("p17")

    comp4i = Range("m18")

    peso4i = Range("p18")

    comp4l = Range("m19")

    peso4l = Range("p19")

    comp4m = Range("m20")

    peso4m = Range("p20")

    comp4n = Range("m21")

    peso4n = Range("p21")

    comp4o = Range("m22")

    peso4o = Range("p22")

    comp4p = Range("m23")

    peso4p = Range("p23")

    comp4q = Range("m24")

    peso4q = Range("p24")

    'Distinta5

    cdl5 = Range("a25")

    spess5 = Range("d26")

    comp5 = Range("a27")

    comp5a = Range("a29")

    peso5a = Range("d29")

    comp5b = Range("a30")

    peso5b = Range("d30")

    comp5c = Range("a31")

    peso5c = Range("d31")

    comp5d = Range("a32")

    peso5d = Range("d32")

    comp5e = Range("a33")

    peso5e = Range("d33")

    comp5f = Range("a34")

    peso5f = Range("d34")

    comp5g = Range("a35")

    peso5g = Range("d35")

    comp5h = Range("a36")

    peso5h = Range("d36")

    comp5i = Range("a37")

    peso5i = Range("d37")

    comp5l = Range("a38")

    peso5l = Range("d38")

    comp5m = Range("a39")

    peso5m = Range("d39")

    comp5n = Range("a40")

    peso5n = Range("d40")

    comp5o = Range("a41")

    peso5o = Range("d41")

    comp5p = Range("a42")

    peso5p = Range("d42")

    comp5q = Range("a43")

    peso5q = Range("d43")

    'Distinta6

    cdl6 = Range("e25")

    spess6 = Range("h26")

    comp6 = Range("e27")

    comp6a = Range("e29")

    peso6a = Range("h29")

    comp6b = Range("e30")

    peso6b = Range("h30")

    comp6c = Range("e31")

    peso6c = Range("h31")

    comp6d = Range("e32")

    peso6d = Range("h32")

    comp6e = Range("e33")

    peso6e = Range("h33")

    comp6f = Range("e34")

    peso6f = Range("h34")

    comp6g = Range("e35")

    peso6g = Range("h35")

    comp6h = Range("e36")

    peso6h = Range("h36")

    comp6i = Range("e37")

    peso6i = Range("h37")

    comp6l = Range("e38")

    peso6l = Range("h38")

    comp6m = Range("e39")

    peso6m = Range("h39")

    comp6n = Range("e40")

    peso6n = Range("h40")

    comp6o = Range("e41")

    peso6o = Range("h41")

    comp6p = Range("e42")

    peso6p = Range("h42")

    comp6q = Range("e43")

    peso6q = Range("h43")

    'Distinta7

    cdl7 = Range("i25")

    spess7 = Range("l26")

    comp7 = Range("i27")

    comp7a = Range("i29")

    peso7a = Range("l29")

    comp7b = Range("i30")

    peso7b = Range("l30")

    comp7c = Range("i31")

    peso7c = Range("l31")

    comp7d = Range("i32")

    peso7d = Range("l32")

    comp7e = Range("i33")

    peso7e = Range("l33")

    comp7f = Range("i34")

    peso7f = Range("l34")

    comp7g = Range("i35")

    peso7g = Range("l35")

    comp7h = Range("i36")

    peso7h = Range("l36")

    comp7i = Range("i37")

    peso7i = Range("l37")

    comp7l = Range("i38")

    peso7l = Range("l38")

    comp7m = Range("i39")

    peso7m = Range("l39")

    comp7n = Range("i40")

    peso7n = Range("l40")

    comp7o = Range("i41")

    peso7o = Range("l41")

    comp7p = Range("i42")

    peso7p = Range("l42")

    comp7q = Range("i43")

    peso7q = Range("l43")

    'Distinta8

    cdl8 = Range("m25")

    spess8 = Range("p26")

    comp8 = Range("m27")

    comp8a = Range("m29")

    peso8a = Range("p29")

    comp8b = Range("m30")

    peso8b = Range("p30")

    comp8c = Range("m31")

    peso8c = Range("p31")

    comp8d = Range("m32")

    peso8d = Range("p32")

    comp8e = Range("m33")

    peso8e = Range("p33")

    comp8f = Range("m34")

    peso8f = Range("p34")

    comp8g = Range("m35")

    peso8g = Range("p35")

    comp8h = Range("m36")

    peso8h = Range("p36")

    comp8i = Range("m37")

    peso8i = Range("p37")

    comp8l = Range("m38")

    peso8l = Range("p38")

    comp8m = Range("m39")

    peso8m = Range("p39")

    comp8n = Range("m40")

    peso8n = Range("p40")

    comp8o = Range("m41")

    peso8o = Range("p41")

    comp8p = Range("m42")

    peso8p = Range("p42")

    comp8q = Range("m43")

    peso8q = Range("p43")

    'copia dati in archivio2

Workbooks.Open Filename:= _

        "Q:\M\Mc\MT-T\TL\archivio2.xlsx"

    ActiveCell.FormulaR1C1 = ""

    Sheets("archivio2").Select

For i = 1 To 65536

If Cells(i, 1) = "" Then

Cells(i, 1) = Cells(i - 1, 1) + 1

Cells(i, 1).Select

tir = Selection

ActiveCell.Offset(0, 1).Activate

Selection = art

ActiveCell.Offset(0, 1).Activate

Selection = artcol

ActiveCell.Offset(0, 1).Activate

Selection = fondo

ActiveCell.Offset(0, 1).Activate

Selection = fondocol

ActiveCell.Offset(0, 1).Activate

Selection = Data

ActiveCell.Offset(0, 1).Activate

Selection = res

ActiveCell.Offset(0, 1).Activate

Selection = lm

ActiveCell.Offset(0, 1).Activate

Selection = ind

'Distinta1

ActiveCell.Offset(0, 1).Activate

Selection = cdl1

ActiveCell.Offset(0, 1).Activate

Selection = spess1

ActiveCell.Offset(0, 1).Activate

Selection = comp1

ActiveCell.Offset(0, 1).Activate

Selection = comp1a

ActiveCell.Offset(0, 1).Activate

Selection = peso1a

ActiveCell.Offset(0, 1).Activate

Selection = comp1b

ActiveCell.Offset(0, 1).Activate

Selection = peso1b

ActiveCell.Offset(0, 1).Activate

Selection = comp1c

ActiveCell.Offset(0, 1).Activate

Selection = peso1c

ActiveCell.Offset(0, 1).Activate

Selection = comp1d

ActiveCell.Offset(0, 1).Activate

Selection = peso1d

ActiveCell.Offset(0, 1).Activate

Selection = comp1e

ActiveCell.Offset(0, 1).Activate

Selection = peso1e

ActiveCell.Offset(0, 1).Activate

Selection = comp1f

ActiveCell.Offset(0, 1).Activate

Selection = peso1f

ActiveCell.Offset(0, 1).Activate

Selection = comp1g

ActiveCell.Offset(0, 1).Activate

Selection = peso1g

ActiveCell.Offset(0, 1).Activate

Selection = comp1h

ActiveCell.Offset(0, 1).Activate

Selection = peso1h

ActiveCell.Offset(0, 1).Activate

Selection = comp1i

ActiveCell.Offset(0, 1).Activate

Selection = peso1i

ActiveCell.Offset(0, 1).Activate

Selection = comp1l

ActiveCell.Offset(0, 1).Activate

Selection = peso1l

ActiveCell.Offset(0, 1).Activate

Selection = comp1m

ActiveCell.Offset(0, 1).Activate

Selection = peso1m

ActiveCell.Offset(0, 1).Activate

Selection = comp1n

ActiveCell.Offset(0, 1).Activate

Selection = peso1n

ActiveCell.Offset(0, 1).Activate

Selection = comp1o

ActiveCell.Offset(0, 1).Activate

Selection = peso1o

ActiveCell.Offset(0, 1).Activate

Selection = comp1p

ActiveCell.Offset(0, 1).Activate

Selection = peso1p

ActiveCell.Offset(0, 1).Activate

Selection = comp1q

ActiveCell.Offset(0, 1).Activate

Selection = peso1q

'Distinta2

ActiveCell.Offset(0, 1).Activate

Selection = cdl2

ActiveCell.Offset(0, 1).Activate

Selection = spess2

ActiveCell.Offset(0, 1).Activate

Selection = comp2

ActiveCell.Offset(0, 1).Activate

Selection = comp2a

ActiveCell.Offset(0, 1).Activate

Selection = peso2a

ActiveCell.Offset(0, 1).Activate

Selection = comp2b

ActiveCell.Offset(0, 1).Activate

Selection = peso2b

ActiveCell.Offset(0, 1).Activate

Selection = comp2c

ActiveCell.Offset(0, 1).Activate

Selection = peso2c

ActiveCell.Offset(0, 1).Activate

Selection = comp2d

ActiveCell.Offset(0, 1).Activate

Selection = peso2d

ActiveCell.Offset(0, 1).Activate

Selection = comp2e

ActiveCell.Offset(0, 1).Activate

Selection = peso2e

ActiveCell.Offset(0, 1).Activate

Selection = comp2f

ActiveCell.Offset(0, 1).Activate

Selection = peso2f

ActiveCell.Offset(0, 1).Activate

Selection = comp2g

ActiveCell.Offset(0, 1).Activate

Selection = peso2g

ActiveCell.Offset(0, 1).Activate

Selection = comp2h

ActiveCell.Offset(0, 1).Activate

Selection = peso2h

ActiveCell.Offset(0, 1).Activate

Selection = comp2i

ActiveCell.Offset(0, 1).Activate

Selection = peso2i

ActiveCell.Offset(0, 1).Activate

Selection = comp2l

ActiveCell.Offset(0, 1).Activate

Selection = peso2l

ActiveCell.Offset(0, 1).Activate

Selection = comp2m

ActiveCell.Offset(0, 1).Activate

Selection = peso2m

ActiveCell.Offset(0, 1).Activate

Selection = comp2n

ActiveCell.Offset(0, 1).Activate

Selection = peso2n

ActiveCell.Offset(0, 1).Activate

Selection = comp2o

ActiveCell.Offset(0, 1).Activate

Selection = peso2o

ActiveCell.Offset(0, 1).Activate

Selection = comp2p

ActiveCell.Offset(0, 1).Activate

Selection = peso2p

ActiveCell.Offset(0, 1).Activate

Selection = comp2q

ActiveCell.Offset(0, 1).Activate

Selection = peso2q

'Distinta3

ActiveCell.Offset(0, 1).Activate

Selection = cdl3

ActiveCell.Offset(0, 1).Activate

Selection = spess3

ActiveCell.Offset(0, 1).Activate

Selection = comp3

ActiveCell.Offset(0, 1).Activate

Selection = comp3a

ActiveCell.Offset(0, 1).Activate

Selection = peso3a

ActiveCell.Offset(0, 1).Activate

Selection = comp3b

ActiveCell.Offset(0, 1).Activate

Selection = peso3b

ActiveCell.Offset(0, 1).Activate

Selection = comp3c

ActiveCell.Offset(0, 1).Activate

Selection = peso3c

ActiveCell.Offset(0, 1).Activate

Selection = comp3d

ActiveCell.Offset(0, 1).Activate

Selection = peso3d

ActiveCell.Offset(0, 1).Activate

Selection = comp3e

ActiveCell.Offset(0, 1).Activate

Selection = peso3e

ActiveCell.Offset(0, 1).Activate

Selection = comp3f

ActiveCell.Offset(0, 1).Activate

Selection = peso3f

ActiveCell.Offset(0, 1).Activate

Selection = comp3g

ActiveCell.Offset(0, 1).Activate

Selection = peso3g

ActiveCell.Offset(0, 1).Activate

Selection = comp3h

ActiveCell.Offset(0, 1).Activate

Selection = peso3h

ActiveCell.Offset(0, 1).Activate

Selection = comp3i

ActiveCell.Offset(0, 1).Activate

Selection = peso3i

ActiveCell.Offset(0, 1).Activate

Selection = comp3l

ActiveCell.Offset(0, 1).Activate

Selection = peso3l

ActiveCell.Offset(0, 1).Activate

Selection = comp3m

ActiveCell.Offset(0, 1).Activate

Selection = peso3m

ActiveCell.Offset(0, 1).Activate

Selection = comp3n

ActiveCell.Offset(0, 1).Activate

Selection = peso3n

ActiveCell.Offset(0, 1).Activate

Selection = comp3o

ActiveCell.Offset(0, 1).Activate

Selection = peso3o

ActiveCell.Offset(0, 1).Activate

Selection = comp3p

ActiveCell.Offset(0, 1).Activate

Selection = peso3p

ActiveCell.Offset(0, 1).Activate

Selection = comp3q

ActiveCell.Offset(0, 1).Activate

Selection = peso3q

'Distinta4

ActiveCell.Offset(0, 1).Activate

Selection = cdl4

ActiveCell.Offset(0, 1).Activate

Selection = spess4

ActiveCell.Offset(0, 1).Activate

Selection = comp4

ActiveCell.Offset(0, 1).Activate

Selection = comp4a

ActiveCell.Offset(0, 1).Activate

Selection = peso4a

ActiveCell.Offset(0, 1).Activate

Selection = comp4b

ActiveCell.Offset(0, 1).Activate

Selection = peso4b

ActiveCell.Offset(0, 1).Activate

Selection = comp4c

ActiveCell.Offset(0, 1).Activate

Selection = peso4c

ActiveCell.Offset(0, 1).Activate

Selection = comp4d

ActiveCell.Offset(0, 1).Activate

Selection = peso4d

ActiveCell.Offset(0, 1).Activate

Selection = comp4e

ActiveCell.Offset(0, 1).Activate

Selection = peso4e

ActiveCell.Offset(0, 1).Activate

Selection = comp4f

ActiveCell.Offset(0, 1).Activate

Selection = peso4f

ActiveCell.Offset(0, 1).Activate

Selection = comp4g

ActiveCell.Offset(0, 1).Activate

Selection = peso4g

ActiveCell.Offset(0, 1).Activate

Selection = comp4h

ActiveCell.Offset(0, 1).Activate

Selection = peso4h

ActiveCell.Offset(0, 1).Activate

Selection = comp4i

ActiveCell.Offset(0, 1).Activate

Selection = peso4i

ActiveCell.Offset(0, 1).Activate

Selection = comp4l

ActiveCell.Offset(0, 1).Activate

Selection = peso4l

ActiveCell.Offset(0, 1).Activate

Selection = comp4m

ActiveCell.Offset(0, 1).Activate

Selection = peso4m

ActiveCell.Offset(0, 1).Activate

Selection = comp4n

ActiveCell.Offset(0, 1).Activate

Selection = peso4n

ActiveCell.Offset(0, 1).Activate

Selection = comp4o

ActiveCell.Offset(0, 1).Activate

Selection = peso4o

ActiveCell.Offset(0, 1).Activate

Selection = comp4p

ActiveCell.Offset(0, 1).Activate

Selection = peso4p

ActiveCell.Offset(0, 1).Activate

Selection = comp4q

ActiveCell.Offset(0, 1).Activate

Selection = peso4q

'Distinta5

ActiveCell.Offset(0, 1).Activate

Selection = cdl5

ActiveCell.Offset(0, 1).Activate

Selection = spess5

ActiveCell.Offset(0, 1).Activate

Selection = comp5

ActiveCell.Offset(0, 1).Activate

Selection = comp5a

ActiveCell.Offset(0, 1).Activate

Selection = peso5a

ActiveCell.Offset(0, 1).Activate

Selection = comp5b

ActiveCell.Offset(0, 1).Activate

Selection = peso5b

ActiveCell.Offset(0, 1).Activate

Selection = comp5c

ActiveCell.Offset(0, 1).Activate

Selection = peso5c

ActiveCell.Offset(0, 1).Activate

Selection = comp5d

ActiveCell.Offset(0, 1).Activate

Selection = peso5d

ActiveCell.Offset(0, 1).Activate

Selection = comp5e

ActiveCell.Offset(0, 1).Activate

Selection = peso5e

ActiveCell.Offset(0, 1).Activate

Selection = comp5f

ActiveCell.Offset(0, 1).Activate

Selection = peso5f

ActiveCell.Offset(0, 1).Activate

Selection = comp5g

ActiveCell.Offset(0, 1).Activate

Selection = peso5g

ActiveCell.Offset(0, 1).Activate

Selection = comp5h

ActiveCell.Offset(0, 1).Activate

Selection = peso5h

ActiveCell.Offset(0, 1).Activate

Selection = comp5i

ActiveCell.Offset(0, 1).Activate

Selection = peso5i

ActiveCell.Offset(0, 1).Activate

Selection = comp5l

ActiveCell.Offset(0, 1).Activate

Selection = peso5l

ActiveCell.Offset(0, 1).Activate

Selection = comp5m

ActiveCell.Offset(0, 1).Activate

Selection = peso5m

ActiveCell.Offset(0, 1).Activate

Selection = comp5n

ActiveCell.Offset(0, 1).Activate

Selection = peso5n

ActiveCell.Offset(0, 1).Activate

Selection = comp5o

ActiveCell.Offset(0, 1).Activate

Selection = peso5o

ActiveCell.Offset(0, 1).Activate

Selection = comp5p

ActiveCell.Offset(0, 1).Activate

Selection = peso5p

ActiveCell.Offset(0, 1).Activate

Selection = comp5q

ActiveCell.Offset(0, 1).Activate

Selection = peso5q

'Distinta6

ActiveCell.Offset(0, 1).Activate

Selection = cdl6

ActiveCell.Offset(0, 1).Activate

Selection = spess6

ActiveCell.Offset(0, 1).Activate

Selection = comp6

ActiveCell.Offset(0, 1).Activate

Selection = comp6a

ActiveCell.Offset(0, 1).Activate

Selection = peso6a

ActiveCell.Offset(0, 1).Activate

Selection = comp6b

ActiveCell.Offset(0, 1).Activate

Selection = peso6b

ActiveCell.Offset(0, 1).Activate

Selection = comp6c

ActiveCell.Offset(0, 1).Activate

Selection = peso6c

ActiveCell.Offset(0, 1).Activate

Selection = comp6d

ActiveCell.Offset(0, 1).Activate

Selection = peso6d

ActiveCell.Offset(0, 1).Activate

Selection = comp6e

ActiveCell.Offset(0, 1).Activate

Selection = peso6e

ActiveCell.Offset(0, 1).Activate

Selection = comp6f

ActiveCell.Offset(0, 1).Activate

Selection = peso6f

ActiveCell.Offset(0, 1).Activate

Selection = comp6g

ActiveCell.Offset(0, 1).Activate

Selection = peso6g

ActiveCell.Offset(0, 1).Activate

Selection = comp6h

ActiveCell.Offset(0, 1).Activate

Selection = peso6h

ActiveCell.Offset(0, 1).Activate

Selection = comp6i

ActiveCell.Offset(0, 1).Activate

Selection = peso6i

ActiveCell.Offset(0, 1).Activate

Selection = comp6l

ActiveCell.Offset(0, 1).Activate

Selection = peso6l

ActiveCell.Offset(0, 1).Activate

Selection = comp6m

ActiveCell.Offset(0, 1).Activate

Selection = peso6m

ActiveCell.Offset(0, 1).Activate

Selection = comp6n

ActiveCell.Offset(0, 1).Activate

Selection = peso6n

ActiveCell.Offset(0, 1).Activate

Selection = comp6o

ActiveCell.Offset(0, 1).Activate

Selection = peso6o

ActiveCell.Offset(0, 1).Activate

Selection = comp6p

ActiveCell.Offset(0, 1).Activate

Selection = peso6p

ActiveCell.Offset(0, 1).Activate

Selection = comp6q

ActiveCell.Offset(0, 1).Activate

Selection = peso6q

'Distinta7

ActiveCell.Offset(0, 1).Activate

Selection = cdl7

ActiveCell.Offset(0, 1).Activate

Selection = spess7

ActiveCell.Offset(0, 1).Activate

Selection = comp7

ActiveCell.Offset(0, 1).Activate

Selection = comp7a

ActiveCell.Offset(0, 1).Activate

Selection = peso7a

ActiveCell.Offset(0, 1).Activate

Selection = comp7b

ActiveCell.Offset(0, 1).Activate

Selection = peso7b

ActiveCell.Offset(0, 1).Activate

Selection = comp7c

ActiveCell.Offset(0, 1).Activate

Selection = peso7c

ActiveCell.Offset(0, 1).Activate

Selection = comp7d

ActiveCell.Offset(0, 1).Activate

Selection = peso7d

ActiveCell.Offset(0, 1).Activate

Selection = comp7e

ActiveCell.Offset(0, 1).Activate

Selection = peso7e

ActiveCell.Offset(0, 1).Activate

Selection = comp7f

ActiveCell.Offset(0, 1).Activate

Selection = peso7f

ActiveCell.Offset(0, 1).Activate

Selection = comp7g

ActiveCell.Offset(0, 1).Activate

Selection = peso7g

ActiveCell.Offset(0, 1).Activate

Selection = comp7h

ActiveCell.Offset(0, 1).Activate

Selection = peso7h

ActiveCell.Offset(0, 1).Activate

Selection = comp7i

ActiveCell.Offset(0, 1).Activate

Selection = peso7i

ActiveCell.Offset(0, 1).Activate

Selection = comp7l

ActiveCell.Offset(0, 1).Activate

Selection = peso7l

ActiveCell.Offset(0, 1).Activate

Selection = comp7m

ActiveCell.Offset(0, 1).Activate

Selection = peso7m

ActiveCell.Offset(0, 1).Activate

Selection = comp7n

ActiveCell.Offset(0, 1).Activate

Selection = peso7n

ActiveCell.Offset(0, 1).Activate

Selection = comp7o

ActiveCell.Offset(0, 1).Activate

Selection = peso7o

ActiveCell.Offset(0, 1).Activate

Selection = comp7p

ActiveCell.Offset(0, 1).Activate

Selection = peso7p

ActiveCell.Offset(0, 1).Activate

Selection = comp7q

ActiveCell.Offset(0, 1).Activate

Selection = peso7q

'Distinta8

ActiveCell.Offset(0, 1).Activate

Selection = cdl8

ActiveCell.Offset(0, 1).Activate

Selection = spess8

ActiveCell.Offset(0, 1).Activate

Selection = comp8

ActiveCell.Offset(0, 1).Activate

Selection = comp8a

ActiveCell.Offset(0, 1).Activate

Selection = peso8a

ActiveCell.Offset(0, 1).Activate

Selection = comp8b

ActiveCell.Offset(0, 1).Activate

Selection = peso8b

ActiveCell.Offset(0, 1).Activate

Selection = comp8c

ActiveCell.Offset(0, 1).Activate

Selection = peso8c

ActiveCell.Offset(0, 1).Activate

Selection = comp8d

ActiveCell.Offset(0, 1).Activate

Selection = peso8d

ActiveCell.Offset(0, 1).Activate

Selection = comp8e

ActiveCell.Offset(0, 1).Activate

Selection = peso8e

ActiveCell.Offset(0, 1).Activate

Selection = comp8f

ActiveCell.Offset(0, 1).Activate

Selection = peso8f

ActiveCell.Offset(0, 1).Activate

Selection = comp8g

ActiveCell.Offset(0, 1).Activate

Selection = peso8g

ActiveCell.Offset(0, 1).Activate

Selection = comp8h

ActiveCell.Offset(0, 1).Activate

Selection = peso8h

ActiveCell.Offset(0, 1).Activate

Selection = comp8i

ActiveCell.Offset(0, 1).Activate

Selection = peso8i

ActiveCell.Offset(0, 1).Activate

Selection = comp8l

ActiveCell.Offset(0, 1).Activate

Selection = peso8l

ActiveCell.Offset(0, 1).Activate

Selection = comp8m

ActiveCell.Offset(0, 1).Activate

Selection = peso8m

ActiveCell.Offset(0, 1).Activate

Selection = comp8n

ActiveCell.Offset(0, 1).Activate

Selection = peso8n

ActiveCell.Offset(0, 1).Activate

Selection = comp8o

ActiveCell.Offset(0, 1).Activate

Selection = peso8o

ActiveCell.Offset(0, 1).Activate

Selection = comp8p

ActiveCell.Offset(0, 1).Activate

Selection = peso8p

ActiveCell.Offset(0, 1).Activate

Selection = comp8q

ActiveCell.Offset(0, 1).Activate

Selection = peso8q

ActiveWorkbook.Save

    ActiveWindow.Close

'riporta n° tirella nel modulo ricetta

Sheets("mod_tirelle").Select

Range("b3").Select

Selection = tir

i = 65536

End If

Next i

'stampa del modulo tirella

Range("A1:q43").Select

    Selection.PrintOut Copies:=1, Collate:=True

Range("b3, g3, o3, g4, o4, b5, d5, f5, h5, i5, a6, d7, a8, e6, h7, e8, i6, l7, i8, m6, p7, m8, a25, d26, a27, e25, h26, e27, i25, l26, i27, m25, p26, m27, q6, q25").Select

    Selection.ClearContents

Range("A10:d24").Select

    Selection.ClearContents

Range("e10:h24").Select

    Selection.ClearContents

Range("i10:l24").Select

    Selection.ClearContents

Range("m10:p24").Select

    Selection.ClearContents

Range("A29:d43").Select

    Selection.ClearContents

Range("e29:h43").Select

    Selection.ClearContents

Range("i29:l43").Select

    Selection.ClearContents

Range("m29:p43").Select

    Selection.ClearContents

    Range("A1").Select

'_____________________________________________________________________________

Else

Sheets("mod_tirelle").Select

Range("xfd1").Select

Selection = tirella

numtir = Selection

    art = Range("g3")

    artcol = Range("o3")

    fondo = Range("g4")

    fondocol = Range("o4")

    Data = Range("b5")

    res = Range("D5")

    lm = Range("F5")

    ind = Range("h5")

    'Distinta1

    cdl1 = Range("A6")

    spess1 = Range("d7")

    comp1 = Range("a8")

    comp1a = Range("a10")

    peso1a = Range("d10")

    comp1b = Range("a11")

    peso1b = Range("d11")

    comp1c = Range("a12")

    peso1c = Range("d12")

    comp1d = Range("a13")

    peso1d = Range("d13")

    comp1e = Range("a14")

    peso1e = Range("d14")

    comp1f = Range("a15")

    peso1f = Range("d15")

    comp1g = Range("a16")

    peso1g = Range("d16")

    comp1h = Range("a17")

    peso1h = Range("d17")

    comp1i = Range("a18")

    peso1i = Range("d18")

    comp1l = Range("a19")

    peso1l = Range("d19")

    comp1m = Range("a20")

    peso1m = Range("d20")

    comp1n = Range("a21")

    peso1n = Range("d21")

    comp1o = Range("a22")

    peso1o = Range("d22")

    comp1p = Range("a23")

    peso1p = Range("d23")

    comp1q = Range("a24")

    peso1q = Range("d24")

    'Distinta2

    cdl2 = Range("e6")

    spess2 = Range("h7")

    comp2 = Range("e8")

    comp2a = Range("e10")

    peso2a = Range("h10")

    comp2b = Range("e11")

    peso2b = Range("h11")

    comp2c = Range("e12")

    peso2c = Range("h12")

    comp2d = Range("e13")

    peso2d = Range("h13")

    comp2e = Range("e14")

    peso2e = Range("h14")

    comp2f = Range("e15")

    peso2f = Range("h15")

    comp2g = Range("e16")

    peso2g = Range("h16")

    comp2h = Range("e17")

    peso2h = Range("h17")

    comp2i = Range("e18")

    peso2i = Range("h18")

    comp2l = Range("e19")

    peso2l = Range("h19")

    comp2m = Range("e20")

    peso2m = Range("h20")

    comp2n = Range("e21")

    peso2n = Range("h21")

    comp2o = Range("e22")

    peso2o = Range("h22")

    comp2p = Range("e23")

    peso2p = Range("h23")

    comp2q = Range("e24")

    peso2q = Range("h24")

    'Distinta3

    cdl3 = Range("i6")

    spess3 = Range("l7")

    comp3 = Range("i8")

    comp3a = Range("i10")

    peso3a = Range("l10")

    comp3b = Range("i11")

    peso3b = Range("l11")

    comp3c = Range("i12")

    peso3c = Range("l12")

    comp3d = Range("i13")

    peso3d = Range("l13")

    comp3e = Range("i14")

    peso3e = Range("l14")

    comp3f = Range("i15")

    peso3f = Range("l15")

    comp3g = Range("i16")

    peso3g = Range("l16")

    comp3h = Range("i17")

    peso3h = Range("l17")

    comp3i = Range("i18")

    peso3i = Range("l18")

    comp3l = Range("i19")

    peso3l = Range("l19")

    comp3m = Range("i20")

    peso3m = Range("l20")

    comp3n = Range("i21")

    peso3n = Range("l21")

    comp3o = Range("i22")

    peso3o = Range("l22")

    comp3p = Range("i23")

    peso3p = Range("l23")

    comp3q = Range("i24")

    peso3q = Range("l24")

    'Distinta4

    cdl4 = Range("m6")

    spess4 = Range("p7")

    comp4 = Range("m8")

    comp4a = Range("m10")

    peso4a = Range("p10")

    comp4b = Range("m11")

    peso4b = Range("p11")

    comp4c = Range("m12")

    peso4c = Range("p12")

    comp4d = Range("m13")

    peso4d = Range("p13")

    comp4e = Range("m14")

    peso4e = Range("p14")

    comp4f = Range("m15")

    peso4f = Range("p15")

    comp4g = Range("m16")

    peso4g = Range("p16")

    comp4h = Range("m17")

    peso4h = Range("p17")

    comp4i = Range("m18")

    peso4i = Range("p18")

    comp4l = Range("m19")

    peso4l = Range("p19")

    comp4m = Range("m20")

    peso4m = Range("p20")

    comp4n = Range("m21")

    peso4n = Range("p21")

    comp4o = Range("m22")

    peso4o = Range("p22")

    comp4p = Range("m23")

    peso4p = Range("p23")

    comp4q = Range("m24")

    peso4q = Range("p24")

    'Distinta5

    cdl5 = Range("a25")

    spess5 = Range("d26")

    comp5 = Range("a27")

    comp5a = Range("a29")

    peso5a = Range("d29")

    comp5b = Range("a30")

    peso5b = Range("d30")

    comp5c = Range("a31")

    peso5c = Range("d31")

    comp5d = Range("a32")

    peso5d = Range("d32")

    comp5e = Range("a33")

    peso5e = Range("d33")

    comp5f = Range("a34")

    peso5f = Range("d34")

    comp5g = Range("a35")

    peso5g = Range("d35")

    comp5h = Range("a36")

    peso5h = Range("d36")

    comp5i = Range("a37")

    peso5i = Range("d37")

    comp5l = Range("a38")

    peso5l = Range("d38")

    comp5m = Range("a39")

    peso5m = Range("d39")

    comp5n = Rang

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

43 risposte

Ordina per: Più utili
  1. Anonimo
    2016-07-04T09:54:04+00:00

    Ciao Casanmaner,

    Norman infatti io ho capito il tuo codice ... non voleva essere una critica al tuo codice la mia :-)

    Stai tranquillo! Avevo interpretato i tuoi commenti unicamente nel senso di essere di assistenza a Paolo e per suggerire un modo da eventualmente semplificare la soluzione.

    A questo proposito, anche se l'ordine dei dati archiviati non fosse susciptible di modifica, sarebbe possibile rendere il codice più facilmente comprensibili ignorando l'ordine nella prima routine e aggiungendo una seconda routine per ordinare i dati risultanti. Questo potrebbe avere il vantaggio di semplificare il codice ma, chiaramente, ciò sarebbe a costo di efficienza.

    Approfitto per suggerire una piccola modifica (evidenziata in grassetto) al mio codice per renderlo più  generica e più comprensibile:

    '=========>>

    Option Explicit

    '--------->>

    Public Sub Salva_Ricetta()

        Dim srcWB As Workbook, destWB As Workbook

        Dim srcSH As Worksheet, destSH As Worksheet

        Dim srcRng As Range, srcRng2 As Range, srcRng3 As Range

        Dim destRng As Range, rCell As Range

        Dim vArr() As Variant

        Dim i As Long, j As Long, k As Long

        Dim iCtr As Long, iCells As Long

        Dim LRow As Long

        Dim Tirella As Variant

        Dim lm, ind

        Const iCols As Long = 4

        Const iRows As Long = 19

        Const numeroDistinte  As Long = 8

        Const sPercorsoArchivio As String = _

              "C:\Users\NDJ\Documents\Archivio2.xlsx"                '<<=== Modifica

        Set srcWB = ThisWorkbook

        Set srcSH = srcWB.Sheets("mod_tirelle")

        With srcSH

            If .Range("B3").Value = vbNullString Then

                Set srcRng = .Range("G3,O3,G4,O4,B5,D5,F5,H5")

                iCells = srcRng.Cells.Count

                ReDim vArr(1 To iCells)

                For Each rCell In srcRng.Cells

                    i = i + 1

                    vArr(i) = rCell.Value

                Next rCell

                Set srcRng2 = .Range("A6,D7,A8,A10,D10,A11,D11,A12,D12," _

                                   & "A13,D13,A14,D14,A15,D15,A16,D16,A17,D17," _

                                   & "A18,D18,A19,D19,A20,D20,A21,D21,A22,D22," _

                                   & "A23,D23,A24,D24")

                ReDim Preserve vArr(1 To iCells + srcRng2.Cells.Count * numeroDistinte)

                For i = 0 To 1

                    For j = 0 To 3

                        Set srcRng3 = srcRng2.Offset(i * iRows, j * iCols)

                        For Each rCell In srcRng3.Cells

                            iCtr = iCtr + 1

                            vArr(iCells + iCtr) = rCell.Value

                        Next rCell

                    Next j

                Next i

            End If

        End With

        '\ Copia dati in archivio2

        Set destWB = Workbooks.Open(sPercorsoArchivio)

        Set destSH = destWB.Sheets("archivio2")

        With destSH

            LRow = LastRow(destSH, .Columns("B:B"))

            Set destRng = .Range("B" & LRow + 1)

        End With

        Application.ScreenUpdating = False

            Call MsgBox( _

                 Prompt:="UBound = " & UBound(vArr) _

                 & vbNewLine _

                 & "destRng = " & destRng.Address(0, 0, , 1), _

                 Buttons:=vbInformation, _

                 Title:="REPORT")

        destRng.Resize(1, UBound(vArr)).Value = vArr

        destWB.Close SaveChanges:=True

    XIT:

    Application.ScreenUpdating = True

    End Sub

    '--------->>

    Public Function LastRow(SH As Worksheet, _

                            Optional Rng As Range, _

                            Optional minRow As Long = 1)

        If Rng Is Nothing Then

            Set Rng = SH.Cells

        End If

        On Error Resume Next

        LastRow = Rng.Find(What:="*", _

                           after:=Rng.Cells(1), _

                           Lookat:=xlPart, _

                           LookIn:=xlFormulas, _

                           SearchOrder:=xlByRows, _

                           SearchDirection:=xlPrevious, _

                           MatchCase:=False).Row

        On Error GoTo 0

        If LastRow < minRow Then

            LastRow = minRow

        End If

    End Function

    '<<=========

    ===

    Regards,

    Norman

    ![](http://fud.community.services.support.microsoft.com/Fud/FileDownloadHandler.ashx?fid=29fec126-6588-4c96-978a-a9d64a570ec6)

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-07-04T09:45:33+00:00

    ciao e ancora grazie.

    per semplificare, nel messaggio precedente ho caricato il file con il codice su onedrive.

    Ciao Paolo,

    l'errore che restituisce il tuo codice inserendolo nel mio file è il seguente:

    ![](http://fud.community.services.support.microsoft.com/Fud/FileDownloadHandler.ashx?fid=eb65ce55-2e75-42ee-9c1d-baedf48eab2b)

    Ripeterei che il fatto che io non riscontro tuo problema, che hai confermato anche tu con il mio file di prova, suggerirebbe che ci sia qualcosa di particolare con i tuoi file, Se non vuoi caricarli, posso solo cercare di indovinare la possibile causa del problema. Quindi, prova a sostituire la riga problematica con:

        

        Application.ScreenUpdating = False

            Call MsgBox( _

                 Prompt:="UBound = " & UBound(vArr) _

                 & vbNewLine _

                 & "destRng = " & destRng.Address(0, 0, , 1), _

                 Buttons:=vbInformation, _

                 Title:="REPORT")

        destRng.Resize(1, UBound(vArr)).Value = vArr

    Ti chiederei di postare il nuovo messagio.

    l'errore è lo stesso anche con la parte di codice sopra.

    Quindi il codice funziona: i dati di interesse vengono copiati nella prima riga libera del file Archivio2.xlsx

    ho notato che, a differenza del mio codice, quanto da te suggerito finisce con il copiare i dati dal primo file al file di archivio ma non riporta successivamente il numero della colonna A di Archivio2 nel primo file alla cella B3.

    se funzionasse, mi sa che avrei difficoltà poi a collegare il restante codice.

    Non capisco! Tuttavia, con il mio codice ho cercato di limitarmi al singolo obiettivo di creare una copia di archivio dei dati iniziali. Se hai bisogno di assistenza con altri aspetti del progetto, saremo lieti di aiutarti, ma suggerisco che il percorso più efficiente per ottenere tale assistenza sarebbe di aprire un nuovo thread dedicato a tali questioni

    se vedi il mio codice (postato nel primo messaggio) non si limita a copiare i dati da un foglio all'altro ma successivamente riporta un numero (colonna A ultimo rigo) nella cella B3 del primo file. inoltre serve anche a salvare eventuali modifiche successive ai dati in modo che vengano sovrascritte nel file archivio2....spero di essere stato chiaro perchè capisco che non è facile intendere :)

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-07-04T09:22:42+00:00

    Norman infatti io ho capito il tuo codice ... non voleva essere una critica al tuo codice la mia :-)

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-07-04T09:11:06+00:00

    Ciao Casanmaner,

    premesso che quando avrai sistemato la procedura di Norman avrai risolto il  problema :-)

    Ti chiedo se nel file archivio i dati debbano essere inserti in un ordine particolare o meno.

    Per gli scopi del mio codice, e in assenza di ulteriori dettagli, ho seguito l'ordine particolare stabilito dal codice fornito da Paolo.

    Ovviamente, se fosse possibile modificare l'ordine dei dati, sarebbe possibile semplificare ed abbreviare il codice, il quale non mi risulta comunque né eccessivamente complesso né molto lungo.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2016-07-04T08:53:55+00:00

    Ciao Paolo,

    premesso che quando avrai sistemato la procedura di Norman avrai risolto il  problema :-)

    Ti chiedo se nel file archivio i dati debbano essere inserti in un ordine particolare o meno.

    O è di tuo interesse il semplice fatto che vengano memorizzati per poi essere "ripescati" e inseriti nel prospetto dei dati?

    Inoltre quel file che avevi allegato nella precedente discussione è "definitivo" o sarà soggetto a tue modifiche?

    Perché se è definitivo faccio un test con una modalità che forse ti risulterà di più immediata comprensione e probabilmente di più immediata gestione in caso di future modifiche (anche se sicuramente meno efficiente rispetto alla soluzione di Norman che è sempre estremamente veloce nel trattamento dei dati :-) ).

    La risposta è stata utile?

    0 commenti Nessun commento