Condividi:        

Macro Cerca Sostituisci Help

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

Macro Cerca Sostituisci Help

Postdi vecchiofrank » 02/09/09 18:46

Ciao a tutti!
Sono nuovissimo del forum, principiante VB e vecchissimo anagraficamente, quindi più plastico che elastico :)
Devo fare un CSV di dimensioni mostruose e sto cercando di evitare operazioni da "mulo".
Semplificando, nella prima colonna ho un elenco di nomi e nelle tre colonne successive codice HTML dove ho inserito XXX ogni dove dovrei mettere il nome che compare nella prima colonna.
Ovviamente ogni riga cambia nome ...

Mi auguro di essere stato chiaro nella richiesta, seguendo le indicazioni ho letto i topic precedenti ma non ho trovato ..., ho provato con le macro di excell e riesco a fare solo una riga, quando vado alla seconda mi da errore.

Per voi sarà quasi fastidioso risolvere un problemino simile, ... per me giorni di lavoro in meno!
Grazie.

vecchiofrank
vecchiofrank
Utente Junior
 
Post: 10
Iscritto il: 02/09/09 18:20

Sponsor
 

Re: Macro Cerca Sostituisci Help

Postdi Flash30005 » 02/09/09 20:22

Non ho compreso bene cosa devi fare, se un file .Csv nuovo avendo già un file di excel
oppure devi sostituire le xxx con il nome che trovi nelle altre colonne, quali?
invia un tuo file come esempio
comunque ti invio questa macro
Codice: Seleziona tutto
Sub CreaFileCsv()
Dim Aggr As String
URN = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
Open "C:\FileProva.csv" For Append As #1
For R = 1 To URN
    Aggr = Worksheets("Foglio1").Cells(R, 1).Value
    Print #1, Aggr
    Next R
Close #1
End Sub

La macro crea un file .csv nella root di C:\ con nome FileProva.csv prendendo i dati dalla colonna "A" del "Foglio1"
spero che aiuti a scaldare la plastica per renderla più elastica

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Cerca Sostituisci Help

Postdi vecchiofrank » 02/09/09 20:51

devo sostituire le xxx nelle colonne B-C-D con il nome presente nella colonna A ( e questa operazione per 3624 righe), poi, se ci riesco grazie a voi, porto le colonne B-C-D in CSV che ho già.

Ti ringrazio sia per l'interessamento che per l'augurio.
vecchiofrank

Pensavo di aver inviato risposta, ma non la vedo, quindi riposto e se per caso ce ne saranno due, scusatemi.
vecchiofrank
Utente Junior
 
Post: 10
Iscritto il: 02/09/09 18:20

Re: Macro Cerca Sostituisci Help

Postdi pietrol » 02/09/09 22:37

Ciao vecchiofrank
Sono nuovissimo del forum, principiante VB e vecchissimo anagraficamente, quindi più plastico che elastico

a parte il fatto che a leggerti non sembrerebbe tu sia "plastico", ritengo che l'importante sia non essere "di coccio" ;)
per il tuo problema, credo potresti risolvere così
ipotizzo che il tuo elenco sia sul foglio1 e cominci dalla riga 2
sul foglio2 in cella B2 copia la formula
Codice: Seleziona tutto
=SOSTITUISCI(Foglio1!B2;"xxx";Foglio1!$A2)

trascinala poi nelle colonna B e C e poi tutte e tre nelle righe sottostanti quanto basta
Una volta ottenuto l'elenco completo salvi il foglio di excel(non si sa mai)
poi File/Salva con nome, apri l'elenco "Tipo file" e scelgli il formato CSV
rispondi OK quando ti avvisa che salverà solo il foglio attivo.

Buon lavoro

ciao
pietrol
il lupo ululà, il castello ululì
pietrol
Utente Senior
 
Post: 270
Iscritto il: 07/01/09 14:34

Re: Macro Cerca Sostituisci Help

Postdi vecchiofrank » 03/09/09 10:49

Ciao Pietro,
il risultato giusto lo mostra solo in Foglio2 e mi sarebbe meglio avere l'elenco in Foglio2.
Ho provato a modificare, ma sono un pò .... di coccio!

Grazie

vecchiofrank
vecchiofrank
Utente Junior
 
Post: 10
Iscritto il: 02/09/09 18:20

Re: Macro Cerca Sostituisci Help

Postdi Anthony47 » 03/09/09 14:23

In E2
Codice: Seleziona tutto
=SOSTITUISCI(B2;"xxx";$A2)
Poi copi in largo e in lungo, come da istruzioni gia' ricevute.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19183
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro Cerca Sostituisci Help

Postdi pietrol » 03/09/09 17:18

Ciao vecchiofrank
il risultato giusto lo mostra solo in Foglio2 e mi sarebbe meglio avere l'elenco in Foglio2.

cosa intendi?
Io ho pensato che volessi i creare il file CSV con solo i dati corretti, per cui ti ho consigliato di andare sul foglio2.
Se invece vuoi esportare il "prima della cura" ed il "dopo la cura" tutto insieme usa sul Foglio1 la formula di Anthony.

ciao
pietrol
il lupo ululà, il castello ululì
pietrol
Utente Senior
 
Post: 270
Iscritto il: 07/01/09 14:34

Re: Macro Cerca Sostituisci Help

Postdi vecchiofrank » 03/09/09 21:59

grazie Antony e pietrol per le risposte ma sicuramente mi sono spiegato male ...
il file csv ce l'ho (68 colonne) e devo elaborarne 4 (con excel) in questo modo:

A B C D
2 pippo cod. html cod. html cod. html
3 pluto cod. html cod. html cod. html
4 etabeta cod. html cod. html cod. html

devo sostituire nei rispettivi cod. html solo dove ho lasciato "xxx" con il relativo nome della colonna A (x 3600 righe).

Abbiate pazienza ! :)
ciao
vecchiofrank
vecchiofrank
Utente Junior
 
Post: 10
Iscritto il: 02/09/09 18:20

Re: Macro Cerca Sostituisci Help

Postdi vecchiofrank » 03/09/09 22:01

mi ha spostato l'incolonnamento, peccato! era fatto meglio.

vecchiofrank
vecchiofrank
Utente Junior
 
Post: 10
Iscritto il: 02/09/09 18:20

Re: Macro Cerca Sostituisci Help

Postdi Flash30005 » 03/09/09 22:11

Scusa ma nell'esempio da te riportato dove sono gli xxx?
potresti fare uno screenshot (foto del video) del tuo foglio (solo una parte) e inviarlo?

Per fare lo screenshot premi i tasti ALT + Stampa (PrtSc), apri anche il Paint di windows, incolli e salvi come .jpg poi
ti devi servire di un server come questo
http://imageshack.us/
vai su sfoglia, selezioni l'immagine nel tuo Hd
premi Start Upload, attendi...
il server ti fornirà un link tipo: http//435wshu......jpg
copi il link che inserirai nel tuo post premendo, prima di incollare il link, il pulsante Img (posto nella barra dell'editor del post), alla fine nell'editor avrai qualcosa del genere:
[img]http//435wshu......jpg[/img]
Fai un anteprima del tuo post e se vedrai l'immagine inserita correttamente premi il tasto Invia per pubblicare il tuo post
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Cerca Sostituisci Help

Postdi Flash30005 » 03/09/09 22:24

Inserisci in un modulo questa macro
Codice: Seleziona tutto
Sub copiaA()
'UC = Worksheets("Foglio1").Range("E1").End(xlToLeft).Column
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For CC = 2 To 4
    For RR = 1 To UR
        If Cells(RR, CC).Value = "xxx" Or Cells(RR, CC).Value = "XXX" Then Cells(RR, CC).Value = Cells(RR, 1).Value
    Next RR
Next CC
End Sub

e avvia la macro

Per inserire una macro (se non l'hai mai fatto
dal foglio premi il tasto ALT e F11
poi dal Menu > Inserisci > Modulo e al suo interno incolli l'intero codice

Prova e fai sapere

Ciao

P.s Se il tuo foglio ha un altro nome sostituisci nella macro dove vedi "Foglio1" con "NomeTuoFoglio"
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Cerca Sostituisci Help

Postdi vecchiofrank » 03/09/09 22:52

ho inserito la macro (Foglio1 OK), salvato tutto, andato in Macro -> esegui
non da nessun errore ma non cambia le xxx con il nome

Sbaglio qualcosa?

Grazie.

vecchiofrank
vecchiofrank
Utente Junior
 
Post: 10
Iscritto il: 02/09/09 18:20

Re: Macro Cerca Sostituisci Help

Postdi vecchiofrank » 03/09/09 23:19

ecco lo screenshot richiesto Immagine
La colonna D non si vede ma è come le B e C, solo lunghissima.

Grazie ancora!

vecchiofrank
vecchiofrank
Utente Junior
 
Post: 10
Iscritto il: 02/09/09 18:20

Re: Macro Cerca Sostituisci Help

Postdi Anthony47 » 04/09/09 00:35

Immagino che in col D hai il codice html che mostra il testo di col B e abbia un link all' immagine di col C; e' nella formula di col D che devi inserire la funzione Sostituisci. Dovrebbe funzionare bene questa in D2:
Codice: Seleziona tutto
=SOSTITUISCI(LaTuaFormulaAttualeDiCellaD2;"xxx";$A2)
Poi copierai verso il basso.

Oppure applichi questa variante della macro di Flash alla col B:
Codice: Seleziona tutto
Sub copiaB()
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
  For RR = 1 To UR
    Cells(RR,2).value= Replace(Cells(RR,2).value, "xxx",Cells(RR,1).value)
  Next RR
End Sub

Io userei la soluzione formula

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19183
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro Cerca Sostituisci Help

Postdi vecchiofrank » 04/09/09 09:10

ciao Antony,
le colonne le hai giustamente interpretate come funzione... ma sono campi diversi fra loro.
col. A - nome
col. B - titolo in html (con 1 xxx)
col. C - link a foto (con 1 xxx)
col. D - descrizione in html (con 5 xxx)

=SOSTITUISCI(LaTuaFormulaAttualeDiCellaD2;"xxx";$A2)
non riesco ad inserire l'html in SOSTITUISCI perchè ogni volta che trova ; (esempio  ) ......
ho provato "descr. html" e 'descr. html' ma niente.
Come posso fare?

ciao
vecchiofrank
vecchiofrank
Utente Junior
 
Post: 10
Iscritto il: 02/09/09 18:20

Re: Macro Cerca Sostituisci Help

Postdi Flash30005 » 04/09/09 09:37

Se devi scansionare anche le colonne C e D la macro va modificata così
Codice: Seleziona tutto
Sub copiaC()
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For CC = 2 To 4
    For RR = 1 To UR
            Cells(RR, CC).value= Replace(Cells(RR, CC).value, "xxx",Cells(RR, 1).value)
    Next RR
Next CC
End Sub


L'importante è che ci siano gruppi (anche più di uno) di tre lettere x e non gruppi con 4 o 5 x

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Cerca Sostituisci Help

Postdi vecchiofrank » 04/09/09 10:18

naturalmente sono sempre xxx

Errore di run-time '9':
Indice non incluso nell'intervallo

Grazie Flash30005

ciao
vecchiofrank
vecchiofrank
Utente Junior
 
Post: 10
Iscritto il: 02/09/09 18:20

Re: Macro Cerca Sostituisci Help

Postdi Flash30005 » 04/09/09 10:48

Tieni presente che:
Il foglio dove hai i dati da modificare (le xxx) deve essere attivo e chiamarsi "Foglio1" altrimenti cambia quel nome nella macro

Le colonne interessate alla sostituzione sono B - C e D, che prendono il valore della colonna A inserendolo al posto di ogni gruppo di "xxx" (carattere minuscolo) contenute nelle celle dalla riga 1 all'ultima riga piena del foglio.

Una volta che hai il foglio attivo avvia la macro
quell'errore si presenta se all'avvio della macro hai attivo un altro foglio (o altro nome).

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Cerca Sostituisci Help

Postdi vecchiofrank » 04/09/09 11:39

PERFETTO !!!!!
mi hai risparmiato un grosso lavoro Flash, grazie!
... e grazie tutti.

un telematico abbraccio
vecchiofrank
vecchiofrank
Utente Junior
 
Post: 10
Iscritto il: 02/09/09 18:20

Re: Macro Cerca Sostituisci Help

Postdi ipsoware » 03/06/13 15:51

vecchiofrank ha scritto:Ciao a tutti!
Sono nuovissimo del forum, principiante VB e vecchissimo anagraficamente, quindi più plastico che elastico :)
Devo fare un CSV di dimensioni mostruose e sto cercando di evitare operazioni da "mulo".
Semplificando, nella prima colonna ho un elenco di nomi e nelle tre colonne successive codice HTML dove ho inserito XXX ogni dove dovrei mettere il nome che compare nella prima colonna.
Ovviamente ogni riga cambia nome ...

Mi auguro di essere stato chiaro nella richiesta, seguendo le indicazioni ho letto i topic precedenti ma non ho trovato ..., ho provato con le macro di excell e riesco a fare solo una riga, quando vado alla seconda mi da errore.

Per voi sarà quasi fastidioso risolvere un problemino simile, ... per me giorni di lavoro in meno!
Grazie.

vecchiofrank


Anchi'io ho un problema simile di ricerca e sostituzione del testo con una stringa di numeri.
Praticamente ho già una macro ma mi funziona parzialmente:

Sub Codifica_Valori()
Dim cella As Range
For Each cella In Range("H1:H10000")
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 "DIY & Inchiostri-DIY Refill"
Range("H" & cella.Row).FormulaR1C1 = "47754983773"
Exit For
Case "Accessori -Poggia aerografo sostegno"
Range("H" & cella.Row).FormulaR1C1 = "25440508"
Exit For
'Case ...

End Select
Next I
Next cella
End Sub

Mi funziona solo quando il testo da ricercare e da sostituire è composto da una sola parola.
Nell'esempio sopra esposto le parole da sostituire sono quelle in grassetto.
Mi potete aiutare?
Credo che il problema sia di facile soluzione perchè la macro funziona in presenza di una sola parola.

Grazie
ipsoware
Utente Junior
 
Post: 40
Iscritto il: 01/05/13 07:25
Località: Viterbo

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Macro Cerca Sostituisci Help":


Chi c’è in linea

Visitano il forum: Nessuno e 66 ospiti