ripristinare tabella di riempimento con formule, dopo cancellazione righe

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
saverio1966
00domenica 14 luglio 2019 19:39
Buonasera a tutti,
chiedo per piacere il Vs. aiuto.
In un foglio di lavoro ho la tabella3 che si riempie per mezzo di
formule con il seguente range: (m3:y52). Si, sono 50 righe che partono da riga 3 per altrettanti records. La tabella originaria tabella1 e' posta in un altro foglio.
Per ovviare al #rif, ho ricavato un sistema efficace per cancellare i records da tabella3.
La routine che cancella i records partendo dall'ultimo record presente e' :
-----------
Sub PULITAB3()
Dim CONTAB2 As Integer
Dim RIGA3 As Integer
'in contabella e' riportato il numero EFFETTIVO di record presenti nella Tabella3 del Foglio_inizio
CONTABELLA = Foglio1.Cells(2, 26)
CONTAB2 = CONTABELLA + 1 ' contab2 e' la costante che indica la riga che occupa l'ultimo record inserito nella tabella3
Rem Procedo con l'eliminazione records tabella3 partendo dall'ultimo record presente in tabella3 andando indietro fino a riga3.
For RIGA3 = CONTAB2 To 3 Step -1

With Sheets(newsheet) ' in newsheet c'e' il nome Foglio_inizio
Set RigaDaEliminare = .Range("M" & RIGA3, "Y" & RIGA3)
End With

RigaDaEliminare.Delete XlDeleteShiftDirection.xlShiftUp
Next RIGA3
----------
La mia esigenza e' la seguente: con la suddetta routine, si effettua correttamente la cancellazione di tutti i records, pero' il mio range
non sara' piu' (m3:y52) ma si impoverisce di n. righe cancellate ad es. cancello 7 records e il mio range sara' di conseguenza ("m3:y45").
Se l'operatore inserisce 50 records nella tabella1, la tabella3 si riempie fino al rigo 45 e i restanti 7 records la tabella3 non me li
visualizza: il riempimento e' aggiornato fino al rigo 45.
In pratica Vi chiedo: a mano a mano che vengono cancellati i records in tabella3, bisognerebbe ripristinare cio' che viene cancellato con un rigo nuovo.
Come si puo' ovviare secondo voi?
E' ovvio che l'operatore NON DEVE allungare la tabella3 manualmente ma "trovare" sempre il lavoro gia' fatto dallo sviluppatore.io mi immagino sempre che l'operatore non e' "padrone" dello strumento(il pc).
Grazie per la pazienza.
saverio



Marius44
00lunedì 15 luglio 2019 07:44
Ciao
In assenza di un file sul quale lavorare, la butto lì come tentativo.

Ma perchè utilizzare
RigaDaEliminare.Delete XlDeleteShiftDirection.xlShiftUp

In realtà, vuoi che la tabella rimanga invariata come numero di righe e, quindi, sarebbe meglio utilizzare

RigaDaEliminare.ClearContents

e, poi, ripristinare le formule nella riga cancellata.

Sempre se ho capito bene cosa vuoi fare. Ciao,
Mario
federico460
00lunedì 15 luglio 2019 09:49
ciao
ciao Marius


Per ovviare al #rif



scusa ma senza fare macro non conviene
usare =SE.ERRORE(formula;"")
rimangono le righe e le formule
o ho capito male?

senza file si va a tentoni
saverio1966
00lunedì 15 luglio 2019 10:32
Buongiorno Marius,
GRAZIE per la risposta.
non ero a conoscenza che avrei potuto usare anche clearcontents. nel pomeriggio lo provo e ti so dire.
ma tu mi assicuri che cosi facendo, nel rigo pulito,la formula resterà al suo posto?
faccio la prova e poi ti aggiorno.
Grazie mille ancora.
la tua seconda risposta: le formule nei campi sono impostate cme dici tu.
nel pomeriggio ti sapro dire anche su questo quesito.
federico460
00lunedì 15 luglio 2019 12:30
ciao
Saverio
leggi bene🙄


RigaDaEliminare.ClearContents

e, poi, ripristinare le formule nella riga cancellata.



alfrimpa
00lunedì 15 luglio 2019 14:14
ClearContents cancella il contenuto di una cella quindi anche le formule.
saverio1966
00lunedì 15 luglio 2019 17:06
buonasera,
caro marius,
io mi arrendo.
ho seguito alla lettera cio ke mi hai detto:
ho sostituito la riga del Delete con clearcontents.
Operazione pulizia perfetta.
Ma poi, dopo la NEXT RIGA3
ho alternato autofill, fillup e filldown. niente.
Le prime righe della tabella3, quelle con dei valori, senza formule, le successive tutto ok.
per le tre miniroutine ho utilizzato gli esempi del help della sezione del vba.
nessun risultato.
perche?
Marius44
00lunedì 15 luglio 2019 17:10
Re:
Ciao
Se rileggi ciò che avevo scritto


e, poi, ripristinare le formule nella riga cancellata.


forse non hai fatto tutto alla lettera.
Come dice giustamente alfrimpa (ciao Alfredo) quel comando cancella tutto (anche le formule che dovrai ripristinare, magari con un copia/incolla - sempre con VBA - da una riga intonsa)

Ciao,
Mario


saverio1966
00lunedì 15 luglio 2019 17:57
Non so come fare.
Questo fatto di copia e incolla da una riga intonsa non è facile PER ME.
saresti piu dettagliato x piacere?
E poi una riga presa da dove.... Devo considerare che m3:y3 è un range di tutte formule, un intervallo di dati presente solo in tabella3.
E se capitasse che nn sono 7 records ma tutti e 50 che faccio?
mi avete parlato di ripristinare....

federico460
00lunedì 15 luglio 2019 18:18
saverio
fai una copia del file
con dati fasulli e vediamo
o almeno posta le formule
alfrimpa
00lunedì 15 luglio 2019 18:38
Saverio66 la cosa più importante quando si scrive sui forum su Excel, oltre alla descrizione del problema su cui si chiede aiuto, è l'allegare un file di Excel di esempio (con dati non sensibili) dove si mostra (inserendolo a mano) il risultato che si desidera ottenere.
saverio1966
00lunedì 15 luglio 2019 19:24
BuonaserA alfredo e a tutti,
si mi hai convinto.
Appena torno a casa allego il file.
devo disabilitare le routine x le pwd.
ovviamente farò in modo tale ke la procedura che mi interessa abbia il clearcontents come istruzione.
Grazie sempre x la vs. pazienza.
saverio
alfrimpa
00lunedì 15 luglio 2019 19:35
Non è un problema di convincere o meno ma chi volesse riponderti e quindi aiutarti ha bisogno di uno scenario concreto (file) su cui lavorare.

In mancanza che fa? Se lo inventa?

P.S. La raccomandazione vale per tutte le discussioni che eventualmente aprirai in futuro.
saverio1966
00lunedì 15 luglio 2019 20:38
RIPRISTINO TABELLA
eccomi buonasera, vi allego il file cartel1-copia.rar
Per accedere alla procedura incriminata, sul pannello di controllo
clikkare sul pulsante AZZERAMENTO TABELLA DIPENDENTI
grazie mille
SAVERIO
Marius44
00martedì 16 luglio 2019 06:37
Buongiorno
Ho scaricato il file (e che file!!!! [SM=g27833] ) ed ho tentato di capire cosa non va. Riscontro le seguenti problematiche:
a) quando apro il file mi dice che nel mio PC manca un oggetto e che quindi non è possibile caricarlo;
b) ho individuato la macro incriminata (Sub PULITAB3) che fra le altre righe contiene Set RigaDaEliminare = .Range("M" & RIGA3, "Y" & RIGA3)
c) se tento di lanciare la macro (dall'Editor di VBA) mi dice:
"Errore di compilazione. Impossibile trovare il progetto o la libreria" e mi evidenzia RigaDaEliminare
d) noto che in una riga c'è scritto che stai per eliminare una riga dalla Tabella3 che, dall'elenco, dovrebbe essere in Foglio1!M3:Y52
e) il Foglio1 è protetto (e non voglio individuare la psw per togliere la protezione).

Tutto ciò premesso, potresti procedere in questo modo:
1) Setta la Tabella3 dalla riga 4 fino alla 53 e nascondi la riga 3
2) nella riga 3 lascia le formule che, suppongo, ci stanno
3) quando esegui la macro che cancella i valori, DOPO copi/incolli la riga 3 nella riga appena cancellata, facendo attenzione se ci sono riferimenti assoluti (altrimenti sballa tutto).

Non posso dirti altro.
Buona giornata,
Mario
saverio1966
00martedì 16 luglio 2019 07:29
Buongiorno a tutti
questa rognache mancano le librerie mi fa impazzire.
le rogne che avete risvontrato è perche manca la libreria e il file del calendario.
nn carica il calendario e tutta la compilazione va in malora.
vi rimando oggi pomeriggio un file SENZA la procedura che richiama il calendario.
Anche perche la spiegazione che ho appena letto ci ho capito poco.
grazie ancora
saverio
saverio1966
00martedì 16 luglio 2019 07:48
Specifico meglio.
Nel menu ce la procedura che richiama l uso del calendario.
nel vs. excel nella sez. sviluppo e menu riferimenti, MANCA il flag sulle librerie del calendario.
nn caricando il file .ocx apposito, in fase di compilazione, il debug rileva oggetti mancanti.
A me funziona tutto e bene credetemi.
cmq oggi pom. se nn trovate come ovviare, vi rimando. il mio progettino SENZA la procedura che richiama il calendario.
Marius44
00martedì 16 luglio 2019 08:49
Buongiorno Saverio
Non reputo necessario l'invio di un altro file.

A mio avviso ti ho indicata la procedura per copia/incollare le formule presenti in una riga in un'altra.

Ciao,
Mario
saverio1966
00martedì 16 luglio 2019 09:17
ok mario,
io però rileggendo bene sn parecchio perplesso sul Tuo punto 3.
se incollo la riga 3 nella riga apena pulita dei valori, avrà le formule Non Sicuramente del rigo di competenza.e quindi al tuo discorso manca un passaggio.
Se cancello il rigo 53 o il rigo generico N, e copio rigo 3 in rigo 53 o N, secondo come suggerisci tu, le formule non saranno mai le stesse.
Ho puntualizzato che la procedura di azzeramento come tutte le altre NON devono mettere l'operatore in situazioni estreme, in condizione di operare manualmente sulla tabella.
Ecco spiegata la mia perplessità.
poi il comando in vba di copia rigo 3-in rigo N, deve essere un cmd in vba che Dovrebbe copiare formattazione celle e formule dell'intero range m3:y3, comando vba che non so come e dove pescare.
cmq proverò ma ....la mia perplessità te l ho spiegata e ....dimmi tu.
GRAZIE
saverio
Marius44
00martedì 16 luglio 2019 10:18
Ciao
come ti ho detto, non ho visto le formule delle righe della tabella3 e perciò ho aggiunto

facendo attenzione se ci sono riferimenti assoluti (altrimenti sballa tutto)

.

Eventualmente il copia/incolla esegue ANCHE la formattazione (testo, colore, ecc) a meno che il tutto non rivenga da Formattazione condizione. Le cose cambiano (e di parecchio) ma si può fare lo stesso.

Ciao,
Mario
saverio1966
00martedì 16 luglio 2019 11:11
Caro Mario io pero il file l ho mandato, le formule si vedono.
e nn posso andare avanti con un EVENTUALMENTE.
la soluzione la vedo lontana e farraginosa.
stiamo andando a tentoni.
Si è tralasciato a priori la Delete x andarsi a infognare in un cul de sac.
io vorrei alla routine del clearcontents, associare un loop FLUIDO che l operatore(che nn è lo sviluppatore , ma l utente finale) nn deve mai metter mani su nessuna tabella.i pulsanti del menu procedure gli devono consentire di avere tutto pronto e nn che devono chiamare poi lo sviluppatore ogni 5 minuti.
Se la soluzione nn c è, pazienza.
pensavo meglio.
Grazie lo stesso.
saverio1966
00martedì 16 luglio 2019 17:23
buonasera
chiedo qllo che sto per scrivere, rivolto agli amministratori del forum.
Siccome ho aperto una discussione che non ha fruttato alcun risultato positivo,
POSSO migrare in un altro sito per sottoporre il medesimo quesito, un sito simile al Vostro, magari ricevo un aiuto piu generoso
aspetto un vs. cortese riscontro.
Grazie
Saverio
saverio1966
00mercoledì 24 luglio 2019 18:08
Buonasera volevo solo dire che HO RISOLTO il quesito oggetto della discussione in oggetto.
siccome credo, se non ricordo male, che bisogna chiudere UFFICIALMENTE la discussione, CHIEDO per piacere ad ALFRIMPA se puo' per piacere provvedere.
Grazie.
saverio
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 12:41.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com