manipolazione stringa



  • manipolazione stringa
    di gio (utente non iscritto) data: 25/09/2012 09:49:38

    è possibile estrarre da una stringa solo un determinato pezzo di testo?
    so che esistono le funzioni left e right..
    ma il mio caso è un attmio piu complicato:
    da una stringa tipo questa
    "SOM11111_NP000000_BFA_REP4.TXT"

    è possibile estrarre in determinate celle tutti i vari pezzi di stringa ceh compongono il nomer?
    REP4
    BFA
    NP000000
    SOM11111

    in poche parole dovrei poter selezionare tutto quello che c'è tra un trattino e l'altro..



  • DEFINIRE NOME RIFERITO A FORMULA
    di Riccardo57 (utente non iscritto) data: 25/09/2012 10:07:47

    Ciao

    sul foglio "BASE" ho definito nelle celle A1, A2, B1, B2, i suguenti valori:

    A B
    1 h mq
    2 10,00 2500,00

    ho definito un nuovo nome chiamato "FORMULA" che fa riferimento alla seguente formula:
    =CONCATENA("nr 1 x "& '$BASE'!$A$1 & " " &'$BASE'!$A$2 & " : "&'$BASE'!$B$1 & " " &'$BASE'!$B$2)
    in modo che quando nelle altre celle vado ad inserire "=FORMULA", mi compaia
    "nr 1 x h 1,00 : mq 2500,00"

    Fino a quando compio questa funzione manualmente tutto bene.

    Anche quando tramite il registratore inserisco la seguente macro tutto funziona:

    Sub Macro5()
    "=CONCATENATE(""nr 1 x ""&'[BASE_DIM.xlsb]$BASE'!R6C9&"" ""&'[BASE_DIM.xlsb]$BASE'!R7C9&"" : ""&'[BASE_DIM.xlsb]$BASE'!R6C8&"" ""&'[BASE_DIM.xlsb]$BASE'!R7C8)"
    ActiveWorkbook.Names("FORMULA").Comment = ""
    'ActiveCell.FormulaR1C1 = "=FORMULA"
    End sub

    Soltanto che i riferimenti di cella sono relativi, non riesco a trsformarli in riferimenti assoluti.

    Qualcuno mi può dare una mano a cambiare la formula in VBA?
    Se volessi ottenere i riferimenti di cella in assoluti, devo settare qualche variabile prima di registrare la macro?

    Grazie
     
    Sub Macro5()
    "=CONCATENATE(""nr 1 x ""&'[BASE_DIM.xlsb]$BASE'!R6C9&"" ""&'[BASE_DIM.xlsb]$BASE'!R7C9&"" : ""&'[BASE_DIM.xlsb]$BASE'!R6C8&"" ""&'[BASE_DIM.xlsb]$BASE'!R7C8)"
        ActiveWorkbook.Names("FORMULA").Comment = ""
        'ActiveCell.FormulaR1C1 = "=FORMULA"
    End sub



  • di Vecchio Frac data: 25/09/2012 10:11:45

    Per Riccardo,
    per cortesia non scrivere in una discussione già iniziata.
    Apri un nuovo post così evitiamo confusione di argomenti e sovrapposizioni.
    Grazie





  • di Vecchio Frac data: 25/09/2012 10:14:47

    Per Gio
    nelle stringhe da suddividere è possibile vedere una struttura comune?
    Se ogni "pezzo della stringa" (chiamata token o sottostringa) è separato dagli altri mediante l'underscore (o carattere di sottolineatura _ ) allora Split fa al caso tuo:

    v = Split (stringa_da_spezzare, "_")
    v è una matrice a base zero e vi trovi tutte le sottostringhe:
    v(0), v(1), v(...)





  • di gio (utente non iscritto) data: 25/09/2012 11:09:40

    perfetto, grazie!