Help code vba excel



  • Help code vba excel
    di Borgus data: 01/07/2011

    Ciao a tutti,

    ho un problemino con questo codice vba in excel.
    in breve devo scoporare da una cella i numeri presenti.
    esempio: andrea.100 filippo 50 i numeri 100 e 50 devono essere scritti nelle 2 celle successive a destra!

    il codice funziona ed è il seguente:

    dim x, i, n, str
    str = replace(activecell.value, ".", " ")
    str = replace(str, "(", " ")
    x = split(str, " ")
    i = 1
    n = 1
    do while i < ubound(x) + 2
    if isnumeric(x(i - 1)) then ' è un numero
    cells(n, 2).value = x(i - 1)
    n = n + 1
    end if
    i = i + 1
    loop


    il problema è che il secondo numero lo mette sotto la cella del primo!!! devo invece farlo scrivere a destra!!

    potete aiutarmi?

    thanks



  • di Locate (utente non iscritto) data: 01/07/2011

    Ciao
    al posto di una macro la quale tutte le volte la devi far esequire prova ad usare la seguente funzione,la quale estrae solo i numeri in una stringa composta da lettere e numeri,
    la usi come una semplice funzione di excel
    ------------
    paolo.100 <----> 100
    pippo.50 <----> 50
    tizio.40 <----> 40
    caio.90 <----> 90
    ------
    ciao da locate
    excel 2003
     
    Function trova_num(Stringa As String) As String ''trova i numeri in una stringa
    Application.Volatile
    Dim numeri As Long, i As Long
    Stringa = StrConv(Stringa, vbUpperCase)
    i = 1
    numeri = "0"
    For i = 1 To Len(Stringa)
      numeri = Asc(Mid(Stringa, i, 1))
        Select Case numeri
               Case "48" To "57"
                 trova_num = trova_num & Chr(numeri)
               Case Else
        End Select
        Next
        Exit Function
    End Function  '' uso =trova_num()



  • di Locate (utente non iscritto) data: 01/07/2011

    Riciao
    in alternativa alla funzione macro potresti usare la seguente funzione ammettendo che i tuoi dati li ai in colonna a:a
    ----------
    =destra(a1;lunghezza(a1)-trova(".";a1;1))
    --------
    ciao da locate
    excel 2003
     
    =DESTRA(A1;LUNGHEZZA(A1)-TROVA(".";A1;1))