¿Cómo pasar datos de un Textbox Multilínea a una Base de Datos en Excel?

2 envíos / 0 nuevos
Último envío
EduGaytan
Imagen de EduGaytan
Offline
última acción: Hace 3 años 3 meses
alta: 03/12/2020 - 04:30
Puntos: 25
¿Cómo pasar datos de un Textbox Multilínea a una Base de Datos en Excel?

Hola, estoy tratando de hacer una macro con un Userform que contiene un Textbox multilínea donde lo que busco es escribir códigos separados por renglón, y al hacer clic en el CommandButton mande estos datos directamente a la fila siguiente en blanco (después de la última celda llena) separados con renglones, encontré un par de ejemplos y busque adaptarlos a mis necesidades pero lo que hace el código es escribir todos los datos ingresados en el Textbox en una única celda, eso sí, separados pero lo que yo busco es que se registren en diferentes filas, ambos códigos hacen lo mismo, agradezco de antemano su atención.

 

Les dejo los códigos:

 

Private Sub BtnIngresar_Click()

 

Application.ScreenUpdating = False

 

With Sheets("Entradas")

.Visible = True

.Select

End With

 

Dim af As Long

 

af = Range("A" & Rows.Count).End(xlUp).Row

 

j = af + 1 'fila

k = 1 'columna

For i = 1 To Len(TxtIngEnt)

If Mid(TxtIngEnt.Value, i, 1) <> Chr(26) Then

If Mid(TxtIngEnt.Value, i, 1) <> Chr(23) Then

cadena = cadena & Mid(TxtIngEnt.Value, i, 1)

End If

Else

Cells(j, k) = cadena

j = j + 1 'para incrementar filas

'k = k + 1 'para incrementar columnas

cadena = ""

End If

Next

Cells(j, k) = cadena

 

End Sub

 

——————————————————

 

Private Sub BtnIngresar_Click()

 

Application.ScreenUpdating = False

 

Dim af As Long

 

With Sheets("Entradas")

.Visible = True

.Select

End With

 

saltos = Len(TxtIngEnt.Value) - Len(Application.WorksheetFunction.Substitute(TxtIngEnt.Value, Chr(26), ""))

Texto = TxtIngEnt.Value

 

af = Range("A" & Rows.Count).End(xlUp).Row

 

For i = af + 1 To saltos

Cells(i, 1) = Mid(Texto, 1, InStr(1, Texto, Chr(26)) - 2)

Texto = Application.WorksheetFunction.Substitute(Texto, Mid(Texto, 1, InStr(1, Texto, Chr(26))), "", 1)

Next

 

Cells(i, 1) = Texto

 

 

 

End Sub

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 horas 8 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Split

lo que necesitas es la función Split

Esta función permite dividir un texto en varios, por ejemplo, una lista separada por comas o en tu caso un párrafo separado por saltos de línea

El resultado de esta función es una matriz, así que luego tendrás qeu recorrer tu matriz para ir anotando cada elemento en una celda distinta.

Ejemplo:

Sub test1()

' necesitomas.com

    Dim mitexto

    Dim MatrizTextos

    Dim i

 

    mitexto = "Hola" & vbCrLf & "qué tal" & vbCrLf & "ejemplo"

    MatrizTextos = Split(mitexto, vbCrLf) ' considero como separador el salto de línea vbCrLf

   ' ahora recorremos la matriz, desde el principio al final de la matriz

    For i = LBound(MatrizTextos) To UBound(MatrizTextos)

        ActiveSheet.Cells(1 + i, 1).Value = MatrizTextos(i)

    Next

End Sub

 

------
Ya sé Excel, pero necesito más.