Condividi tramite

Stringa estrai VBA

Anonimo
2024-06-25T12:12:52+00:00

Buongiorno a tutti e grazie in anticipo.

ho la necessità di utilizzare la funzione stringa estrai però in VBA.

come faccio ad utilizzarla, esempio

cella A1 c'e la scritta "Numero ordine BT0123456789", nella cella B1 devo estrarre solo il numero d'ordine "BT0123456789)

Grazie per l'aiuto

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
    2024-06-25T14:12:03+00:00

    Prova:

    Option Explicit 
    
    Function EstraiCodice(ByVal ordine As String) 
    
    Dim arrO 
    
        arrO = Split(ordine, " ") 
    
        EstraiCodice = arrO(UBound(arrO)) 
    
    End Function 
    
    Sub Codice() 
    
    Dim strCodice As String 
    
        strCodice = EstraiCodice(Range("A1").Value) 
    
    End Sub
    

    la prima è la funzione che estrae l'ultima parola, la routine è un esempio di utilizzo. Considera che la funzione puoi usarla anche sul foglio:

    =EstraiCodice(A1)

    Ciao.

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2024-06-25T14:36:00+00:00

    ciao Eleuterio

    cavolini di bruxelles

    se deve inserire una formula tanto vale usare

    =FILTRO.XML("<d><a>"&SOSTITUISCI($A1;" ";"</a><a>")&"</a></d>";"//a[last()]")

    e si risparmia la fatica di scrivere una funzione😉

    mi dimenticavo se vuoi l'ultima parola nella stessa cella

    Option Explicit 
    
    Sub ultimaparola() 
    
        On Error Resume Next 
    
            Dim rng As Range, cell As Range, location As Long, stringLength As Long 
    
                Set rng = Range("A1:A100") 
    
                     For Each cell In rng 
    
                       location = InStrRev(cell, " ") 
    
                        stringLength = Len(cell) 
    
        cell = Right(cell, stringLength - location) 
    
        Next cell 
    
            ActiveCell.Select 
    
    End Sub
    
    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2024-07-08T12:24:20+00:00

    ciao

    una curiosità

    la necessità di utilizzare la funzione stringa estrai però in VBA.

    mi spieghi perchè usi una funzione che necessità di formula se vuoi il VBA?

    a quel punto cosa la usi a fare la funzione usa una formula

    =FILTRO.XML("<d><a>"&SOSTITUISCI($A1;" ";"</a><a>")&"</a></d>";"//a[last()]")

    fa la stessa cosa senza scomodare il vba

    oppure ho capito male la domanda.

    0 commenti Nessun commento
  3. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2024-06-25T12:36:44+00:00

    ciao

    ma il codice da estrarre è sempre l'ultima parola?

    se si

    Option Explicit 
    
    Sub ultimaparola() 
    
        On Error Resume Next 
    
            Dim rng As Range, cell As Range, location As Long, stringLength As Long 
    
                Set rng = Range("A1:A100") 
    
                     For Each cell In rng 
    
                       location = InStrRev(cell, " ") 
    
                        stringLength = Len(cell) 
    
        cell.Offset(0, 1) = Right(cell, stringLength - location) 
    
        Next cell 
    
            ActiveCell.Select 
    
    End Sub
    
    0 commenti Nessun commento