Option Explicit Private Const TIEMPO_ESTATICO As Byte = 3 Private Type tNicks letras() As String cadenaFinal As String contadorLetras As Integer contador As Integer ultimaLetra As Byte posicion As Byte posicionLetra As Byte posicionFinal As Byte End Type Private nicks() As tNicks Private cantidadNicks As Byte Sub addNick(ByVal name As String) Dim lenght As Integer, i As Long cantidadNicks = cantidadNicks + 1 lenght = Len(name) ReDim Preserve nicks(1 To cantidadNicks) As tNicks ReDim nicks(cantidadNicks).letras(1 To lenght) As String With nicks(cantidadNicks) For i = 1 To lenght .letras(i) = Mid$(name, i, 1) Next i .posicionFinal = lenght .posicion = .posicionFinal .posicionLetra = .posicion End With End Sub Sub moveNicks() Dim x As Long For x = 1 To cantidadNicks With nicks(x) If .contador > 0 Then .contador = .contador - 1 If .contador = 0 Then .ultimaLetra = 0 .cadenaFinal = vbNullString Else Exit Sub End If End If .ultimaLetra = .ultimaLetra + 1 .cadenaFinal = .cadenaFinal & .letras(.ultimaLetra) If .ultimaLetra = UBound(.letras()) Then .contador = TIEMPO_ESTATICO 'Label1.Caption = .cadenaFinal End With Next x End Sub Sub effectNick() Dim strTemp As String, strCadenaFinal As String, x As Long, i As Long For x = 1 To cantidadNicks With nicks(x) If .ultimaLetra = 0 Then moveNicks For i = 1 To .posicionLetra strTemp = strTemp & " " Next i .posicionLetra = .posicionLetra - 1 strCadenaFinal = .cadenaFinal strCadenaFinal = Mid$(strCadenaFinal, .ultimaLetra) strCadenaFinal = strTemp & strCadenaFinal If .ultimaLetra > 1 Then strCadenaFinal = Mid$(.cadenaFinal, 1, .ultimaLetra - 1) & strCadenaFinal End If Label1(x).Caption = strCadenaFinal If .posicionLetra = 0 Then moveNicks .posicionLetra = .posicionFinal End If End With Next x End Sub Private Sub Form_Load() Call addNick("Toyz") End Sub Private Sub Timer1_Timer() Call effectNick End Sub