|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2007
Messaggi: 72
|
[V.B.] Macro Excel per trova-sostituisci
Ciao,
devo implementare una macro che trovi e sostituisca delle parole. Ad esempio: Nella cella A-1 c'è la frase " scarpe simpson colore red " Nella cella A-2 c'è la frase " scarpe simpson colore blue " Nella cella A-3 c'è la frase " maglia redstill colore red " Nella cella A-4 c'è la frase " maglia simpson colore blue " La macro deve trovare le parole "red " e "blue " (cercando in tutto il foglio) e sostituire con "rosso " e "blu " considerando anche lo spazio dopo la parola per evitare la sostituzione di parole composte (come redstill). Quindi dopo l'esecuzione della macro il risultato deve essere: Nella cella A-1 la frase " scarpe simpson colore rosso " Nella cella A-2 la frase " scarpe simpson colore blu " Nella cella A-3 la frase " maglia redstill colore rosso " Nella cella A-4 la frase " maglia simpson colore blu " So che esiste già il trova-sostituisci in excel ma siccome sono molte le parole da sostituire e sempre le stesse preferirei implementare una macro. Spero di essere stato chiaro ![]() Grazie mille Daniele
__________________
Intel Q6600 G0 @3,2 ghz with Scythe Infinity // Asus P5K-E Wi-Fi // Asus 8800 gts 640mb // 2gb 2x1gb ddr2 800mhz a-data vitesta extreme // 2x western digital caviar SATA2 raid 0 // Masterizzatore Pioneer DVD-RW DL // Masterizzatore LG CD // OCZ 600W StealthXStream // ![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
![]() Significa come minimo 256x65'536 = 16'777'216 di celle. E non penso tu debba automatizzare un elenco di 16 milioni di voci. Forse intendi un certo range preciso... ![]() |
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Oct 2007
Messaggi: 72
|
![]() ![]() Comunque eventualmente il range lo adatto dopo se la macro impiega troppo tempo ![]() Grazie mille Daniele
__________________
Intel Q6600 G0 @3,2 ghz with Scythe Infinity // Asus P5K-E Wi-Fi // Asus 8800 gts 640mb // 2gb 2x1gb ddr2 800mhz a-data vitesta extreme // 2x western digital caviar SATA2 raid 0 // Masterizzatore Pioneer DVD-RW DL // Masterizzatore LG CD // OCZ 600W StealthXStream // ![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
![]() Detesto le "meteore", ma dato che è codice di tre settimane fa, lo posto ugualmente... : Codice:
Dim cella As Range For Each cella In Range("A1:L1000") Dim strCella As String strCella = cella.Text Dim parole() As String parole() = Split(strCella) Dim nuovaStr As String nuovaStr = "" For i = 0 To UBound(parole) Select Case parole(i) Case "blue" parole(i) = "blu" Case "red" parole(i) = "rosso" 'Case ... End Select nuovaStr = nuovaStr & parole(i) & " " Next cella.FormulaR1C1 = nuovaStr Next ![]() Ed è anche l'ultima volta che ti rispondo se lasci passare altre 3 settimane ! ![]() |
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Oct 2007
Messaggi: 72
|
hai ragione ti chiedo scusa, purtroppo ho dovuto accantonare un attimo il progetto per fare un altro lavoro, in ogni caso hai ragione
Grazie mille Daniele
__________________
Intel Q6600 G0 @3,2 ghz with Scythe Infinity // Asus P5K-E Wi-Fi // Asus 8800 gts 640mb // 2gb 2x1gb ddr2 800mhz a-data vitesta extreme // 2x western digital caviar SATA2 raid 0 // Masterizzatore Pioneer DVD-RW DL // Masterizzatore LG CD // OCZ 600W StealthXStream // ![]() |
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Oct 2007
Messaggi: 72
|
Quote:
![]() ![]() Supponendo che volessi che mettere il valore da sostituire nella colonna successiva, stessa riga, cosa dovrei fare? Esempio: cella A1 contiene: t-shirt blue dopo aver eseguito la macro cella A1 contiene: t-shirt blue cella B1 contiene: blu ![]() Grazie mille Daniele
__________________
Intel Q6600 G0 @3,2 ghz with Scythe Infinity // Asus P5K-E Wi-Fi // Asus 8800 gts 640mb // 2gb 2x1gb ddr2 800mhz a-data vitesta extreme // 2x western digital caviar SATA2 raid 0 // Masterizzatore Pioneer DVD-RW DL // Masterizzatore LG CD // OCZ 600W StealthXStream // ![]() |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
ammazza che "resuscita topic" di classe :P
cmq pensaci un minimo, non é tanto difficile ![]() |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Sì. infatti. ![]() |
|
![]() |
![]() |
![]() |
#9 | |
Member
Iscritto dal: Oct 2007
Messaggi: 72
|
Quote:
![]() si il range di riferimento è A1:A1000 Grazie mille ![]() Daniele
__________________
Intel Q6600 G0 @3,2 ghz with Scythe Infinity // Asus P5K-E Wi-Fi // Asus 8800 gts 640mb // 2gb 2x1gb ddr2 800mhz a-data vitesta extreme // 2x western digital caviar SATA2 raid 0 // Masterizzatore Pioneer DVD-RW DL // Masterizzatore LG CD // OCZ 600W StealthXStream // ![]() |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
In tal caso :
Codice:
Dim cella As Range For Each cella In Range("A1:A1000") Dim strCella As String strCella = cella.Text Dim parole() As String parole() = Split(strCella) For i = 0 To UBound(parole) Select Case parole(i) Case "blue" Range("B" & cella.Row).FormulaR1C1 = "blu" Exit For Case "red" Range("B" & cella.Row).FormulaR1C1 = "rosso" Exit For 'Case ... End Select Next i Next cella ![]() |
![]() |
![]() |
![]() |
#11 | |
Member
Iscritto dal: Oct 2007
Messaggi: 72
|
Quote:
![]() ![]() ![]() ti farò un regalo un giorno ![]() Grazie ancora Daniele
__________________
Intel Q6600 G0 @3,2 ghz with Scythe Infinity // Asus P5K-E Wi-Fi // Asus 8800 gts 640mb // 2gb 2x1gb ddr2 800mhz a-data vitesta extreme // 2x western digital caviar SATA2 raid 0 // Masterizzatore Pioneer DVD-RW DL // Masterizzatore LG CD // OCZ 600W StealthXStream // ![]() |
|
![]() |
![]() |
![]() |
#12 |
Junior Member
Iscritto dal: Aug 2012
Messaggi: 1
|
Excel ...... MACRO
Ciao Marco piacere ..... scusami se ti disturbo ma facendo una navigata qui su questo sito ho letto la tua risposta inerente ad una macro excel .....
Mi potresti aiutare? Il motivo della mia mail è proprio questo, cioè mi manca un piccolo dettaglio per risolvermi un GRANDISSIMO problema. MACRO ...... Fondamentalmente si riferisce al cerca e sostituisci ..... cioè quando registro una macro e gli segnalo di cercare (per poi sostituire) una parola, lui ricerca sempre la stessa parola inserita quando l'avevo registrata (non so se mi sono spiegato) cioè il mio intento è quello che l'utente finale deve immettere una parola nella cella e poi la macro deve cercare e sostituire quella parola non richiamare la parola da me registrata al momento della creazione della macro. ti faccio un esempio: parola da cercare (CANE) aziono la macro che fa il suo lavoro (cioè quella di sostituire la parola CANE), in un secondo momento voglio che mi cerca (GATTO) ma la macro cerca sempre la stessa parola CANE .....!!! Spero di essere stato chiaro ..... Mi potresti aiutare?Ovviamente la mia segnalazione è anche per gli utenti che leggono!!! Grazie ciao a presto |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:02.