Modificación de código vba para pasar datos a hoja de excel

Tengo este código

Private Sub ComRegistraTransaccion_Click()
'Pasar los datos del formulario a la hoja de excel
    Set h1 = Sheets("Transacciones Captaciones")
       ufd = h1.Range("A" & Rows.Count).End(xlUp).Row
       uf = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Cells(uf, "A").value = LabNumeroCuenta 'pasa el numero de cuenta
    h1.Cells(uf, "B").Formula = "Mid(ufd, 2, 11) + 1"
    h1.Cells(uf, "C").value = LabFecha
    h1.Cells(uf, "D").value = TexMonto.value
    h1.Cells(uf, "F").value = CombTipo.value
    h1.Cells(uf, "G").value = CombConcepto.value
    h1.Cells(uf, "I").value = "Activa"
'Pasar los datos del formulario a la hoja de excel
End Sub

Lo único que no funciona es el que pasa los datos a la columna B que lo que quiero es lo siguiente

Que busque el ultimo fila con datos y va encontrar un numero por ejemplo "A000000000253" y quiero que al insertar todos los datos aumente en uno este numero y que quede por ejemplo ""A000000000254"

1 respuesta

Respuesta
1

[Hola

Aunque no he visto tus datos prueba cambiando la línea respectiva por esta:

h1.Cells(uf, "B").Value = "A" & Format(Val(Right(Range("C" & udf), 12)) + 1, "0000000000")

Comentas

Abraham Valencia

Donde dice ... Range("C"... cambia la "C" por una "B"

Abraham Valencia

La rutina se para y me dice el siguiente mensaje:

Se ha producido el error '1004' de tiempo de ejecución:

Error en el método 'Range' de objeto '_Global'

Y ya ahí no se que hacer, por lo que hay que hacerle algún cambio

Lo mejor es que coloques tu archivo en algún "Drive" y compartas por aquí el enlace.

Abraham Valencia

Si quiere me pude escribir a mi correo [email protected] porque no quisiera poner el archivo en un enlace publico

Lo siento, dado que la ayuda que se brinda en los foros es ad honorem y que se supone es pública para que así se ayuda a su vez a otros, tengo como costumbre jamás usar mi correo personal; pero en todo caso coloca toda la macro tal cual quedo, indica en que línea exactamente te marca error y al menos haz una captura de pantalla de tu columna "B" de datos y que de todos modos se vea la última fila.

Abraham Valencia

Código completo

Private Sub ComRegistraTransaccion_Click()
'Pasar los datos del formulario a la hoja de excel
    Set h1 = Sheets("Transacciones Captaciones")
       ufd = h1.Range("A" & Rows.Count).End(xlUp).Row
       uf = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Cells(uf, "A").value = LabNumeroCuenta 'pasa el numero de cuenta
    'h1.Cells(uf, "B").Formula = "Mid(ufd, 2, 11) + 1"
    h1.Cells(uf, "B").value = "A" & Format(Val(Right(Range("B" & udf), 12)) + 1, "0000000000")
    h1.Cells(uf, "C").value = LabFecha
    h1.Cells(uf, "D").value = TexMonto.value
    h1.Cells(uf, "E").value = CombTransaccion.value
    h1.Cells(uf, "F").value = CombTipo.value
    h1.Cells(uf, "G").value = CombConcepto.value
    h1.Cells(uf, "I").value = "Activa"
'Pasar los datos del formulario a la hoja de excel
End Sub

Aqui es que me especifica el error

h1.Cells(uf, "B").value = "A" & Format(Val(Right(Range("B" & udf), 12)) + 1, "0000000000")

Este es el error 

y esto es lo que hay en la hoja

Ajá, ya, mira, en la línea del problema en donde dice 12 coloca 11, ya que el número debe de coincidir con la cantidad de números de tu código.

Abraham Valencia

Disculpe, pero dice el mismo error, como que no es eso.

Coloca 11 tal como te indiqué, en la parte final también asegúrate que tenga 11 ceros (los que están entre comillas) y por último, en la variable dice "udf", debe de decir "ufd".

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas