UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se puede subir archivos al foro, favor de hacerlo en servidor externo (Dropbox, Drive...) y dejan link. "Sin archivo no hay respuestas"

Favor de leer "Todos los temas" Click aquí.

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

Ximosam


Estimados,

En primer lugar, gracias por dejarme unirme al foro. Soy novato en el mismo y programando con el excel más aún. Les comento mi problema: tengo un fichero excel para registro de proveedores de mi empresa con 2 hojas: una primera hoja para entrada de datos (mediante un combobox y 4 botones) y la segunda hoja donde se almacenan los datos (11 columnas). En la primera hoja, dos de los botones (boton registro y boton editar) llaman a un formulario para introducir los datos. El registro me funciona perfectamente pero no consigo hacer funcionar el boton editar.
Con el boton editar llamo al formulario que tiene un combobox donde selecciono alguno de los proveedores registrados y tiene campos de texto donde se cargan los datos del proveedor seleccionado. Al modificar los datos en alguno de los campos de texto y pinchar el boton que da la orden de grabar las modificaciones lo que consigo es que se me agrege una nueva entrada en la tabla de datos, no que me modifique los datos del proveedor que deseo actualizar.
Este es el codigo que tengo puesto para el boton "modificar" en ese formulario. 

Private Sub Modificar_Click()
    
    Sheets("Datos").Select
    NR = Application.WorksheetFunction.CountA(Range("A:A"))

    
    Cells(NR + 1, 2) = txtproveedor
    Cells(NR + 1, 3) = txtrubro
    Cells(NR + 1, 4) = txtweb
    Cells(NR + 1, 5) = txttelefono
    Cells(NR + 1, 6) = txtdireccion
    Cells(NR + 1, 7) = txtcontacto
    Cells(NR + 1, Cool = txtmailcont
    Cells(NR + 1, 9) = txttelfcont
    Cells(NR + 1, 10) = txtwebauto
    Cells(NR + 1, 11) = txtuser
    Cells(NR + 1, 12) = txtpassword


Sheets("Entrada").Activate
 


    
End Sub

Les dejo adjunto el archivo completo. Les agradeceré cualquier tipo de ayuda. Saludos

https://drive.google.com/open?id=16H_3lVKTDBACL156i9gnFkzBuBnkjwYb

excelboy

avatar
Hola @Ximosam,

Prueba con el siguiente código dentro de modificar:

Código:
Private Sub Modificar_Click()
Dim Base As Worksheet
Set Base = ThisWorkbook.Sheets("Datos")

With Base.Range("A1").CurrentRegion
  .AutoFilter 2, Me.Cbo_modificar.Value
  .Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
  .ShowAllData
End With
End Sub

Ese código solo borra el registro del proveedor, ahora solo agrega el código para que guarde nuevamente los datos, eso ya lo tienes, solo hay que adaptar.

Saludos!

http://mexcelmx.blogspot.mx/

3 formulario el 24/08/18, 05:07 pm

Ximosam


Hola excelboy, en primer lugar, gracias por responder.

No me quedó muy claro (disculpa porque soy un novato en esto) si el codigo que me indicas lo tengo que añadir al que yo tengo o es sustituir el mío original por este que me indicas...

De cualquier forma he probado añadiendo tu codigo pero no funciona. Cuando ejecuto me aparece error '438' en tiempo de jecucion y me indica el error en la línea .ShowAlldata

De hecho, en la hoja Datos, lo que hace es que me oculta todos los valores que estaban. Me oculta las filas...

Saludos

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.