Metodo findreplace



  • Metodo find...replace
    di Nic82 data: 02/07/2010

    Ciao a tutti, chiedo ancora umilmento il vostro aiuto...
    ho dei dati in una colonna che contengono dei nomi di prodotti, alcuni di questi prodotti sono dei liquidi, quindi nella stessa cella ho nome del prodotto e quantità contenuta in una confezione in ml.
    devo creare varie classi di prodotti, ad esempio, da 5 ml a 20 ml classe1, da 20 ml a 50 ml classe 2 e così via.
    il problema è che i dati non sono tutti scritti in modo uniforme, ma ho tipo "50 ml" (con lo spazio) e "50ml" senza spazio. quello che ho pensato di fare per semplificarmi la vita è un testo in colonne, sostituendo "ml" con "-ml". una volta fatto ciò, con una nuova sub andrei a sotituire " -ml" con "-ml" in quelle voci che prima avevano ml con lo spazio (" ml"), tutto ciò per aver il numero "aggangiato" ad ml con il - come separatore per poi fare il testo in colonne.

    per farlo ho provato il metodo find senza replace, ma mi cancella tutto il contenuto della cella sostituendolo col valore "-ml".
    devo farlo con metodo replace giusto? come si usa? mi fate un esempio??? grazie!!!



  • di Ricky53 (utente non iscritto) data: 02/07/2010

    Ciao,
    perchè lo fai utilizzando del codice "vba" e non con la funzionalità "trova/sostituisci" di excel?

    ciao da ricky53



  • di Nic82 data: 02/07/2010

    Ciao ricky,

    alla fine l'ho fatto col trova sustituisci..il file è comunque troppo incasinato e scritto male!
    comunque, intato che ci sono approfitto per chiedere una cosa:
    come faccio a estrarre solo i record diversi fra loro contenuti in range("b1:b10000") e copiarli nella colonna accanto?
    mi spiego: nelle 10000 celle in colonna b ho diversi valori, alcuni ripetuti anche 50 volte, come faccio a scremarli ed ottenere solo quelli effettivi? cioè i record sono 10.000 ma i valori effetivi diversi fra loro saranno circa 1000...



  • di Enzo (utente non iscritto) data: 07/07/2010

    Ciao a tutti ogni tanto mi faccio vivo
    prova questa istruzione qui sotto
    dovrebbe fare quello che hai chiesto

     
    SUB SCREMA()
    Application.ScreenUpdating = False
    CONTA = Application.WorksheetFunction.CountA(Range("B1:B65000"))
    For i = 1 To CONTA
    Range("C" & i) = Range("B" & i)
    X = Application.WorksheetFunction.CountIf(Range("C1:C65000"), Range("B" & i))
    If X > 1 Then
    Range("C" & i) = ""
    End If
    Next i
    Application.ScreenUpdating = True
     Columns("C:C").Select
        Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False
    END SUB