.
Anteriormente presenté una macro que buscaba datos en la hoja de Excel a medida que se escribía en textbox, en ese oportunidad te presentó un ejemplo de macro que permite buscar datos en otra hoja distinta a la cual se muestran los datos, es decir Busca datos en una hoja y muestra los mismos en otra hoja distinta.
Otras pequeñas macros interesantes son: macro que sólo permite en el Textbox ingresar texto o string, macro que sólo deja ingresar números en los Textbox, otra es macro que escribe las barras automáticamente al ingresar las fechas.
Antes de seguir recomiendo que leas un excelente libro sobre Excel el que te ayudará operar las planillas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.
En el vídeo que sigue se puede ver la explicación de la macro con un mayor lujo de detalles.
Suscribe a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlas, buscar en listbox mientras escribes en textbox, ordenar hojas libro excel por su nombre, conectar Excel con Access y muchos ejemplos más.
if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}
Código que se inserta en la Hoja donde se requiere el filtro
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets(«Hoja1»).Range(«A2»).Value = «*» & TextBox1.Text & IIf(TextBox1.Text = «», «», «*»)
Call Searching
‘Application.DisplayAlerts = True
‘Application.ScreenUpdating = True
End SubPrivate Sub Searching()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If Sheets(«Hoja2»).FilterMode = True Then Sheets(«Hoja2»).ShowAllData
uf = Sheets(«Hoja2»).Range(«A» & Cells.Rows.Count).End(xlUp).Row
Sheets(«Hoja2»).Range(«C4:C» & uf).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range(«A1:A2»), Unique:=False
Sheets(«Hoja1»).Range(«A5:H100000»).Clear
Set RG = Sheets(«Hoja2»).Range(«A5», Sheets(«Hoja2»).Range(«H5»).End(xlDown)).SpecialCells(xlCellTypeVisible)
RG.CurrentRegion.Offset(1, 0).Copy
Sheets(«Hoja1»).Range(«A5»).PasteSpecial
Sheets(«Hoja1»).TextBox1.Activate
If Sheets(«Hoja1»).FilterMode = True Then Sheets(«Hoja1»).ShowAllData
‘Application.DisplayAlerts = True
‘Application.ScreenUpdating = True
End Sub
Private Sub TextBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets(«Hoja1»).Range(«E2»).Value = «*» & TextBox2.Text & IIf(TextBox2.Text = «», «», «*»)
Call Searching1
‘Application.DisplayAlerts = True
‘Application.ScreenUpdating = True
End Sub
Private Sub Searching1()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If Sheets(«Hoja1»).FilterMode = True Then Sheets(«Hoja1»).ShowAllData
uf = Sheets(«Hoja1»).Range(«A» & Cells.Rows.Count).End(xlUp).Row
Sheets(«Hoja1»).Range(«D4:D» & uf).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range(«E1:E2»), Unique:=False
Sheets(«Hoja1»).Range(«A5:H100000»).Clear
Set RG = Sheets(«Hoja2»).Range(«A5», Sheets(«Hoja2»).Range(«H5»).End(xlDown)).SpecialCells(xlCellTypeVisible)
RG.CurrentRegion.Offset(1, 0).Copy
Sheets(«Hoja1»).Range(«A5»).PasteSpecial
If Sheets(«Hoja1»).FilterMode = True Then Sheets(«Hoja1»).ShowAllData
Sheets(«Hoja1»).TextBox2.Activate
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets(«Hoja1»).Range(«A2»).Value = «*» & TextBox1.Text & IIf(TextBox1.Text = «», «», «*»)
Call Searching
‘Application.DisplayAlerts = True
‘Application.ScreenUpdating = True
End Sub
Private Sub Searching()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If Sheets(«Hoja2»).FilterMode = True Then Sheets(«Hoja2»).ShowAllData
uf = Sheets(«Hoja2»).Range(«A» & Cells.Rows.Count).End(xlUp).Row
Sheets(«Hoja2»).Range(«C4:C» & uf).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range(«A1:A2»), Unique:=False
Sheets(«Hoja1»).Range(«A5:H100000»).Clear
Set RG = Sheets(«Hoja2»).Range(«A5», Sheets(«Hoja2»).Range(«H5»).End(xlDown)).SpecialCells(xlCellTypeVisible)
RG.CurrentRegion.Offset(1, 0).Copy
Sheets(«Hoja1»).Range(«A5»).PasteSpecial
Sheets(«Hoja1»).TextBox1.Activate
If Sheets(«Hoja1»).FilterMode = True Then Sheets(«Hoja1»).ShowAllData
‘Application.DisplayAlerts = True
‘Application.ScreenUpdating = True
End Sub
Private Sub TextBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets(«Hoja1»).Range(«E2»).Value = «*» & TextBox2.Text & IIf(TextBox2.Text = «», «», «*»)
Call Searching1
‘Application.DisplayAlerts = True
‘Application.ScreenUpdating = True
End Sub
Private Sub Searching1()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If Sheets(«Hoja1»).FilterMode = True Then Sheets(«Hoja1»).ShowAllData
uf = Sheets(«Hoja1»).Range(«A» & Cells.Rows.Count).End(xlUp).Row
Sheets(«Hoja1»).Range(«D4:D» & uf).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range(«E1:E2»), Unique:=False
Sheets(«Hoja1»).Range(«A5:H100000»).Clear
Set RG = Sheets(«Hoja2»).Range(«A5», Sheets(«Hoja2»).Range(«H5»).End(xlDown)).SpecialCells(xlCellTypeVisible)
RG.CurrentRegion.Offset(1, 0).Copy
Sheets(«Hoja1»).Range(«A5»).PasteSpecial
If Sheets(«Hoja1»).FilterMode = True Then Sheets(«Hoja1»).ShowAllData
Sheets(«Hoja1»).TextBox2.Activate
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends