Rank: Member
Iscritto dal : 4/22/2007 Posts: 0
|
ciao a tutti: visto che non avete risposto immagino di avere spiegato male il problema per cui provo ad essere un po' più dettagliato:
a) Nel foglio1 del file excel ho un db di dati ordinato dal progressivo 1 al progressivo 100.
b) Nel foglio2 dello steso file, in base al numero progressivo che digito a mano sulla cella A2, ricavo tramite un cerca.verticale i dati legati a quel numero progressivo e contenuti nel db del foglio1. I valori di interesse, nome, cognome, età, indirizzo, si posizionano nelle celle b2,c2,d2,e2 del foglio2.
c) Ho costruito una macro che, nelle mie intenzioni, dal foglio2 dovrebbe fare copia incolla di questi valori sul foglio3 dello stesso file excel. Questo passaggio di valori dal foglio1 al foglio2 al foglio3 sembra stupido, ma in realtà sto semplificando il problema per renderlo più facilmente spiegabile.
Sin qui tutto ok, il problema è che i valori sulla riga da copiare dal foglio2 cambiano di volta in volta in base al progressivo inserito, per cui vorrei che la macro di volta in volta incollasse, nel foglio3, i nuovi valori su una riga vuota successiva a quella in cui ho incollato i valori precedenti e che questa procedura si ripetesse sempre, ossia l'incolla dovrebbe sempre avvenire nella riga successiva all'incolla precedente.
Invece, nel mio caso, il sistema funziona solo la prima volta, poi, la volta successiva, la macro sovrascrive i dati nella stessa riga del foglio3. Credo che il problema stia nei riferimenti assoluti, o nella mancanza di funzioni + complesse tipo IF o For, purtroppo, però, non conosco la soluzione.
Vi lascio le istruzioni elementari che ho costruito io:
Macro2 Macro ' Macro registrata il 22/04/2007 da luca ' ' Scelta rapida da tastiera: CTRL+MAIUSC+S ' Range("A2").Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy Sheets("Foglio3").Select Range("A2").Select ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Paste Sheets("Foglio2").Select Range("A2").Select Application.CutCopyMode = False Selection.ClearContents
Grazie per tutto ciò che potrete consigliarmi e mi scuso se nella richiesta precedente sono stato poco chiaro.
Luca
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve la macro sovrascrive sempre il valore perchè ogni volta che che la lanci punta sempre alla stessa cella. Devi eseguire un controllo sulla prima cella vuota della colonna A del foglio3. Se la tabella che deve essere creata sul foglio3 deve partire dalla riga 2 modifica come rsegue la tua macro: Range("A2").Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy Sheets("Foglio3").Select riga = 2 While Cells(riga, 1).Value <font color=red>()</font id=red> "" riga = riga + 1 Wend Cells(riga, 1).Select ActiveSheet.Paste Sheets("Foglio2").Select Range("A2").Select Application.CutCopyMode = False Selection.ClearContents Le due parentesi segnate in rosso sono i simboli di maggiore e minore saluti Andrea Edited by - a10n11 on 04/30/2007 10:10:20
|
Rank: Member
Iscritto dal : 4/22/2007 Posts: 0
|
<BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> ciao a tutti: visto che non avete risposto immagino di avere spiegato male il problema per cui provo ad essere un po' più dettagliato:
a) Nel foglio1 del file excel ho un db di dati ordinato dal progressivo 1 al progressivo 100.
b) Nel foglio2 dello steso file, in base al numero progressivo che digito a mano sulla cella A2, ricavo tramite un cerca.verticale i dati legati a quel numero progressivo e contenuti nel db del foglio1. I valori di interesse, nome, cognome, età, indirizzo, si posizionano nelle celle b2,c2,d2,e2 del foglio2.
c) Ho costruito una macro che, nelle mie intenzioni, dal foglio2 dovrebbe fare copia incolla di questi valori sul foglio3 dello stesso file excel. Questo passaggio di valori dal foglio1 al foglio2 al foglio3 sembra stupido, ma in realtà sto semplificando il problema per renderlo più facilmente spiegabile.
Sin qui tutto ok, il problema è che i valori sulla riga da copiare dal foglio2 cambiano di volta in volta in base al progressivo inserito, per cui vorrei che la macro di volta in volta incollasse, nel foglio3, i nuovi valori su una riga vuota successiva a quella in cui ho incollato i valori precedenti e che questa procedura si ripetesse sempre, ossia l'incolla dovrebbe sempre avvenire nella riga successiva all'incolla precedente.
Invece, nel mio caso, il sistema funziona solo la prima volta, poi, la volta successiva, la macro sovrascrive i dati nella stessa riga del foglio3. Credo che il problema stia nei riferimenti assoluti, o nella mancanza di funzioni + complesse tipo IF o For, purtroppo, però, non conosco la soluzione.
Vi lascio le istruzioni elementari che ho costruito io:
Macro2 Macro ' Macro registrata il 22/04/2007 da luca ' ' Scelta rapida da tastiera: CTRL+MAIUSC+S ' Range("A2").Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy Sheets("Foglio3").Select Range("A2").Select ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Paste Sheets("Foglio2").Select Range("A2").Select Application.CutCopyMode = False Selection.ClearContents
Grazie per tutto ciò che potrete consigliarmi e mi scuso se nella richiesta precedente sono stato poco chiaro.
Luca
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote>
|
Rank: Member
Iscritto dal : 4/22/2007 Posts: 0
|
Grazie Andrea...grazie di cuore....per l'aiuto disinteressato...Te ne sono grato. Vi farò un ottima pubblicità.
Ankora grazie Luca
|