Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

copia incolla

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

copia incolla

Postdi rombotuono » 01/06/19 13:31

buongiorno
sto utilizzando questa macro per copiare range da foglio A in foglio B trovando ultima riga vuota.
non riesco a capire come mai pur copiando il range ( as59:au1000 ) incolla i dati nel foglio B non nell'ultima cella vuota ma dalla cella 1000 in poi
nel range foglio A da as59:au1000 ci sono delle formule quindi nel range possono esserci dei valori per esempio da as59 :au600, oppure da as59:au 800 il resto formule.
il problema è che copia anche le celle vuote , quando incolla trova l'ultima cella vuota che è la 1000 e non es. la 600 oppure 800
grazie

Sub Copia()
Application.ScreenUpdating = False
Sheets("A").Activate
Application.ScreenUpdating = False
Range("as59:au1000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("B").Activate
RigaVuota = Range("a2").End(xlDown).Row + 1
Range("A" & RigaVuota).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

' Application.CutCopyMode = False
' Application.ScreenUpdating = True

End Sub
rombotuono
Utente Junior
 
Post: 30
Iscritto il: 09/11/18 17:27

Sponsor
 

Re: copia incolla

Postdi Marius44 » 01/06/19 18:36

Ciao
cosa intendi per "prima cella vuota"? Se nell'intervallo dove cerchi la "prima cella vuota" ci sono delle formule, la cella NON E' vuota!

Se ho capito cosa vorresti fare non devi cercare "la prima cella vuota" (che non troveresti) ma la prima cella con valore pari a 0 oppure pari a "" a seconda del risultato della formula.

Ciao,
Mario
Marius44
Utente Senior
 
Post: 451
Iscritto il: 07/09/15 22:00

Re: copia incolla

Postdi rombotuono » 01/06/19 21:55

grazie per la risposta
è un pò complicato da spiegare
allego link del file esempio
http://www.filedropper.com/copia_1
rombotuono
Utente Junior
 
Post: 30
Iscritto il: 09/11/18 17:27

Re: copia incolla

Postdi Marius44 » 02/06/19 07:28

Ciao
Prova ad inserire questa macro e guarda il risultato (mettendo il mouse sopra le variabili)
Codice: Seleziona tutto
Sub RigaVuota()
RigaVuotaDallAlto = Sheets("B").Cells(Rows.Count, 1).End(xlDown).Row + 1
RigaVuotaDalBasso = Sheets("B").Cells(Rows.Count, 1).End(xlUp).Row + 1
Stop
End Sub

Quando si ferma allo Stop vedrai che "c'è qualcosa" (magari solo uno spazio oppure caratteri invisibili - come talvolta capita recuperando i dati dal web) nelle celle fino alla 3773.
Forse è il caso di ripulire i risultati di eventuali precedenti prove.
Oppure non ho capito nulla.

Ciao,
Mario
Marius44
Utente Senior
 
Post: 451
Iscritto il: 07/09/15 22:00

Re: copia incolla

Postdi Anthony47 » 02/06/19 11:08

Se dici che nel foglio A ci sono delle formule ma poi ci alleghi un file che invece contiene valori che non sappiamo come sono stati calcolati, noi su che cosa possiamo ragionare?

Proviamo a risolverla facendola piu' complessa di quel che normalmente sarebbe:
A) Aggiungi questo codice in coda al tuo
Codice: Seleziona tutto
Function getLast(ByRef myArea As Range) As Long
Dim LastR As Long
On Error Resume Next
LastR = myArea.Find(What:="*", After:=myArea.Cells(1, 1), _
              SearchOrder:=xlByRows, _
              SearchDirection:=xlPrevious).Row
On Error GoTo 0
getLast = LastR
End Function


B) Poi, al posto dell'istruzione RigaVuota = Range("a2").End(xlDown).Row + 1 userai
Codice: Seleziona tutto
RigaVuota = getLast(Sheets("A").Range("A:A")) + 1


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16511
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: copia incolla

Postdi rombotuono » 02/06/19 12:46

ciao
Anthony
provato ma non va bene

allego link file con le formule
http://www.filedropper.com/copia_2
grazie
rombotuono
Utente Junior
 
Post: 30
Iscritto il: 09/11/18 17:27

Re: copia incolla

Postdi Anthony47 » 02/06/19 19:22

Non so interpretare il tuo file; mi sembra la copia del precedente e non vedo traccia del codice che ti ho suggerito.

TUTTAVIA mi accorgo che ho sbagliato a spiegarti come usare la Function getLast: devi "passargli" l'intervallo in cui va cercata l'ultima riga usata; ma la ricerca tu devi farla su foglio B, quindi E' SBAGLIATO l'uso di RigaVuota = getLast(Sheets("A").Range("A:A")) + 1 e invece deve essere
Codice: Seleziona tutto
RigaVuota = getLast(Sheets("B").Range("A:A")) + 1


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16511
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: copia incolla

Postdi rombotuono » 02/06/19 19:30

grandissimo
Anthony
funziona alla grande
grazie
rombotuono
Utente Junior
 
Post: 30
Iscritto il: 09/11/18 17:27


Torna a Applicazioni Office Windows


Topic correlati a "copia incolla":

Copia valore se
Autore: BG66
Forum: Applicazioni Office Windows
Risposte: 6

Chi c’è in linea

Visitano il forum: Nessuno e 22 ospiti