Condividi:        

copiare dati da un foglio ad un altro

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

copiare dati da un foglio ad un altro

Postdi lory1976 » 05/03/10 16:36

Ciao a tutti!
Ho un foglio in excel (foglio 1) di una lista di nominativi di clienti, con indirizzo, telefono e altri dati, tipo così

data intervento cliente indirizzo telefono .... attrezzature matricola
1 01/03/2010 rossi mario via duomo 12 milano 02-222222 carrello 98898
2 05/03/2010 bianchi luigi via corbetta 58 - sesto s.g. 02-58656465 cric 52132
ecc...

Poi ho un altro foglio (foglio 2 ) dove dovrei mettere queste indicazioni a mo di lettera (in realta è un foglio di intervento), così

1
spett.le

rossi mario
via duomo 12
milano tel.02-222222
data 01/03/2010 attrezzature carrello matricola 98898

Dove richiamando in alto nel foglio di intervento (foglio 2) il numero del cliente (che ho messo in grassetto), mi mette tutti i dati che ci sono già nel foglio 1. io ho sottolineato i dati che dovrei richiamare dal foglio 1.

riesco a richiamare i dati usando cerca vert. ma non riesco ad abbinare il fatto di scrivere il nuemro del cliente, in modo che mi metta i dati di quel cliente.
ho provato in tutti i modi ma mi sfugge qualcosa si vede ....
grazie
Lorena
lory1976
Newbie
 
Post: 5
Iscritto il: 05/03/10 15:32

Sponsor
 

Re: copiare dati da un foglio ad un altro

Postdi Flash30005 » 05/03/10 16:48

Ciao Lory e benvenuta nel Forum

Se ho capito bene tu vorresti avere un elenco dei numeri Cliente (es. 1,2,3 etc) in una cella del foglio2

Fai un elenco della colonna del foglio1 relativa ai numeri cliente e nomini questa area "ElencoN" poi nella cella del foglio2 fai una convalida di elenco "ElencoN"
da questo momento in quella cella avrai una finestra con tutti i nuemri dei clienti e selezionandone uno con il tuo cerca verticale avrai i campi relativi a quel cliente

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copiare dati da un foglio ad un altro

Postdi lory1976 » 05/03/10 17:27

Se nel foglio 1 , ho come numero 1 il cliente rossi mario via ecc... al numero 2 il cliente bianchi luigi via ecc.. , vorrei che quando nel foglio 2, richiamo 1 mi riporti tutti i dati del cliente rossi mario, se richiamo 2 mi riporti i dati del cliente bianchi luigi e via dicendo.
lory1976
Newbie
 
Post: 5
Iscritto il: 05/03/10 15:32

Re: copiare dati da un foglio ad un altro

Postdi Flash30005 » 05/03/10 21:44

con una macro così:

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$2" Then Exit Sub
RF1 = Worksheets("Foglio1").Range("A1").End(xlDown).Row
NumC = Range("A2").Value
For Num = 2 To RF1
NumT = Worksheets("Foglio1").Range("A" & Num).Value
    If NumT = NumC Then
Range("A5").Value = Worksheets("Foglio1").Range("C" & Num).Value
Range("B5").Value = Worksheets("Foglio1").Range("D" & Num).Value
Range("A6").Value = Worksheets("Foglio1").Range("E" & Num).Value
Range("A7").Value = Worksheets("Foglio1").Range("F" & Num).Value
Range("B7").Value = Worksheets("Foglio1").Range("G1").Value & " " & Worksheets("Foglio1").Range("G" & Num).Value
Range("B8").Value = Worksheets("Foglio1").Range("B" & Num).Value
Range("C8").Value = Worksheets("Foglio1").Range("H1").Value
Range("D8").Value = Worksheets("Foglio1").Range("H" & Num).Value
Range("F8").Value = Worksheets("Foglio1").Range("I" & Num).Value
    Exit Sub
End If
Next Num
End Sub


inserita nel foglio2 e non nel modulo dovresti ottenere ciò che desideri

ti mando comunque il file, una volta aperto cambia il valore nella cella A2 del foglio2 (cella con convalida ad elenco) otterrai i dati che ti occorrono, poi semmai adatti alle tue esigenze

scarica questo file

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copiare dati da un foglio ad un altro

Postdi lory1976 » 08/03/10 08:21

grazie!
provo e ti dico!
lory1976
Newbie
 
Post: 5
Iscritto il: 05/03/10 15:32

Re: copiare dati da un foglio ad un altro

Postdi lory1976 » 08/03/10 10:54

ho copiato la tua macro, modificando i dati rispetto alla mia tabella, ma quando vado a inserire il numero del cliente da richiamare mi esce quetso messaggio : " un utente ha stabilito delle limitazioni per i valori che è possibile immettere nella cella. " perchè??
lory1976
Newbie
 
Post: 5
Iscritto il: 05/03/10 15:32

Re: copiare dati da un foglio ad un altro

Postdi Flash30005 » 08/03/10 11:01

:?:
Sembrerebbe che stia usando un file protetto

1) abilita l'esecuzione di macro in Excel

2) La prima prova che devi fare è con il file che ho allegato nel post precedente
se funziona modifica quel file

3) se il file è in rete (condiviso) ed è stato aperto da qualche altro utente prima del tuo utilizzo non credo tu abbia la possibilità di modificarlo

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copiare dati da un foglio ad un altro

Postdi lory1976 » 19/03/10 09:06

sono riuscita!
grazie mille!
lory1976
Newbie
 
Post: 5
Iscritto il: 05/03/10 15:32

Re: copiare dati da un foglio ad un altro

Postdi mpsinf » 26/11/12 20:41

Riprendo questo post perchè ho un problema di copia dati da un fg. all'altro-

Durante l'esecuzione di una macro su un foglio "volante" (ossia il foglio stesso poi verrà cancellato dalla macro) dovrei copiare su un altro foglio chiamato "Vittorie" dei dati presenti in alcune celle che sono per esempio A1, B1, più tutto l'elenco presente su 3 colonne Q1:Sx dove x stà per fino all'ultimo elemento presente ...
Presupponendo che nel foglio "Vittorie" le prime 3 righe siano già occupate, i dati che ho sul mio foglio in analisi in A1 dovranno finire in A4 così B1 dovrà finire in B4..
Per i dati in Q1 R1 S1 dovranno finire in C4 D4 E4 ossia in orizzontale a fianco dei primi 2,
per i dati in Q2 R2 S2 dovranno finire in F4 G4 H4 ossia in orizzontale a fianco degli altri.
Unica limitazione che le righe x da analizzare siano inferiori alle colonne disponibili in Excel (nel mio caso 255 perchè ho Excel 2003)
ma questo non è un grosso problema perchè le righe Q1:Sx non saranno mai più di 83.

Avevo iniziato così
Codice: Seleziona tutto
Worksheets("Vittorie").Cells(Cells(Rows.Count, "A").End(xlUp).Row, "A").Offset(0, 1).Value = ActiveSheet.Range("A1").Value

ma poi sono andato un po' in tilt... perchè non sò se devo creare 2 volte la stessa riga di codice per A1 e B1 e poi fare un ciclo For i to x per gli altri dati con un offset o mi suggerite qualche altro sistema ?
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: copiare dati da un foglio ad un altro

Postdi Flash30005 » 26/11/12 21:03

Potresti inviare il file con esempi nei vari fogli?

La soluzione sarebbe più facile da trovare e senza perdere tempo

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copiare dati da un foglio ad un altro

Postdi mpsinf » 27/11/12 08:15

Immagine
Nell'immagine (io non la vedo direttamente :o perchè ?) in alto il foglio1 dal quale devo prelevare i dati, nella parte in basso foglio "Vittorie" con in rosso quello che voglio ottenere ..


EDIT Flash: corretto collegamento per l'immagine
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: copiare dati da un foglio ad un altro

Postdi Flash30005 » 27/11/12 13:31

Con Rapidshare va inserito il codice BBCode che rilascia lo stesso Rapidshare

Per quanto riguarda la macro, prova questa
Codice: Seleziona tutto
Sub Trasponi()
Set Ws1 = Worksheets("Foglio1")
Set Ws2 = Worksheets("Vittorie")
UR1 = Ws1.Range("Q" & Rows.Count).End(xlUp).Row
Ws2.[A3] = Ws1.[A1]
Ws2.[B3] = Ws1.[B1]
Ws2.[C3] = Ws1.[A2]
Ws2.[D3] = Ws1.[B2]
For RR1 = 1 To UR1
For CC1 = 17 To 19
Ws2.Cells(3, Columns.Count).End(xlToLeft).Offset(0, 1).Value = Ws1.Cells(RR1, CC1).Value
Next CC1
Next RR1
End Sub


C'è una contraddizione tra il post e l'immagine
Nel post dici di volere riportare in riga 4 mentre nell'immagine, i dati, sono riportati in riga 3
La macro riporta i dati come da immagine (riga 3), nel caso modifica questa riga
Codice: Seleziona tutto
Ws2.Cells(3, Columns.Count)....
-> da 3 a 4
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copiare dati da un foglio ad un altro

Postdi mpsinf » 27/11/12 19:23

Ti ringrazio per la risposta, è che la mia richiesta è stata percepita e letta parzialmente.
Il foglio da analizzare non è sempre il foglio1 (avevo specificato che è un foglio "volante" inoltre verrà cancellato) ossia può essere il foglio1 come foglio3 come foglioxx... quindi il comando dovrà essere qualcosa di simile al comando Set Ws1 = Worksheets.Activesheets che però non mi funziona, mi sai aiutare su qual'è la dicitura corretta ?

Inoltre avevo scritto
"Presupponendo che nel foglio "Vittorie" le prime 3 righe siano già occupate"
questo presupponendo stava per "ora sono 3 quelle occupate poi potranno essere 5 o 10".
quindi nuova riga di codice
UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row
e riga modificata
Ws2.Cells(UR2 + 1, "A") = Ws1.[A1]
Ws2.Cells(UR2 + 1, "B") = Ws1.[B1]
Ws2.Cells(UR2 + 1, "C") = Ws1.[A2]
Ws2.Cells(UR2 + 1, "D") = Ws1.[B2]

Ws2.Cells(UR2+1, Columns.Count).End(xlToLeft).Offset(0, 1).Value = Ws1.Cells(RR1, CC1).Value

quest'ultima riga però non mi funziona correttamente

Pensavo inoltre che ci fosse altro sistema in quanto avevo scritto "non sò se devo creare 2 volte la stessa riga di codice per A1 e B1 e poi fare un ciclo For i to x per gli altri dati con un offset o mi suggerite qualche altro sistema ?"

per intanto ho imparato qualcosa in più sull'uso della variabili Ws2 e Ws1 abbinate al foglio su cui voglio lavorare.
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: copiare dati da un foglio ad un altro

Postdi mpsinf » 27/11/12 19:41

Correggo
Ws2.Cells(UR2+1, Columns.Count).End(xlToLeft).Offset(0, 1).Value = Ws1.Cells(RR1, CC1).Value
funziona

Peccato che quando sono all'inizio della popolazione del foglio "Vittorie" mi lasci una riga bianca... la eliminerò alla fine con un order..
in quanto
("A" & Rows.Count).End(xlUp).Row restituisce sempre 1 sia con la 1a riga vuota sia con la 1a riga piena.
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: copiare dati da un foglio ad un altro

Postdi Flash30005 » 28/11/12 07:36

Per quanto riguarda il foglio
puoi fare così
Codice: Seleziona tutto
Sub Trasponi()
Foglio = ActiveSheet.Name
Set Ws1 = Worksheets(Foglio)


Oppure, visto che lo elimini ogni volta, puoi assegnare un nome noto al foglio che crei e quindi fare così

Codice: Seleziona tutto
Worksheets.Add.Name = "Volatile"
Ws1 = Worksheets("Volatile")


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copiare dati da un foglio ad un altro

Postdi mpsinf » 28/11/12 08:18

Va bene la prima perchè i fogli da analizzare sono più di 1 e con nomi diversi..
grazie ancora
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: copiare dati da un foglio ad un altro

Postdi Flash30005 » 28/11/12 08:48

Per il problema prima riga puoi risolvere così
Codice: Seleziona tutto
UR2 = Range("A" & Rows.Count).End(xlUp).Row
If Range("A" & UR2).Value <> "" Then UR2 = UR2 + 1

e usare UR2 sempre

Mentre se hai più fogli da analizzare
Puoi usare questa macro (cappello)

Codice: Seleziona tutto
Sub AnaFogli()
Dim wks As Worksheet
 For Each wks In ThisWorkbook.Worksheets
 If ActiveSheet.Name <> "Vittorie" Then
    MsgBox wks.Name
'...
' tua macro
 End If
 Next wks
End Sub

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "copiare dati da un foglio ad un altro":


Chi c’è in linea

Visitano il forum: Ricky0185 e 44 ospiti