Tengo un problema soy principiante estoy haciendo un proyectoEn visual basic excel

Ya me arroga los registros

El unico detalle que busco

Es que cuando se guarde un registro

En la otra hoja (base de datos ) se actualize el dato cuando registre

Por ejemplo

Kilimetraje final 10080(HOJABASEDE DATOS) kilometraje de entrada 100900(hoja registro)

Queda vez que se haga un registro se actualice la (hojabasededatos kilometraje final)

Respuesta
1

Para enviar una instrucción de macro en respuesta a una consulta necesitamos saber de dónde se toma el valor a actualizar y dónde actualizarlo.

De poco te servirá que te escriba:

Hoja2.[B5] = TextBox5

Seguramente hay que buscar el registro a actualizar según algún campo o código que se encontrará en alguna columna...

Si te sirvió... bien. Sino aclara todos los detalles que no somos magos !

Sdos.

Elsa

* Te invito a conocer mi nuevo Manual de Userforms

buen dia 

 tendrás algún correo  donde te pueda mandar el archivo completo  para  que lo puedas ver mejor

Private Sub CommandButton1_Click()
Dim id_noexpediente, idBuscar As String
Dim fila As Integer
fila = 6

id_noexpediente = TextBox14

Do While idBuscar <> id_noexpediente
fila = fila + 1
idBuscar = Range("C" & fila).Value
If idBuscar = Empty Then
MsgBox " No se encontro numero de expediente"
Exit Do
End If
Loop

TextBox1 = Range("B" & fila).Value
TextBox2 = Range("D" & fila).Value
TextBox3 = Range("E" & fila).Value
TextBox4 = Range("F" & fila).Value
TextBox5 = Range("G" & fila).Value
TextBox6 = Range("H" & fila).Value
TextBox7 = Range("I" & fila).Value
TextBox8 = Range("J" & fila).Value
TextBox9 = Range("K" & fila).Value
TextBox10 = Range("L" & fila).Value
TextBox11 = Range("M" & fila).Value
TextBox12 = Range("N" & fila).Value


TextBox14.SetFocus

End Sub

Private Sub CommandButton2_Click()
Dim NombreHoja As String
Dim HojaDestino As Range
Dim NuevaFila As String

NombreHoja = Me.ComboBox1.Value

Set HojaDestino = ThisWorkbook.Sheets(NombreHoja).Range("B6").CurrentRegion
NuevaFila = HojaDestino.Rows.Count + 6
With ThisWorkbook.Sheets(NombreHoja)
.Cells(NuevaFila, 2).Value = Me.TextBox1.Value
.Cells(NuevaFila, 3).Value = Me.TextBox14.Value
.Cells(NuevaFila, 4).Value = Me.TextBox2.Value
.Cells(NuevaFila, 5).Value = Me.TextBox3.Value
.Cells(NuevaFila, 6).Value = Me.TextBox4.Value
.Cells(NuevaFila, 7).Value = Me.TextBox5.Value
.Cells(NuevaFila, 8).Value = Me.TextBox6.Value
.Cells(NuevaFila, 9).Value = Me.TextBox7.Value
.Cells(NuevaFila, 10).Value = Me.TextBox8.Value
.Cells(NuevaFila, 11).Value = Me.TextBox9.Value
.Cells(NuevaFila, 12).Value = Me.TextBox10.Value
.Cells(NuevaFila, 13).Value = Me.TextBox11.Value
.Cells(NuevaFila, 14).Value = Me.TextBox12.Value
.Cells(NuevaFila, 15).Value = Me.TextBox13.Value
.Cells(NuevaFila, 16).Value = Date
.Cells(NuevaFila, 17).Value = Time
.Cells(NuevaFila, 18).Value = Me.TextBox18.Value
.Cells(NuevaFila, 19).Value = Me.TextBox19.Value
.Cells(NuevaFila, 20).Value = Me.TextBox20.Value
.Cells(NuevaFila, 21).Value = Me.TextBox21.Value


End With

MsgBox "Registro exitoso.", vbInformation, "EXCELeINFO"

Unload Me

End Sub

Private Sub CommandButton3_Click()
Unload Me

End Sub

Private Sub TextBox13_Change()
'Sheets("BD").Select'
'seleccionamos la ceda donde se debe alojar el dato
'Range("N7").Select '
'guardamos el dato en la celda
'ActiveCell.Value = TextBox13.Value'

End Sub

Private Sub UserForm_Initialize()
Dim intHojas As Integer
Dim i As Integer
intHojas = ThisWorkbook.Sheets.Count
For i = 2 To intHojas
Me.ComboBox1.AddItem ThisWorkbook.Sheets(i).Name
Next i

End Sub

Copiá alguno de los correos que aparecen en mi sitio que dejo al pie.

Sdos!

¡Gracias! 

ya se o mando a su correo  completo  

me puede confirmar si le llego  

por favor  

Si, lo acabo de descargar.

Lamento que ya hayas valorado la respuesta... seguramente me tomará más tiempo como para un solo 'buena'.

1 respuesta más de otro experto

Respuesta

Acá te dejo unos ejemplos que permiten guardar registros

https://www.programarexcel.com/2013/03/copia-datos-abre-otro-libro-pega-datos.html

https://youtu.be/LkiQIzCsWP8

https://www.programarexcel.com/2013/03/formulario-vba-para-insertar-datos.htmlhttps://youtu.be/7ELWADSfTEY

https://youtu.be/gqZzSfikEYY

https://youtu.be/smL4A-aRjCM

¡Gracias!

Buen día

Este es mi avance que tengo .tendrás algún correo donde te pueda mandar el archivo completo

Private Sub CommandButton1_Click()
Dim id_noexpediente, idBuscar As String
Dim fila As Integer
fila = 6

id_noexpediente = TextBox14

Do While idBuscar <> id_noexpediente
fila = fila + 1
idBuscar = Range("C" & fila).Value
If idBuscar = Empty Then
MsgBox " No se encontro numero de expediente"
Exit Do
End If
Loop

TextBox1 = Range("B" & fila).Value
TextBox2 = Range("D" & fila).Value
TextBox3 = Range("E" & fila).Value
TextBox4 = Range("F" & fila).Value
TextBox5 = Range("G" & fila).Value
TextBox6 = Range("H" & fila).Value
TextBox7 = Range("I" & fila).Value
TextBox8 = Range("J" & fila).Value
TextBox9 = Range("K" & fila).Value
TextBox10 = Range("L" & fila).Value
TextBox11 = Range("M" & fila).Value
TextBox12 = Range("N" & fila).Value


TextBox14.SetFocus

End Sub

Private Sub CommandButton2_Click()
Dim NombreHoja As String
Dim HojaDestino As Range
Dim NuevaFila As String

NombreHoja = Me.ComboBox1.Value

Set HojaDestino = ThisWorkbook.Sheets(NombreHoja).Range("B6").CurrentRegion
NuevaFila = HojaDestino.Rows.Count + 6
With ThisWorkbook.Sheets(NombreHoja)
.Cells(NuevaFila, 2).Value = Me.TextBox1.Value
.Cells(NuevaFila, 3).Value = Me.TextBox14.Value
.Cells(NuevaFila, 4).Value = Me.TextBox2.Value
.Cells(NuevaFila, 5).Value = Me.TextBox3.Value
.Cells(NuevaFila, 6).Value = Me.TextBox4.Value
.Cells(NuevaFila, 7).Value = Me.TextBox5.Value
.Cells(NuevaFila, 8).Value = Me.TextBox6.Value
.Cells(NuevaFila, 9).Value = Me.TextBox7.Value
.Cells(NuevaFila, 10).Value = Me.TextBox8.Value
.Cells(NuevaFila, 11).Value = Me.TextBox9.Value
.Cells(NuevaFila, 12).Value = Me.TextBox10.Value
.Cells(NuevaFila, 13).Value = Me.TextBox11.Value
.Cells(NuevaFila, 14).Value = Me.TextBox12.Value
.Cells(NuevaFila, 15).Value = Me.TextBox13.Value
.Cells(NuevaFila, 16).Value = Date
.Cells(NuevaFila, 17).Value = Time
.Cells(NuevaFila, 18).Value = Me.TextBox18.Value
.Cells(NuevaFila, 19).Value = Me.TextBox19.Value
.Cells(NuevaFila, 20).Value = Me.TextBox20.Value
.Cells(NuevaFila, 21).Value = Me.TextBox21.Value


End With

MsgBox "Registro exitoso.", vbInformation, "EXCELeINFO"

Unload Me

End Sub

Private Sub CommandButton3_Click()
Unload Me

End Sub

Private Sub TextBox13_Change()
'Sheets("BD").Select'
'seleccionamos la ceda donde se debe alojar el dato
'Range("N7").Select '
'guardamos el dato en la celda
'ActiveCell.Value = TextBox13.Value'

End Sub

Private Sub UserForm_Initialize()
Dim intHojas As Integer
Dim i As Integer
intHojas = ThisWorkbook.Sheets.Count
For i = 2 To intHojas
Me.ComboBox1.AddItem ThisWorkbook.Sheets(i).Name
Next i

End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas