Macro troncamento stringa



  • Macro troncamento stringa
    di Simone (utente non iscritto) data: 24/03/2015 18:05:26

    Salve a tutti.
    Vi chiedo aiuto perché non riesco a capire come risolvere questo mio problema..
    nel mio foglio, nella colonna B, ho una serie di stringhe molto lunghe (circa 500 righe); attraverso una macro pensavo di effettuare un controllo sui caratteri contenuti dalle singole stringhe, e le stringhe contenenti il carattere "(" dovrei troncarla proprio in corrispondenza del carattere antecedente al "("..
    quindi pensavo ad un ciclo for per scorrere tutte le righe della colonna, all'interno un ciclo if che controlli la presenza o meno del carattere "(" e infine, se la condizione è valida, troncare la stringa prima del carattere "("..
    il mio problema è che non riesco a scrivere correttamente la sintassi delle istruzioni, e non ho le idee ben chiare su quali funzioni usare..

    ringrazio già chiunque mi possa dare una mano



  • di Lucas87 data: 24/03/2015 18:27:27

    Ciao
    L'istruzioni Instr()
    cerca il carattere indicato e ne restituisce la posizione nella stringa.
    Con Left poi estrai solo la parte a sinistra


     
    pos=instr(1,cells(i,1),"(")
    If pos>0 then
         cells(i,2)=left(cells(i,1),pos-1)
    end if



  • di alfrimpa data: 24/03/2015 18:29:41

    Ciao Simone

    Ma il carattere "(" è unico?

    Se è così puoi risolvere (senza macro) con la funzione TROVA() che ti restituisce la posizione del carattere da utilizzare come parametro della funzione STRINGA.ESTRAI()

    Qualcosa del tipo = =STRINGA.ESTRAI(A1;1;TROVA("(";A1;1)-1) ovviamente da "calibrare in base alla "struttura" dei tuoi testi.

    Alfredo





  • di alfrimpa data: 24/03/2015 18:36:01

    Ovviamente in luogo di STRINGA.ESTRAI() si può usare anche la funzione SINISTRA() come ha fatto Lucas87 (che saluto) in VBA.

    Alfredo





  • di Vecchio Frac data: 24/03/2015 20:33:05

    Io con VBA avrei scelto e suggerito di utilizzare Split ^_^