Dividere testo di una cella



  • Dividere testo di una cella
    di Massimo (utente non iscritto) data: 14/03/2013 21:50:06

    Ciao e complimenti per questo fantastico forum
    Come da titolo ho un'esigenza quotidiana in quanto scarico tramite un query web dei dati da inserire nel mio ecommerce
    Il dato e questo : 205/55R16 MICHELIN PRIMACY 3 91V
    Viene scaricato nella cella B2
    A me servirebbe un'automatismo vba, evitando la funzione testo in colonne, che mi dividesse in questo modo la cella b2
    Nella cella C3 : MICHELIN 205/55R16 PRIMACY 3 91V
    Nella cella d3 : 205
    Nella cella e3 : 55
    Nella cella f3 : 16
    Nella cella g3 : V

    Grazie



  • di Textomb data: 15/03/2013 00:13:20

    prova così...
    inserisci questa routine in un modulo nuovo e poi la lanci...
     
    Sub WebGomme()
    ' creo tre variabili matrici prima le riempio e poi le scompongo per come mi serve...
    Dim V() As String, Vb() As String, Vr() As String
    V = Split([b2], " ")
    Vb = Split(V(0), "/")
    Vr = Split(Vb(1), "R")
    [d3] = Vb(0)
    [e3] = Vr(0)
    [f3] = Vr(1)
    [g3] = Right([b2], 1)
    V(0) = V(1)
    V(1) = Join(Vb, "/")
    [c3] = Join(V, " ")
    End Sub
    



  • di massimo (utente non iscritto) data: 15/03/2013 11:46:29

    ciao, grazie funziona tutto molto bene, ho provato a modificare il codice perchè non mi separa l'indice di velocita, la lettera V

    GRAZIE



  • di Textomb data: 15/03/2013 12:01:11

    strano...
    l'istruzione per estrarre l'indice di velocità è quella che ti ho dato...
    [g3]=Right([b2],1)
    Tranne che esiste uno spazio vuoto nella cella b2... Non l'avevo previsto.
    Allora dovresti fare così.
    Aggiungi questa istruzione subito dopo la dichiarazione delle variabili (seconda riga).
    [b2] = Trim([b2])
    e vedrai che funzionerà tutto.
    Fammi sapere...



  • di Vecchio Frac data: 15/03/2013 13:55:07

    Ottimo codice Textomb ^_^
    ...e anche la soluzione finale.





  • di massimo (utente non iscritto) data: 15/03/2013 17:15:04

    ciao, sei stato molto gentile e bravissimo...grazie ancora...

    mi piacerebbe, se puoi e hai il tempo, la spiegazione per ogni riga del codice per capire come lavora il codice..

    ps: se avete bisogno di pneumatici....sai dove trovarmi


    GRAZIE ANCORA.
    Massimo



  • di Textomb (utente non iscritto) data: 15/03/2013 19:10:52

    @VF
    grazie mille... Vuol dire che le tue indicazioni hanno avuto il loro effetto.

    @Massimo
    ti riporto fedelmente il testo che avevo scritto sui miei appunti a proposito della funzione Split e Join...
    La funzione Spilt è decisamente interessante! E spesso molto utile...
    Il suo funzionamento è questo:
    - abbiamo una stringa di partenza, posizionata supponiamo in A1
    automobile, aereo, treno

    - se imposti un codice di questo tipo
    k = Split([A1], ",")
    otterrai la matrice k() composta da tutte le sottostringhe separate dalla virgola, ovvero:
    k(0)= "automobile"
    k(1)= "aereo"
    k(2)= "treno"

    - quindi hai anche già assegnata automaticamente la posizione di ogni parola! Le matrici iniziano sempre dal valore 0. Per conoscere il numero delle parole trovate si usa la funzione "Ubound":
    numero = Ubound(k)
    che restituirà 2, ovvero l'indice massimo della matrice. Può essere interessante, per esempio, per ciclare i valori della matrice.

    La funzione Join è esattamente in contrapposizione a Split.
    Ovvero da una matrice vettore costruisce una stringa separata da un delimitatore non obbligatorio.
    La sintassi è:
    sia k() una matrice vettore con n elementi.
    Quindi se
    k(0)=”automobile”
    k(1)= “aereo”
    k(2)=”treno”
    L’istruzione: String = Join(k, ", ") restituisce una stringa unica data da
    Stringa=automobile, aereo, treno
    Stringa rappresenta quindi l’unione degli n elementi della matrice separati dalla virgola “, “

    Tutto il codice riportato nella tua routine può essere ripercorso con queste istruzioni.


    P.S. Non è che un caso. Ma ho cambiato i pneumatici della mia macchina giusto la scorsa settimana. A saperlo prima...
    ciao...