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

salvare contenuto e indirizzo cella

Ultimo Aggiornamento: 12/01/2016 12:16
Post: 1
Registrato il: 18/12/2015
Città: ACQUI TERME
Età: 54
Utente Junior
2010
OFFLINE
12/01/2016 11:02

Buongiorno, mi sono iscritto al forum perche' mi sono appassionato da poco al mondo VBA, e ora mi trovo davanti a un problema che non riesco a risolvere.
espongo il mio progetto e quindi la mia domanda:
ho un file che aggiorno settimanalmente composto da N^ colonne e N^ righe ( sono arrivato a circa 4500 righe).all'interno sono presenti dei dati che vado a cercare con un pulsante "Cerca". una volta trovato il dato che cerco ( che puo' essre presente in piu' celle del mio foglio ),vado a scrivere un flag "X" in colonna "A" per applicare un filtro e visualizzare solo le righe che contengono il dato cercato.
in seconda battuta ho implementato la macro con una operazione che mi evidenzia di rosso il dato cercato.
Ora mi blocco..... il mio problema e': dovrei salvare il contenuto della cella prima di evidenziare il dato, per consentirmi di riportarlo come era in origine prima di effettuare le modifiche.
ho fatto la prova salvando su un'altro foglio tutta la tabella ma fino a che i dati sono pochi nessun problema nel momento che arrivo a 4500 righe diventa un salvataggio immane.......per questo vorrei salvare solo la cella modificata per poterla riportare al suo posto prima di effettuare una seconda ricerca.
ho allegato il file
ringrazio per l'attenzione
[Modificato da franco.c69 12/01/2016 11:22]
Post: 2
Registrato il: 18/12/2015
Città: ACQUI TERME
Età: 54
Utente Junior
2010
OFFLINE
12/01/2016 11:48

il file non lo carica cosi' ho copiato il codice, chiedo scusa ma non sapevo come fare


Sub FLAG_Scrivi(DatoDaCercare As Variant) ' stabilisco il nome della routine e il relativo argomento

Dim r As Range ' dichiaro r come variabile range
Dim s As String ' dichiaro s come variabile stringa
Dim i As Integer ' dichiaro i come variabile integer
Dim n As Integer ' dichiaro n come variabile integer
Dim a As Variant ' dichiaro a come variabile variant


With Worksheets(cst_wsFIND)
'nomino l'istruzione with che mi permette di richiamare l'oggetto con il carattere punto

n = Len(DatoDaCercare)
'associo alla variabile "n" il numero di caratteri della variabile DatoDaCercare

Set r = .Cells.Find(DatoDaCercare, LookIn:=xlValues)
' attribuisco alla variabile "r" il risultato della ricerca del DatoDaCercare

s = r.Address
'associo alla variabile "s" l'indirizzo della cella "r" che contiene il DatoDaCercare


a = InStr(Range(s), DatoDaCercare)
'assegno alla variabile "a" la posizione all'interno del range indicato della stringa DatoDaCercare


Range(s).Characters(Start:=a, Length:=n).Font.ColorIndex = 3
'a partire dalla posizione indicata dala variabile "a" e per il numero di caratteri indicato da "n"
'modifico il colore dei caratteri


If Not r Is Nothing Then
'se r e' diverso da zero


Do
.Range(cst_colFLAG & r.Row).Value = cst_FLAG
'nella colonna "A" alla riga corrispondente la cella che contiene il DatoDacercare
'scrivo il flag "X"


Set r = .Cells.FindNext(r)
'proseguo la ricerca all'interno delle celle

a = InStr(r, DatoDaCercare)


r.Characters(Start:=a, Length:=n).Font.ColorIndex = 3



Loop While Not r Is Nothing And s <> r.Address
' ciclo l'operazione di scrittura del carattere "X"
'e della modifica al colore del dato cercato
'fino a quando non si verifica la condizione di
'r non e' valore "0" e "s" diverso da r.Address


End If

End With


End Sub
Post: 4.653
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
12/01/2016 11:57

File
Ciao prova adesso ad allegare il file, comprimilo con zip o rar, non ti faceva allegare il file perchè dovevi almeno inserire un post.

comprimerlo perchè non riconosce il formato xlsx-xlsm-etc..

indica cosa desideri e come ed anche dove copiare i dati.

togli dati sensibili.

Ciao By Sal [SM=x423051]

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 3
Registrato il: 18/12/2015
Città: ACQUI TERME
Età: 54
Utente Junior
2010
OFFLINE
12/01/2016 12:16

grazie
i dati che vorrei salvare potrebbero benissimo essre salvati in un "Foglio2" . quello che cerco e': se il dato e' presente ad es in cella "A7" e "C8" prima di evidenziare salvi il contenuto in un altro foglio, e poi in un secondo momento riportare al suo posto di origine la cella salvata.
faccio presente che nel fil esempio ho inserito solo numeri, in realta' le celle contengono molti dati e caratteri, tra cui il dato che cerco, ecco spiegato il motivo di evidenziare.
grazie
ho provato a comprimere il file ma mi dice che 4 MB sono troppi
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 02:15. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com