Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

macro copia e incolla valori

Ultimo Aggiornamento: 08/03/2019 16:36
Post: 1
Registrato il: 07/03/2019
Città: PIACENZA
Età: 50
Utente Junior
office 365
OFFLINE
08/03/2019 00:37

buonasera a tutti.
io dovrei creare una macro che mi copia ed incolla il valore delle penultime 5 celle (in quanto è presente una formula) delle colonne C:D:E non vuote, sempre allo stesso posto.
Ogni giorno il file viene implementato di un dato nella colonna C,D,E

es.

col. A col. C col. D col. E
01/01/19 1 2 3
02/01/19 c1+1 D1+1 E1+1
03/01/19 c2+1 D2+1 E2+1
04/01/19 c3+1 D3+1 E3+1
05/01/19 c4+1 D4+1 E4+1
06/01/19 c5+1 D5+1 E5+1

dopo aver eseguito la macro il risultato dovrebbe essere questo:

col. A col. C col. D col. E
01/01/19 1 2 3
02/01/19 2 3 4
03/01/19 3 4 5
04/01/19 4 5 6
05/01/19 5 6 7
06/01/19 c5+1 D5+1 E5+1

ed il giorno dopo, dopo aver eseguito la macro avere questo risultato:

col. A col. C col. D col. E
01/01/19 1 2 3
02/01/19 2 3 4
03/01/19 3 4 5
04/01/19 4 5 6
05/01/19 5 6 7
05/01/19 6 7 8
06/01/19 c6+1 D6+1 E7+1

e così via..

spero di non aver fatto confusione.

vi ringrazio anticipatamente


Post: 3.290
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
08/03/2019 10:04

Buona giornata, LuigiB.
anche se non è una mia prerogativa, per il futuro, ti consglio di allegare sempre un File, senza Dati sensibili, con alcuni Record significativi già inseriti e chiarissi ciò che desideri ottenere.
Questo eviterebbe a chi desidera aiutarti dover ricostruire una probabile struttura con il rischio di non centrare l'obiettivo.

Ciò premesso; @luigib., scrive:


io dovrei creare una macro che mi copia ed incolla il valore delle penultime 5 celle (in quanto è presente una formula) delle colonne C:D:E non vuote, sempre allo stesso posto.
Ogni giorno il file viene implementato di un dato nella colonna C,D,E



Solo una domande, prima di proportri una possibile soluzione:
-    la sequenza:
01/01/19 1 2 3
02/01/19 2 3 4
03/01/19 3 4 5
04/01/19 4 5 6
05/01/19 5 6 7
05/01/19 6 7 8
06/01/19 c6+1 D6+1 E7+1

 non dovrebbe essere:
01/01/19 1 2 3
02/01/19 2 3 4
03/01/19 3 4 5
04/01/19 4 5 6
05/01/19 5 6 7
06/01/19 6 7 8
07/01/19 c6+1 D6+1 E6+1

o mi sbaglio?


Grazie dell'attenzione che potrai dedicarmi.




Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 1
Registrato il: 07/03/2019
Città: PIACENZA
Età: 50
Utente Junior
office 365
OFFLINE
08/03/2019 10:26

confermo il tuo.

ho commesso un errore di trascrittura
chiedo scusa e grazie ancora
Post: 3.291
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
08/03/2019 10:35

Buona giornata, LuigiB.

Grazie della tua attenzione.

Pensavo ad un Codice VBA di questo genere:

Option Explicit

Sub Test()
Application.ScreenUpdating = False
Dim NRc As Long, x As Long

    NRc = Range("A" & Rows.Count).End(xlUp).Row
        For x = NRc - 1 To NRc - 5 Step -1
            Range(Cells(x, 1), Cells(x, 5)).Copy
            Cells(x, 1).PasteSpecial Paste:=xlPasteValues
        Next x
            Application.CutCopyMode = False
Application.ScreenUpdating = True
    Cells(NRc + 1, 1).Select
End Sub


Ovviamente il Codice funziona solo se i Record inseriti sono almeno 6.



A disposizione.

Buon Lavoro

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 2
Registrato il: 07/03/2019
Città: PIACENZA
Età: 50
Utente Junior
office 365
OFFLINE
08/03/2019 12:41

Sei un MITO!!!! funziona perfettamente!!!!
Post: 3
Registrato il: 07/03/2019
Città: PIACENZA
Età: 50
Utente Junior
office 365
OFFLINE
08/03/2019 14:39

rimani sempre un mito!!! però mi sono accorto che alcune formule rimangono mi sembra ogni 5 copia incolla speciale ne rimangono 5 con le formule.
allego il file per semplicità

grazie ancora della pazienza!!
Post: 3.294
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
08/03/2019 15:49

Buon pomeriggio, LuigiB;
ti leggo solo ora.

Mi ero concentrato solo sui penultimi 5 Record.

Per allargare il Range d'azione, potresti provare con:

Option Explicit
 
Sub Test()
Application.ScreenUpdating = False
Dim NRc As Long
 
    NRc = Range("A" & Rows.Count).End(xlUp).Row
        Range(Cells(1, 1), Cells(NRc - 1, 5)).Copy
            Cells(1, 1).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
Application.ScreenUpdating = True
    Cells(NRc + 1, 1).Select
End Sub



A disposizione.

Buon Lavoro.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 4
Registrato il: 07/03/2019
Città: PIACENZA
Età: 50
Utente Junior
office 365
OFFLINE
08/03/2019 16:36

lo sto testando, e secondo me funziona correttamente
grazie ancora!
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
macro esportazione pdf nome file (9 messaggi, agg.: 25/08/2021 13:04)
macro seleziona range molto lenta (7 messaggi, agg.: 01/08/2022 20:00)
Crea Macro (11 messaggi, agg.: 31/08/2020 21:54)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 19:13. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com