Trovare codice 5 cifre



  • Trovare codice 5 cifre
    di Traniwebdesign data: 18/11/2015 10:50:10

    Ciao a tutti e ben trovati a voi ancora una volta...ho un problema...
    ho dei titoli ( circa 9000 ) che contengono sempre serie di 5 caratteri come questi ad esempio..

    "Nuovo Lavandino in ceramica Lavandini - 56587"
    "12345 - telecomando tascabile H20 Ø 12 cm Nuovo"

    Ora ho necessita di prendere questo codice di 5 cifre che possono trovarsi in qualsiasi parte del titolo ( avanti/indietro/in mezzo ), ma sono sempre 5 caratteri numerici, e metterli incolonnati da b2 a b9000.

    il titolo sta in A1,A2..ecc....ed il codice estrapolato dovrebbe starre in B1,B2...ecc..
    Spero sia riuscito a spiegare bene il mio problema.
    Grazie a tutti voi per l'aiuto.



  • di gdito data: 18/11/2015 11:06:10

    Ciao,
    ho sviluppato un addin per excel che ti risolve il problema al volo, lo trovi su h t t p ://www.tuttoexcel.it/add-in-funzioni-di-tuttoexcel/ una volta installato scrivi in B1 =REGEX.ESTRAI(A1;"[0-9]{5}") ed hai fatto

    In alternativa puoi scrivere una macro che faccia la stessa operazione



  • di gdito data: 18/11/2015 11:18:01

    Se ti interessa scrivere una UDF in VBA che faccia lo stesso lavoro devi innanzitutto includere "Microsoft VBScript Regular Expressions 5.5" che trovi nel menu Strumenti->Riferimenti del Visual Basic Editor e poi scrivere una funzione come quella qui sotto
     
    Function EstraiCodice(testo As String)
        Dim regEx As New VBScript_RegExp_55.RegExp
        
        regEx.Pattern = "[0-9]{5}"
        regEx.Global = True
        
        Set trovati = regEx.Execute(testo)
        
        EstraiCodice = trovati(0)
        
    End Function



  • di cromagno data: 18/11/2015 11:46:28

    Ciao a tutti,
    purtroppo al momento sono al lavoro, ho solo il cellulare e excel 2003, quindi provo a darti una soluzione con le formule (con excel superiore al 2003 puoi utilizzare la funzione SE.ERRORE per dimezzare la lunghezza della formula).

    La formula la scrivo dal cell quindi potrebbe presentare qualche errore di battitura (spero di no):

    =MAX(SE(VAL.ERRORE(STRINGA.ESTRAI(A1;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A1)-5));5)*1);0;STRINGA.ESTRAI(A1;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A1)-5));5)*1))

    E' matriciale, quindi va confermata con la combinazione di tasti CTRL+MAIUSC+INVIO.



  • di Albatros54 data: 18/11/2015 11:50:09

    Incolla il codice postato sotto in un modulo VBA è lanci la Routine.
    La Routine non fa altro che spazzolare il tuo Range(rgn), in cerca del valore numerico lungo 5 cifre, una volta trovato , seleziona la cella si sposta di una colonna e scrive il valore trovato.Se ho capito
    Ciao
    Albatros54    
     
    Public Sub albatros54()
        Dim MyArray
        Dim a As Long
        Dim name As Integer
        Dim rng As Range
        Set rng = Range("a1:a6") '<===== nel tuo caso range("A1:A9000")
        For Each cl In rng
            MyArray = Split(cl.Value)
            For a = LBound(MyArray) To UBound(MyArray)
                nome = MyArray(a)
                If Len(nome) = 5 Then
                    If IsNumeric(nome) Then
                        cl.Select
                        cl.Offset(0, 1) = nome
                       ' MsgBox (nome)
                    End If
                End If
    
            Next
        Next
    
    End Sub





  • Trovare codice 5 cifre
    di Traniwebdesign data: 18/11/2015 12:13:41

    grazie a tutti....infinitamente...mi avete risparmiat 1 settimana di lavoro..
    alla prossima.