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

come copiare valori di una intera riga in excel con formula

3,491 views
Skip to first unread message

Sam

unread,
Jan 24, 2010, 9:57:45 AM1/24/10
to
Salve!
Avrei la necessit� di copiare un certo numero di celle contigue es A1:H1 dal
foglio1 al Foglio2 solo se in una determinata cella della stessa riga es B1
c'� un determinato valore o stringa. Si pu� fare?

Es: Se in Foglio1 B1 = "arance" mi copia l'intera riga, in questo caso A1:H1
nel foglio2.

Grazie anticipatamente.
Sam

Mauro Gamberini

unread,
Jan 24, 2010, 1:01:33 PM1/24/10
to
> Avrei la necessit� di copiare un certo numero di celle contigue es A1:H1
> dal foglio1 al Foglio2 solo se in una determinata cella della stessa riga
> es B1 c'� un determinato valore o stringa. Si pu� fare?
>

Puoi specificare se

1) � una tabella o un'unica riga
(quindi in una tabella devi valutare
pi� righe)?
2) vuoi farlo via codice?
3) hai gi� considerato di filtrare i tuoi dati
per la colonna B?

Grazie.

--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/excelit/threads


Sam

unread,
Jan 24, 2010, 5:05:12 PM1/24/10
to

> Puoi specificare se
>
> 1) � una tabella o un'unica riga
> (quindi in una tabella devi valutare
> pi� righe)?

Si devo valutare pi� righe di una tabella che corrispondano ad un certo
valore nella colonna B e che mi vengno copiate tutte le righe corrispondenti
a quel valore in un altro foglio.

> 2) vuoi farlo via codice?

Preferirei senza usare filtri e copia/incolla come mi � stato suggerito da
un amico.

> 3) hai gi� considerato di filtrare i tuoi dati
> per la colonna B?
> Grazie.

Mi hanno consigliato anche di importare i dati in un database e creare delle
query o dei report a seconda del caso, ma preferirei poter utilizzare solo
excel perch� poi sui dati ci devo ancora lavorare su.

Grazie!!!
Sam

Mauro Gamberini

unread,
Jan 25, 2010, 3:41:58 AM1/25/10
to
>> 2) vuoi farlo via codice?
>>
> Preferirei senza usare filtri e copia/incolla come mi � stato suggerito da
> un amico.
>

Sarebbe interessante sapere la logica del tuo amico
e come risolverebbe lui la cosa...

> Mi hanno consigliato anche di importare i dati in un database e creare
> delle query o dei report a seconda del caso, ma preferirei poter
> utilizzare solo excel perch� poi sui dati ci devo ancora lavorare su.
>

Usando i filti e un po' di vb e
presumendo la tua tabella nel Foglio1,
Range da A1 a Hn.
Il filtro viene effettuato sulla colonna B
e il dato da filtrare viene inserito tramite
una InputBox.
In codice va inserito in un modulo standard
(ALT+F11, Inserisci-->Modulo).
Per ritornare in Excel: ALT+F11
Per eseguire la macro:
ALT+F8, seleziona mCopia e premi: Esegui

Public Sub mCopia()

'dichiaro le variabili
Dim wk As Workbook
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim v As Variant

'inserisco il criterio di ricerca e impedisco
'lo sfarfallio del monitor
With Application
v = .InputBox("Inserire il criterio di ricerca.")
.ScreenUpdating = False
End With
'metto un riferimento al workbook
'che contiene il codice
Set wk = ThisWorkbook
'metto un riferimento ai fogli;
'Foglio1 dove ho la tabella da cui
'copiare i dati, Foglio2 dove voglio
'incollare i dati filtrati
With wk
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
'eseguo il filtro/copia/incolla
With sh1
'metto il filtro automatico e gli passo
'come criterio quanto inserito nella
'InputBox
.Range("A1").AutoFilter Field:=2, _
Criteria1:=CStr(v)
'elimino tutti i dati presenti
'nel Foglio2
sh2.Cells.Clear
'copio/incollo
.Range("A1").CurrentRegion.SpecialCells( _
xlCellTypeVisible).Copy _
Destination:=sh2.Range("A1")
'tolgo il filtro
.Range("A1").AutoFilter
End With

'ripristino l'aggiornamento del monitor
With Application
.ScreenUpdating = True
End With

'Set a Nothing delle variabili oggetto
Set sh2 = Nothing
Set sh1 = Nothing
Set wk = Nothing

End Sub

Se(se) non devi cancellare i dati dal Foglio2
per ogni richesta, ma devi via via incolonnarli,
possiamo modificare la routine.
Va modificata secondoi tuoi riferimenti
per colonne e nomi dei fogli.
Nel caso non riesca, chiedi sempre
in questo thread. Grazie.

Qui(fra qualche minuto) trovi il file che ho utilizzato
per l'esempio:
http://www.maurogsc.eu/esemping10/filtracopia.zip

Grazie per l'attenzione.

Sam

unread,
Jan 26, 2010, 7:50:35 AM1/26/10
to
Grazie per l'aiuto.
Oggi vedo vome funziona !

Grazie ancora.

Sam

Mauro Gamberini

unread,
Jan 26, 2010, 8:41:50 AM1/26/10
to
> Oggi vedo vome funziona !
>

Grazie per il riscontro.
Fai sapere.

michele.m...@gmail.com

unread,
Dec 13, 2013, 1:00:43 PM12/13/13
to
Salve,scusate se mi intrometto in questa discussione ma avrei un problema simile da risolvere e non so come poter fare: in pratica ho una tabella nel foglio 1 colonne dalla "a" alla "l"),di cui la colonna "h" contiene le iniziali di un operaio (posso essere 5 valori diversi) e la colonna "l" contiene la data di effettuazione di una determinata operazione.
Sapreste indicarmi (oppure,se non sono troppo approfittatore,fare un file test come ho visto qui sopra)il codice per una macro che mi copi,solo quando nella colonna "l" è presente la data (e quindi l'operazione è stata effettuata dall'operaio) in altri 5 fogli le righe contenenti ciascuna un determinato codice (per esempio,nel foglio 2 le righe che contengono le iniziali dell'operaio 1,nel foglio 3 quelle dell'operaio 2,etc..). Sarebbe,detta in parole povere, una suddivisione delle operazioni compiute distinte per operaio, mentre nel foglio 1 sono presenti tutte le operazioni assegnate. Grazie mille
0 new messages