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

Copiare da stesse celle, ma in più fogli

29 views
Skip to first unread message

Blinker

unread,
Dec 27, 2007, 2:55:56 PM12/27/07
to
ho ritrovato un vecchio codice di Cucchiaino del 2005 che farebbe al caso
mio con un piccolo arrangiamento che aimè non sono capace di fare.

Sub copiadaglialtri()
Dim questo As String
Dim r As Long, x As Long

r = Range("A60000").End(xlUp).Row
questo = ThisWorkbook.Name

For x = 1 To Workbooks.Count

If Workbooks(x).Name <> questo Then
r = r + 1
With Workbooks(x).Sheets(1)
Cells(r, 1) = .Range("H26").Value
Cells(r, 2) = .Range("I13").Value
Cells(r, 3) = .Range("I14").Value
Cells(r, 4) = .Range("H19").Value
Cells(r, 5) = .Range("H20").Value
Cells(r, 6) = .Range("F23").Value
Cells(r, 7) = .Range("F24").Value
Cells(r, 8) = .Range("F25").Value
End With
End If

Next
End Sub

sarebbe molto più utile se copiasse non solo i dati contenuti nelle celle
del primo foglio, ma da tutti i fogli contenuti nella cartella aperta.
Ringrazio in anticipo chi saprà essermi d'aiuto.

Blinker


Blinker

unread,
Dec 27, 2007, 3:32:25 PM12/27/07
to

>
> sarebbe molto più utile se copiasse non solo i dati contenuti nelle celle
> del primo foglio, ma da tutti i fogli contenuti nella cartella aperta.
> Ringrazio in anticipo chi saprà essermi d'aiuto.
>
> Blinker
mi rispondo da solo, ho "captato" che devo trovare il modo di fare contare i
fogli in ogni file ad ogni ciclo, ma poi mi perdo, credo che con un aiuto
(forse) potrò farcela.

grazie ancora

Blinker

P.S. ho cambiato l'oggetto della richiesta perchè più chiara


Mauro Gamberini

unread,
Dec 28, 2007, 3:25:23 AM12/28/07
to
> ho ritrovato un vecchio codice di Cucchiaino del 2005 che farebbe al caso
> mio con un piccolo arrangiamento che aimč non sono capace di fare.
>

Proviamo di capire meglio.
Vuoi copiare sempre i valori
delle stesse celle
da *tutti* i fogli di una cartella?
Una volta copiati, dove e come li andiamo
ad incollare?

--
---------------------------
Mauro Gamberini
http://www.riolab.org/


Blinker

unread,
Dec 28, 2007, 10:31:20 AM12/28/07
to

> Proviamo di capire meglio.
> Vuoi copiare sempre i valori
> delle stesse celle
> da *tutti* i fogli di una cartella?

esattamente come dici tu

> Una volta copiati, dove e come li andiamo
> ad incollare?

la macro che ho precedentemente postato prende i valori di 8 celle (del
primo foglio) e li *mette* tutti su una riga.

Fino qui va benissimo (se ripeto la macro ricopia gli stessi valori nella
riga successiva).
Sarebbe utile avere nelle righe successive, sempre con lo stesso ordine, i
valori delle stesse 8 celle, ma contenute nei fogli successivi al
foglio1(foglio2,ecc ..ecc,foglio100).

Sperando di aver chiarito ringrazio ancora per la pazienza e la cortesia

Blinker


Mauro Gamberini

unread,
Dec 28, 2007, 11:01:18 AM12/28/07
to
Questa copia la riga A1:H1
dei fogli Foglio1:Foglio100
e va ad incollarle via via nella
prima riga vuota A:H del Foglio101.

Public Sub m()

Dim lng As Long
Dim ur As Long
Dim s As String

s = "Foglio"

For lng = 1 To 100

With Worksheets(s & 101)
ur = .Range("A" & Rows.Count).End(xlUp).Row
End With

With Worksheets(s & lng)
.Range("A1:H8").Copy _
Destination:= _
Worksheets(s & 101).Range("A" & ur + 1)
End With

Next

End Sub

Prova di adattarla alle tue esigenze.
Non l'ho testata. Rimango al pc
un'oretta e poi se ne riparla il
7 gennaio.... 8-)

--
---------------------------
Mauro Gamberini(che domani se ne va un po' in montagna...8-)))))))
http://www.riolab.org/


Blinker

unread,
Dec 28, 2007, 11:56:25 AM12/28/07
to

> ---------------------------
> Mauro Gamberini(che domani se ne va un po' in montagna...8-)))))))
> http://www.riolab.org/
>
tenterň anche se la vedo nera, perchč non conosco il numero dei fogli
contenuti nel file (piů di 300).
proverň a fare un misto delle due macro, tu intanto riposati al massimo e
non partire con il portatile, per il resto ci sentiamo l'anno prossimo.

AUGURI a tutti

Blinker


Mauro Gamberini

unread,
Dec 28, 2007, 12:17:59 PM12/28/07
to
> tenterň anche se la vedo nera, perchč non conosco il numero dei fogli
> contenuti nel file (piů di 300).
>

Prova cosě:

Public Sub m()

Dim ur As Long
Dim sh As Sheet

For Each sh In Worksheets

If sh.Name <> "NomeFoglioDiDestinazione" Then

With Worksheets("NomeFoglioDiDestinazione")


ur = .Range("A" & Rows.Count).End(xlUp).Row
End With

With sh


.Range("A1:H8").Copy _
Destination:= _

Worksheets("NomeFoglioDiDestinazione").Range("A" & ur + 1)
End With

Next

End Sub

> tu intanto riposati al massimo e non partire con il portatile
>

Ci mancherebbe!
Ho l'HTC TYTN II con il suo bel Excel...
... senza macro perň... 8-(

Blinker

unread,
Dec 29, 2007, 9:21:58 AM12/29/07
to

>
> Public Sub m()
>
> Dim ur As Long
> Dim sh As Sheet
>
> For Each sh In Worksheets
>
> If sh.Name <> "NomeFoglioDiDestinazione" Then
>
> With Worksheets("NomeFoglioDiDestinazione")
> ur = .Range("A" & Rows.Count).End(xlUp).Row
> End With
>
> With sh
> .Range("A1:H8").Copy _
> Destination:= _
> Worksheets("NomeFoglioDiDestinazione").Range("A" & ur + 1)
> End With
>
> Next
>
> End Sub
>

con una Object al posto di Sheet (dava errore anche con la s finale), un End
If verso la fine -vista la rapidità nella risposta sarà sicuramente rimasto
nella tastiera :-) - e una piccola correzione funziona alla perfezione.
Però chiedo se c'è un modo più elegante per scrivere questa cosa:

.Range("H26").Copy _
Destination:= _
Worksheets("Elenco").Range("A" & ur + 1)
.Range("I13").Copy _
Destination:= _
Worksheets("Elenco").Range("B" & ur + 1)
.Range("F23").Copy _
Destination:= _
Worksheets("Elenco").Range("C" & ur + 1)


che poi è l'altra modifica perchè le celle che mi interessano non sono
adiacenti.

Tutto questo quando torni ... ancora grazie.

Blinker

Mauro Gamberini

unread,
Jan 7, 2008, 4:27:20 AM1/7/08
to
> Però chiedo se c'è un modo più elegante per scrivere questa cosa:
>
> .Range("H26").Copy _
> Destination:= _
> Worksheets("Elenco").Range("A" & ur + 1)
> .Range("I13").Copy _
> Destination:= _
> Worksheets("Elenco").Range("B" & ur + 1)
> .Range("F23").Copy _
> Destination:= _
> Worksheets("Elenco").Range("C" & ur + 1)
>
>
> che poi è l'altra modifica perchè le celle che mi interessano non sono
> adiacenti.
>

Siamo qui...
Se per favore spieghi cosa non è adiacente:
le celle di destinazione? O che altro?

Blinker

unread,
Jan 8, 2008, 3:57:00 PM1/8/08
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:eoOvC%23QUIH...@TK2MSFTNGP04.phx.gbl...
Le non adiacenti sono le celle da cui prendo i dati da copiare (proprio come
sopra), mentre il range di destinazione dovrebbero diventare le celle della
stessa riga, ma della colonna successiva (sempre come sopra), ma non è un
problema. Funziona anche così ... è solo una curiosità *estetica*.

ciao e grazie Blinker


0 new messages