Dividere un testo in celle
Info
Esempi
Linguaggio
Librerie
Formule
Ultimi Inseriti

 Login

 Password

Questa funzione mostra come sia possibile scrivere una funzione divide un testo in singole celle disposte in riga, in colonna o in matrice disposta in righe e colonne.
Utilizza un'altra funzione estremamente utile che permette di separarare una stringa, utilizzando le espressioni regolari, in un vettore di singoli testi.
Nell'esempio a lato si può vedere il risultato della funzione, partendo da:
  1. un testo scritto su unica cella con dei separatori
  2. uno o più separatori

Suddivide i singoli nomi in celle singole disposte:
  1. su riga (il numero di celle in cui è stata copiata la funzione può non essere sufficiente a contenere tutti i valori)
  2. in colonna;
  3. in tabella riga colonna da sinistra a destra e dall'alto in basso.

Function Dividi_Testo_In_Celle(Testo As String, Separatori As String) As Variant
  Dim strRegExp As String
  strRegExp = "[^" & Separatori & "\s][^\" & Separatori & "]*[^" & Separatori & "\s]"
  arrMatch = GetMatchesWithRegExp(Testo, strRegExp)
  
  'determina le dimensioni dell'area di destinazione
  With Application.Caller
    nrRows = .Rows.Count
    nrCols = .Columns.Count
  End With
  
  'crea il vettore dei risultati e impposta tutte le celle a ''
  Dim arrRes() As Variant
  ReDim arrRes(nrRows - 1, nrCols - 1)
  
  R = LBound(arrRes, 1)
  While (R <= UBound(arrRes, 1))
    C = LBound(arrRes, 2)
    While (C <= UBound(arrRes, 2))
      arrRes(R, C) = ""
      C = C + 1
    Wend
    R = R + 1
  Wend
  
  'riporta il vettore dei risultati nel range di destinazione
  i = 0
  R = LBound(arrRes, 1)
  While (R <= UBound(arrRes, 1))
    C = LBound(arrRes, 2)
    While (C <= UBound(arrRes, 2))
      If (i > UBound(arrMatch)) Then
        GoTo EndProc
      End If
      arrRes(R, C) = arrMatch(i)
      i = i + 1
      C = C + 1
    Wend
    R = R + 1
  Wend
EndProc:
  
  Dividi_Testo_In_Celle = arrRes
End Function


L'esempio completo é scaricabile da questo link: Es215.xlsm (a questo link le info per attivare le macro se risultano bloccate)

Gli esempi contenuti nel sito sono per uso personale, non é consentito l'uso professionale, commerciale o la riproduzione senza autorizzazione.
Per dubbi o domande potete scriverci a domande@macrofacili.it, sulla nostra pagina FB MacroFacili.it o sul gruppo FB Excel, macro e formule.
 

data4idea srls - PIva 01881000937 - info@data4idea.it