|
Rank: Member
Iscritto dal : 10/23/2001 Posts: 0
|
Ciao a tutti! premetto che non sono un genio con le macro di excel,mi arrangio un pochino,ora non riesco a farne una che probabilmente non è nemmeno tanto complessa. Dovrei fare in modo che mi copi una cella da un foglio e la incolli in modo speciale solo valori in una cella di un'altro foglio e sino a qui nessun problema,ma il difficile è:se la cella dove incollare contenesse già dei dati dovrebbe passare alla cella successiva per incollare e se anche questa risultasse scritta alla successiva e così per 10 celle. non so se sono stato chiaro provo a fare un es: copia cella (n33) seleziona foglio"riepilogo" seleziona cella (c16) se cella (c16)= 0 allora incolla speciale...altrimenti vai a cella c(c17);se cella (c17)=0 allora incolla speciale... altrimenti vai a cella (c18); se cella (c18) = 0 allora incolla speciale...........e così via sino alla cella C26 So che qualcuno può aiutarmi non so come ringraziarlo ma sicuramente gli offrirei volentieri qualcosa da bere,chissà i casi della vita sono tanti e forse un giorno potrò contraccambiare Grazie! ciao a tutti aquila5
|
|
|
|
|
Rank: Member
Iscritto dal : 10/4/2000 Posts: 0
|
ciao non ho capito bene se nel foglio dove incolli i dati la cella e' vuota oppure e' uguale a zero comunque ti scrivo 2 macro in modo che tu capisca entrambi i casi . io ho preso 2 fogli , foglio 1 cella b3 come cella da copiare , foglio 2 cella c16 come prima cella in cui incollare i dati . prima macro se la cella da incollare ha valore zero Sub Macro1() Range("B3").Select Selection.Copy Sheets("Foglio2").Select Range("C16").Select Do While ActiveCell () 0 ActiveCell.Offset(1, 0).Activate Loop ActiveSheet.Paste Application.CutCopyMode = False End Sub attento a questa riga : do while activecell "diversa da zero" se non erro in html si vede in maniera diversa seconda macro , se la cella e' vuota Sub Macro1() Range("B3").Select Selection.Copy Sheets("Foglio2").Select Range("C16").Select Do While not isempty(ActiveCell) ActiveCell.Offset(1, 0).Activate Loop ActiveSheet.Paste Application.CutCopyMode = False End Sub
spero di essere stato chiaro
ciao
|
|
Rank: Member
Iscritto dal : 10/23/2001 Posts: 0
|
<BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> ciao non ho capito bene se nel foglio dove incolli i dati la cella e' vuota oppure e' uguale a zero comunque ti scrivo 2 macro in modo che tu capisca entrambi i casi .
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote> Ciao c.broggio ho seguito le tue indicazioni,la prima macro non ho potuto provarla in quanto mi dà errore di sintassi al punto"Do While ActiveCell () 0" ho provato la seconda e,modificata secondo le mie esigenze direi che funziona sebbene al primo lancio della macro mi copia i dati contemporaneamente nella cella C16 e C17 mentre dovrebbe scriverli solo nella C16. ho provato a modificare "ActiveCell.Offset(1, 0).Activate" mettendo offset (0, 0) ma così mi va a scrivere nella cella di intestazione. Per spiegarti meglio ciò che devo fare ti dirò che i risultati di un test fatto da un bimbo una,due,...dieci volte in giorni ed in tempi diversi devono essere scritti nel riepilogo così da poter confrontare i miglioramenti nella velocità di esecuzione del test stesso.Ecco se riesci a darmi la dritta x far scrivere nella cella C16 quando eseguo la macro la prima volta per il resto funziona veramente OK! ciao aquila5 GRAZIE anche per la nuova risposta!!
|
|
Rank: Member
Iscritto dal : 10/4/2000 Posts: 0
|
<BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> <BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> ciao non ho capito bene se nel foglio dove incolli i dati la cella e' vuota oppure e' uguale a zero comunque ti scrivo 2 macro in modo che tu capisca entrambi i casi .
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote> Ciao c.broggio ho seguito le tue indicazioni,la prima macro non ho potuto provarla in quanto mi dà errore di sintassi al punto"Do While ActiveCell () 0" ho provato la seconda e,modificata secondo le mie esigenze direi che funziona sebbene al primo lancio della macro mi copia i dati contemporaneamente nella cella C16 e C17 mentre dovrebbe scriverli solo nella C16. ho provato a modificare "ActiveCell.Offset(1, 0).Activate" mettendo offset (0, 0) ma così mi va a scrivere nella cella di intestazione. Per spiegarti meglio ciò che devo fare ti dirò che i risultati di un test fatto da un bimbo una,due,...dieci volte in giorni ed in tempi diversi devono essere scritti nel riepilogo così da poter confrontare i miglioramenti nella velocità di esecuzione del test stesso.Ecco se riesci a darmi la dritta x far scrivere nella cella C16 quando eseguo la macro la prima volta per il resto funziona veramente OK! ciao aquila5 GRAZIE anche per la nuova risposta!!
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote> ciao se leggi bene la mia risposta nella prima macro non devi mettere () ma il simbolo del diverso , prima minore poi maggiore , l'html non vede quel simbolo . per la seconda macro controlla bene in quanto se la serie e' vuota scrive solo in c16 , la parte do while ecc loop serve solo a controllare se la cella e' vuota o piena , se e' piena va sotto atrimenti scrive nella cella vuota . scrivi per intero la macro che hai fatto tu che gli do un occhiata
ciao
|
|
Rank: Member
Iscritto dal : 10/23/2001 Posts: 0
|
/quote] ciao se leggi bene la mia risposta nella prima macro non devi mettere () ma il simbolo del diverso , .........[/quote] Ciao !! Ho provato anche l'altra mettendo il simbolo di diverso(sono proprio scemo a non aver capito quello che intendevi dire!!scusami)ma anche in questo caso quando dò il comando esegui macro scrive i dati sia in C16 che in C17,dopodichè funziona tutto in modo regolare ti ho copiato le due macro come le ho scritte così puoi capire il perchè!Avrei voluto inviarti in allegato tutta la cartella ma non saprei come fare ad inviartela ciao aquila5
Sub riepilogo() 'copia i dati nel riepilogo Range("N35, O35, P35").Select Selection.Copy Sheets("riepilogo").Select Range("C16").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Activate Loop ActiveSheet.Paste Application.CutCopyMode = False End Sub _____________________________________________
Sub riepilogo1() 'copia i dati nel riepilogo Range("N35, O35, P35").Select Selection.Copy Sheets("riepilogo").Select Range("C16").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Do While ActiveCell () 0 ActiveCell.Offset(1, 0).Activate Loop ActiveSheet.Paste Application.CutCopyMode = False End Sub
|
|
Rank: Member
Iscritto dal : 10/4/2000 Posts: 0
|
ciao sul primo pezzo non commento(pensavo non avessi capito , per le macro le provo appena ho un po' di tempo ma ad occhio credo che il problema stia nel fatto che copi 3 celle se vuoi provare a scrivermi in privato ti do 2 mail c.broggio@aiutamici.com e una vecchia mail che usavo tempo fa asc@libero.it ciao
|
|
Rank: Member
Iscritto dal : 10/4/2000 Posts: 0
|
era una stupidata , praticamente copiava i dati in c16 ed in seguito cercava la prima cella vuota sotto . ti scrivo la macro corretta , noterai che rispetto alla tua manca una riga cioe' quella che copiava i dati sempre in c16
Sub riepilogo() 'copia i dati nel riepilogo Range("N35, O35, P35").Select Selection.Copy Sheets("riepilogo").Select Range("C16").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Activate Loop Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False Range("a1").Activate End Sub
per la seconda macro immagino riuscirai da solo a modificarla
ciao
|
|
Guest |