Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Cancellazione Involontaria

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

Cancellazione Involontaria

Postdi Maury170419 » 22/02/18 16:20

Ciao a tutti mi chiamo Maurizio
E il mio problema e questo : Spulciando qua e la su internet ho trovato questa Procedura che farebbe proprio al caso mio.
Però nel metterlo in funzione , mi sono accorto che pur funzionando a meraviglia; Intendo dire che nel bene e nel male il suo lavoro lo svolge egregiamente.
Ha solo un piccolo difetto che io con tutta la mia buona volontà non riesco a risolvere.
E il problema e questo : Quando mando in funzione tale procedura esso mi cancella l'intera riga da copiare , per qui va da sé che in questo modo non va bene.
Per qui non c'è un sistema per fare si che non cancelli nulla , ma mi copi solo l'area interessata ; E in più non vda mai a capo trà una copiata e l'altra, ma agisca sempre in quella riga li !!!!
Questo e il Listato Completo :
Codice: Seleziona tutto
Sub CopiaSe()
UR1 = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For RR1 = UR1 To 1 Step -1
If UCase(Worksheets("Foglio1").Range("B" & RR1).Value) = "SI" Then
Worksheets("Foglio1").Rows(RR1).Cut Destination:=Sheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Worksheets("Foglio1").Rows(RR1).Delete
End If
Next RR1
End Sub


Grazie
Maury170419
Utente Junior
 
Post: 96
Iscritto il: 31/10/16 09:05

Sponsor
 

Re: Cancellazione Involontaria

Postdi wallace&gromit » 22/02/18 16:38

Ciao Maurizio,
dai, secondo me ci arrivi se studi bene il codice.
Vedrai che la parte con delete cancella qualcosa e la parte con offset fa sì che ti sposti in una cella nuova. Modifica o elimina queste e avrai la soluzione.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1921
Iscritto il: 16/01/12 14:21

Re: Cancellazione Involontaria

Postdi Anthony47 » 22/02/18 23:47

W&G ha visto la riga che contiene Rows(RR1).Delete, ma gli e' sfuggito il comando .Cut

Quindi:
-trasforma il .Cut in .Copy
-elimina la riga con .Rows(RR1).Delete

Non ho pero' capito il significato di questa seconda richiesta
E in più non vda mai a capo trà una copiata e l'altra, ma agisca sempre in quella riga li !!!!
Puoi spiegare meglio?
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: 16453
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cancellazione Involontaria

Postdi Maury170419 » 23/02/18 01:45

Ciao Anthony il discorso e questo :
Ho provato a modificare il tutto , Come mi hai suggerito tu
E diciamo che attualmente le cose vanno un pochino meglio
Però c'è sorto un altro problema che e questo : Se dai un occhiata a questa immagine che io ti ho Inserito adesso, non puoi non accorgerti di questo.
Che è vero che non mi cancella più nulla , come faceva prima; Però adesso non solo sé io lo eseguo più volte mi copia nuovamente il tutto nella riga sottostante .
Ma mi copia anche la formattazione che le ho dato al foglio chiamiamolo di (Partenza); Ma me lo faceva anche la prima volta che lo avevo usato .
In quanto lo avevo già capito da me che il termine (Cut) o (Delete) cancellano ogni cosa ; Però ho preferito inserirti il listato cosi come lo avevo trovato io .
Però il problema che non sono mai riuscito a risolvere era proprio la formattazione del foglio di partenza.
Per qui per farla breve : Non c'é un altro sistema per ottenere la stessa cosa ma senza formattazione alla Destinazione.
E Poi si potrebbe evitare di farlo andare sempre a Capo ogni volta che lo provo ho lo mando in esecuzione .
Grazie Saluti sinceri da A.Maurizio

Immagine
Maury170419
Utente Junior
 
Post: 96
Iscritto il: 31/10/16 09:05

Re: Cancellazione Involontaria

Postdi Anthony47 » 23/02/18 15:38

Allora tu vuoi copiare solo i valori...
Per questo solstituisci la riga
Worksheets("Foglio1").Rows(RR1).Copy Destination:=Sheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Con
Codice: Seleziona tutto
Worksheets("Foglio1").Rows(RR1).Copy
Sheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlValues


Ora, se non cancelliamo la riga dopo che e' stata copiata, e' normale che la stessa riga venga copiata nuovamente se la macro viene rilanciata senza altre modifiche.
Per evitare cio' si potrebbe intervenire sulla colonna B, quella che se contiene SI determina la copia della riga. Ad esempio possiamo, dopo aver copiato la riga, cancellare il SI, oppure (meglio) trasformarlo in "(SI)" o un'altra stringa che sia diversa da SI e che abbia una funzione informativa. Ad esempio:
Codice: Seleziona tutto
Worksheets("Foglio1").Rows(RR1).Copy
Sheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlValues
Worksheets("Foglio1").Cells(RR1, "B").Value = "(SI)"


Infine non capisco questa richiesta:
E Poi si potrebbe evitare di farlo andare sempre a Capo ogni volta che lo provo ho lo mando in esecuzione
(che tra l'altro mi sembra una riformulazione di quanto gia' non avevo capito, vedi mio precedente messaggio)

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: 16453
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cancellazione Involontaria

Postdi Maury170419 » 26/02/18 03:09

Ciao Anthony come stai !
Ascolta hai ragione quando dici più volte che non Capisci quando scrivo , Cito :

E Poi si potrebbe evitare di farlo andare sempre a Capo ogni volta che lo provo ho lo mando in esecuzione

Ma sé avessi guardato attentamente le Immagini ho l'immagine che ho inserito nel post precedente.
Ti saresti accorto che tutte le volte che ripeto l'operazione di Copiatura di un dato , sul foglio 2 non tiene sempre quella posizione , ma prende la riga sottostante.
Però : Volontariamente o Involontariamente , mi hai già risposto tu ; Dicendomi che ; Cito :

" Ora, se non cancelliamo la riga dopo che e' stata copiata, e' normale che la stessa riga venga copiata nuovamente se la macro viene rilanciata senza altre modifiche "

Per qui il Problema e stato risolto , ora ho capito tutto.
Resta però sempre il fatto della formattazione che avviene quando copio i dati dal foglio 1 al foglio 2 ; Quella Rimane sempre.
Però come tu mi hai insegnato più volte ; Bisogna sempre cimentarsi più volte e mai arrendersi per diventare bravi o Capaci.
Per qui forse ho già anche trovato la soluzione a questo problema , per qui Grazie infinite.

Per il resto Ti dico nuovamente grazie perché : Non solo sei un grande ; Non solo hai sempre dimostrato di avere tanta pazienza nei miei confronti ; Ma anche perché il tuo ultimo consiglio va benissimo era proprio quello che stavo cercando di fare io.
Sinceri Saluti e Buon Inizio Settimana ( Un Po' Freddina devo dire) ma va bene cosi ; Ciao e alla prossima
Saluti da A.Maurizio
Maury170419
Utente Junior
 
Post: 96
Iscritto il: 31/10/16 09:05


Torna a Applicazioni Office Windows


Topic correlati a "Cancellazione Involontaria":


Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti