Hola
Este aporte es una version similar al turbofiltro, pero enfocado dentro de un userform (formulario), la verdad no es complicado el codigo (ya lo veran)
1- Se puede adaptar a cualquier base de datos
2- Se puede iniciar desde cualquier hoja
3- Se debe dejar libre la hoja "LISTBOX" (esta oculta)
4- Para Nombre/Apellido la busqueda es del tipo comodin *caracteres*
5- Para Puesto y Area es del tipo comodin *caracteres
6- Para Legajo y Categoria la busqueda es meramente numerica
7- El filtro es permanente, es decir dinamico, mientras introduces cualquier caracter
8- Si los textbox estan vacios el Listbox se limpia
Espero lo disfruten y que se aproveche
Saludos desde Honduras
miércoles
Colorear celda en filtro activo
Hola
A veces algunos usuarios se pierden, en sus bases de datos, cuando estan haciendo muchos filtros, en el sentido de que Excel da color nada mas a la flechita del filtro activo, pues bien lo que tratan las siguientes macros es de colorear el encabezado donde existe un filtro de datos
Revisar el adjunto para pruebas y espero sea de utilidad
Saludos
A veces algunos usuarios se pierden, en sus bases de datos, cuando estan haciendo muchos filtros, en el sentido de que Excel da color nada mas a la flechita del filtro activo, pues bien lo que tratan las siguientes macros es de colorear el encabezado donde existe un filtro de datos
Sub colorearceldafiltro()
Application.ScreenUpdating = False
With ActiveShee
tucol = .Range("A1", .Range("A1")).End(xlToRight).Column If .AutoFilterMode Then
With Range(Cells(1, 1), Cells(1, ucol))
.Interior.ColorIndex = 0
.Font.ColorIndex = 0
End With
For col = 1 To ucol
With .AutoFilter.Filters(col)
If .On Then
'c1 = .Criteria1
With Cells(1, col)
'.Value = "'" & VBA.Mid(c1, VBA.InStr(c1, "=") + 1, 100)
.Font.ColorIndex = 2
.Interior.ColorIndex = 1
End With
End If
End With
Next col
End If
End With
Application.ScreenUpdating = True
End Sub
Revisar el adjunto para pruebas y espero sea de utilidad
Saludos
Colorear facilmente la fila activa
Hola
Esta es una forma facil de pintar la fila activa en Excel mediante VBA
Espero que sea de mucha utilidad
Saludos desde Honduras
Esta es una forma facil de pintar la fila activa en Excel mediante VBA
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Rem conseguimos la ultima celda ocupada de la columna A
uf = Range("A" & Rows.Count).End(xlUp).Row
Rem trabajaremos con Target/Objetivo
With Target
Rem si la columna activa se localiza despues de la columna E
Rem si la fila activa es menor que 5
Rem si la fila activa es mayor que uf (ultima fila ocupada)
Rem >>> entonces salir de la rutina
If .Column > 5 Or .Row < 5 Or .Row > uf Then Exit Sub
Rem trabajando con el rango Range("A5:E" & uf)
With Range("A5:E" & uf)
Rem ningun color
.Interior.ColorIndex = xlNone
Rem negrita desactivada
.Font.Bold = False
End With
Rem trabajar con la celda/fila activa
With Range(Cells(.Row, 1), Cells(.Row, 5))
Rem color a 6 (amarillo)
.Interior.ColorIndex = 6
Rem negrita activada
.Font.Bold = True
End With
End With
End Sub
Espero que sea de mucha utilidad
Saludos desde Honduras
domingo
Validacion de datos (tipo Google)
Hola
He preparado la siguiente lista dinamica (validacion de datos), solo se debe escribir la(s) letra(s) y pinchar o dar clic en la flechita de validacion para ver los datos encontrados segun el criterio
He usado la funcion INDICE, COINCIDIR y CONTARSI
Espero sea de mucha utilidad
Saludos desde Honduras
https://1drv.ms/x/s!ArXFzDCBi3UYgllU_n4XKBBWfinR
He preparado la siguiente lista dinamica (validacion de datos), solo se debe escribir la(s) letra(s) y pinchar o dar clic en la flechita de validacion para ver los datos encontrados segun el criterio
He usado la funcion INDICE, COINCIDIR y CONTARSI
Espero sea de mucha utilidad
Saludos desde Honduras
https://1drv.ms/x/s!ArXFzDCBi3UYgllU_n4XKBBWfinR
Eliminar Duplicados
Hola a todos!
De nuevo regreso con un aporte mas...
A raiz de varios temas similares (en uno de los foros que frecuento), y que muchos usuarios buscan este tipo de ayuda, y bueno me refiero a eliminar duplicados, aunque Excel, trae consigo esta herramienta, tenemos que decir que solo es validad para columnas continuas, o si seleccionamos una BD que tenga registros iguales, es decir en modo de filas y funciona perfectamente. Bueno la limitante de esta poderosa herramienta es que no elimina registros o datos, cuando por ejemplo en varios registros hay igualdad, pero en dos columnas no continuas... a continuacion adjunto un archivo, donde la columna "A" que es la Matricula y la columna "F" que son los Kilometros, y que la macro elminara todos los registros iguales, dejando solo uno de ellos
Espero que sirva
Saludos desde Honduras
De nuevo regreso con un aporte mas...
A raiz de varios temas similares (en uno de los foros que frecuento), y que muchos usuarios buscan este tipo de ayuda, y bueno me refiero a eliminar duplicados, aunque Excel, trae consigo esta herramienta, tenemos que decir que solo es validad para columnas continuas, o si seleccionamos una BD que tenga registros iguales, es decir en modo de filas y funciona perfectamente. Bueno la limitante de esta poderosa herramienta es que no elimina registros o datos, cuando por ejemplo en varios registros hay igualdad, pero en dos columnas no continuas... a continuacion adjunto un archivo, donde la columna "A" que es la Matricula y la columna "F" que son los Kilometros, y que la macro elminara todos los registros iguales, dejando solo uno de ellos
Espero que sirva
Sub Elimina_duplicadosGP()
Dim uf As Long, ColA As Long, ColF As Long, Eliminados As Long
With Application
.ScreenUpdating = False
uf = Range("A" & Rows.Count).End(xlUp).Row
Eliminados = 0
For x = uf To 3 Step -1
ColA = .CountIf(Range("A2:A" & x), Range("A" & x))
ColF = .CountIf(Range("F2:F" & x), Range("F" & x))
If ColA > 1 And ColF > 1 Then Eliminados = Eliminados + 1: Rows(x).Delete '.Interior.ColorIndex = 6
Next
With .ActiveWindow
.ScrollColumn = 1: .ScrollRow = 1: Range("A1").Select
End With
.ScreenUpdating = True
If Eliminados = 0 Then _
MsgBox "No existen registros que eliminar", vbExclamation, "Informacion": Exit Sub
MsgBox "Registros eliminados: " & VBA.Format(Eliminados, "#,##0"), vbInformation, "Exito!"
End With
End Sub
Saludos desde Honduras
Suscribirse a:
Entradas (Atom)