Saltar al contenido

Macro para buscar,editar,listar o eliminar registros


RORO1981

Recommended Posts

  • Respuestas 50
  • Created
  • Última respuesta

estimado te adjunto lo que necesitas, ese codigo lo puedes adptar para cargar cualquier combobox solo debes cambiar la ubicacion de la columna cambiandole la letra y la hoja de origen y si agregas mas datos con este codigo la macro los toma automáticamente.

Saludos desde Chile

BUSCAR NOMBRE + APELLIDO.xls

Enlace a comentario
Compartir con otras webs

Muchas Gracias, te pasaste funciona impeque, existe la posibilidad que con un commandbuttom en el userformo "BuscarApellido" tome el valor de la columna A no importando que columna este buscando en ese momento y lo transfiera a la userform "Buscador" no se como hacerlo podrías ilustrarme, eternamente agradecido.

:fat::fat:

Enlace a comentario
Compartir con otras webs

  • 2 weeks later...

Buenas noches

Señor RORO1981

Permitame FELICITARLO!! Por tan grandioso trabajo.

En verdad muy bueno y de gran ayuda ya que desde hace mucho estaba buscando todo lo referente a conexiones ADO y leyendo en internet y demas, sin embargo no dada con la respuesta a mi inquietud. No obstante, usted resolvio con su aporte de una manera sencilla, estética y de facil comprension, todo lo que tenia en duda.

Ahora podré trabajar con el archivo de control de inventario basandome en los codigos que usted gentilemnte proporcionó.

Que pena que aun cuando ya tiene todo por lo cual ya es suficiente, tengo una duda y espero poder contar con su gentil ayuda; Existe una manera de filtrar la información guardada en la bases de datos por rangos de fechas (Desde-Hasta)?

y asi toda la informacion volcarla como lo hace en la hoja excel? es decir; Traer toda la informacion de access por rango de fechas y pegarla en la hoja excel.

Bien sabria agradecerlo.

Mis respetos y en verdad le estoy muy agradecido.

Enlace a comentario
Compartir con otras webs

  • 2 weeks later...

me puedes decir porque este macro no funciona:

Sub GuardaCopia() 'Excel superior a 2003.

Dim ruta$, nombre$, nombreC$, punto&, resp&, numC&

On Error GoTo Errores 'Control de errores.

nombre = ActiveWorkbook.Name 'Nombre del archivo actual.

punto = InStr(nombre, ".") 'Posición del punto.

If punto = 0 Then ActiveWorkbook.Save 'Si no tiene extensión (no se ha guardado), muestro el cuadro de diálogo GUARDAR COMO.

resp = 6 'Valor por defecto para guardar la copia.

ruta = ActiveWorkbook.Path 'Ruta del libro actual.

nombre = "\" & ActiveWorkbook.Name 'Nombre del libro actual.

punto = InStr(nombre, ".") 'Posición del punto.

If Mid(nombre, punto) = ".xlsm" Then 'Si el libro no está habilitado para macros...

resp = MsgBox("Para guardar Copia con nombre+Fecha es preciso " & vbCr & _

"habilitar el libro para macros." & vbCr & vbCr & _

"SI = Habilitar para macros." & vbCr & "NO = No guardar copia.", _

vbYesNo, "Aviso") 'Mensaje informativo.

If resp = vbYes Then nombre = Left(nombre, punto) & "xlsm" 'Extensión de libro habilitado para macros.

End If 'Mid(nombre...

nombreC = "\Mi Copia" & Left(nombre, punto - 1) & Replace(Format(Now, " ddmmm hh:mm"), ":", "•") & ".xlsm" 'Nombre para la copia.

If Dir(ruta & "\Mi Copia\", vbDirectory) = "" Then

MkDir ruta & "\Mi Copia\" 'Si no existe la carpeta "MisCopias"; la crea.

If resp = vbYes Then Guardar ruta & nombreC 'Guardo con nombre + fecha.

Guardar ruta & nombre 'Guardo con nombre "simple".

CuentaCopias ruta & "\Mi Copia\", Mid(Left(nombre, punto - 1), 2) 'Si existen más de 3 copias borro la más antigua.

End If

Exit Sub 'Fin del proceso.

Errores: 'Control de errores.

If Err.Number = 4198 Then Exit Sub 'Guardado cancelado.

MsgBox "Error: " & Err.Number & " " & Err.Description 'Error no controlado.

End Sub

Sub Guardar(nombre$)

Application.DisplayAlerts = False 'Desactivo "Mostrar mensajes".

ActiveDocument.SaveAs Filename:=nombre, FileFormat:=wdFormatXMLDocumentMacroEnabled, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _

EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False 'Guardo documento o copia.

Application.DisplayAlerts = True 'Activo "Mostrar mensajes".

End Sub 'Guardar

Sub CuentaCopias(ruta$, nombre$)

Dim archivo$, num&, archViejo$, miFecha As Date

archivo = Dir(ruta & nombre & "*") 'Busco la primera coincidencia.

miFecha = Now 'Fecha y hora actual.

Do While archivo <> ""

If FileDateTime(ruta & archivo) < miFecha Then 'Si fecha de archivo es menor...

miFecha = FileDateTime(ruta & archivo) 'Fecha del archivo leido.

archViejo = ruta & archivo 'Ruta y nombre del archivo leido.

End If 'If FileDateTime...

num = num + 1 'Incremento el contador.

archivo = Dir() 'Busco coincidencia siguiente.

Loop

If num > 3 Then Kill (archViejo) 'Borro el más antiguo?

End Sub 'CuentaCopias

1 modificacion:

Sub GuardaCopia() 'Excel superior a 2003.

Dim ruta$, nombre$, nombreC$, punto&, resp&, numC&

On Error GoTo Errores 'Control de errores.

nombre = ActiveWorkbook.Name 'Nombre del archivo actual.

punto = InStr(nombre, ".") 'Posición del punto.

If punto = 0 Then ActiveWorkbook.Save 'Si no tiene extensión (no se ha guardado), muestro el cuadro de diálogo GUARDAR COMO.

resp = 6 'Valor por defecto para guardar la copia.

ruta = ActiveWorkbook.Path 'Ruta del libro actual.

nombre = "\" & ActiveWorkbook.Name 'Nombre del libro actual.

punto = InStr(nombre, ".") 'Posición del punto.

If Mid(nombre, punto) = ".xlsm" Then 'Si el libro no está habilitado para macros...

resp = MsgBox("Para guardar Copia con nombre+Fecha es preciso " & vbCr & _

"habilitar el libro para macros." & vbCr & vbCr & _

"SI = Habilitar para macros." & vbCr & "NO = No guardar copia.", _

vbYesNo, "Aviso") 'Mensaje informativo.

If resp = vbYes Then nombre = Left(nombre, punto) & "xlsm" 'Extensión de libro habilitado para macros.

End If 'Mid(nombre...

nombreC = "\Mi Copia" & Left(nombre, punto - 1) & Replace(Format(Now, " ddmmm hh:mm"), ":", "•") & ".xlsm" 'Nombre para la copia.

If Dir(ruta & "\Mi Copia\", vbDirectory) = "" Then

MkDir ruta & "\Mi Copia\" 'Si no existe la carpeta "MisCopias"; la crea.

If resp = vbYes Then Guardar ruta & nombreC 'Guardo con nombre + fecha.

Guardar ruta & nombre 'Guardo con nombre "simple".

CuentaCopias ruta & "\Mi Copia\", Mid(Left(nombre, punto - 1), 2) 'Si existen más de 3 copias borro la más antigua.

End If

Errores: 'Control de errores.

If Err.Number = 4198 Then Exit Sub 'Guardado cancelado.

MsgBox "Error: " & Err.Number & " " & Err.Description 'Error no controlado.

End Sub

Sub Guardar(nombre$)

Application.DisplayAlerts = False 'Desactivo "Mostrar mensajes".

ActiveDocument.SaveAs Filename:=nombre, FileFormat:=wdFormatXMLDocumentMacroEnabled, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _

EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False 'Guardo documento o copia.

Application.DisplayAlerts = True 'Activo "Mostrar mensajes".

End Sub 'Guardar

Sub CuentaCopias(ruta$, nombre$)

Dim archivo$, num&, archViejo$, miFecha As Date

archivo = Dir(ruta & nombre & "*") 'Busco la primera coincidencia.

miFecha = Now 'Fecha y hora actual.

Do While archivo <> ""

If FileDateTime(ruta & archivo) < miFecha Then 'Si fecha de archivo es menor...

miFecha = FileDateTime(ruta & archivo) 'Fecha del archivo leido.

archViejo = ruta & archivo 'Ruta y nombre del archivo leido.

End If 'If FileDateTime...

num = num + 1 'Incremento el contador.

archivo = Dir() 'Busco coincidencia siguiente.

Loop

If num > 3 Then Kill (archViejo) 'Borro el más antiguo?

End Sub 'CuentaCopias

Enlace a comentario
Compartir con otras webs

  • 2 months later...
  • 1 month later...
  • 2 weeks later...
  • 5 months later...

Hola compañero....

Me fue muy util tu aporte, el cual lo he revisado para editarlo y quede como yo lo necesito, acalro que no soy un experto en vba, pero por ahi con prueba y error he logrado modifcar algunas cosas de tu archivo para que quede como necesito, pero tengo dos problemitas los cuales no les hayo la solucion, es en el formulario de ingrproveedores, donde el orden del ingreso de los datos de un nuevo registro es: Rut, Nombre proveedor; etc, etc. Editando el formulario para cambiar solo el orden por: "Nombre proveedor"," Rut" y el resto igual. revisando sale que en el formulario en texbox2: los datos que se ingresen que pertencen a "Rut" se ingresan en la columna "A" ; al igual que texbox3 los datos que se ingresen que pertencen a "Nmobre proveedor" se ingresan en la columna "B". Al editar para que "Nombre proveedor" se registren en la columna "A" y "Rut" en la columna "B", *** No se modifica*** si cambio en texbox2 de "A" por " B" se graba..!!! pero si en texbox3 cambio de "B" por "A", en texbox2 vuelve a cambiarse por "A", y eso no lo puedo solucionar..!!! y tambien, he revisado por la web de como configurar para que en los texbox digitar solo numeros y solo letras, por que en unos texbox del formulario necesito digitar letras y no me permite y asi mismo con numeros. por favor compañero, echeme una manito. ya que este formulario me sirve mucho en mi trabajo. Y disculpe por no tener los suficientes conocimientos en VBA para resolver por mi mismo, pero le he dado vueltas y no he podidoo resolver, pero algunas cosas si le he podido hacer cambios a mi necesidad, casi a la mayoriaa..!!! ajaap..!! grcias de antemano por la atencion a mi problemita..!!! gracias y con anticipacion que tenga una Feliz Año 2014.

Nota: le dejo el archivo modificado a mi necesidad, pero aun con las fallitas que no puedo solucionar, echele un vistazo, y porfavorsito ayudeme.... Graciasss

FORMATO RETENCION.zip

Enlace a comentario
Compartir con otras webs

  • 3 weeks later...
  • 1 month later...

Excelente aportacion marco felicidades es muy completa solo tengo una duda y me gustaria hacer el cambio en vez de buscar con un combo box me gustaria poder escribirlo yo por q mi base tiene mas de 36500 registros y es complejo estar arrastrando la barra hasta encontrar el que quiero ya que realizo mas de 200 cambios y busquedas por dia gracias

Enlace a comentario
Compartir con otras webs

  • 4 months later...
  • 3 weeks later...
  • 11 months later...
  • 4 months later...

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.


×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.