Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Activa control dependiendo de criterio y copia datos

En varias ocasiones se necesita que un botón, ya sea en un formulario o como en este caso un botón incrustado en Excel, se habilite sólo si se cumplen ciertos requisitos, para luego de ello copiar o manipular datos, este post muestra como se activa un commandbutton dependiendo de ciertos criterios, una vez cumplidos estos criterios gurda los datos en un lugar específico, el guardado de datos ya ha sido explicado en mucho ejemplos desarrollados en este blog como por ejemplo recorrer filas, buscar un dato y pegarlo en otra hoja o recorrer filas buscando y comparado datos de dos columnas de hojas distintas o recorrer filas y buscar datos en base a criterios, en definitiva son numerosos los ejemplos sobre como buscar datos y copiarlos en otra hoja si quieres ver más ejemplos que te ayuden a automatizar tu libro de Excel o proyecto que estés creando mira estos ejemplos y si estás trabajando con formularios mira estos otros ejemplos.

Si no tienes conocimiento suficiente sobre el manejo de hojas de Excel, te recomiendo antes de introducirte en el mundo de las macros, que leas un excelente libro sobre Excel el que te ayudará manejar las planillas de cálculo, debes hacer click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá.

MASTERCARD PAYONEER

Desde el link del final se puede descargar el archivo de ejemplo de esta manera podrás ver su funcionamiento en forma más detallada. El código de VBA o Macro de Excel evalúa ciertas celdas, si las mismas se encuentran con datos es decir no vacías, entonces copia los datos, caso contrario sale un msgbox que le indica que rellene todos los datos de los campos necesarios, en caso que necesites ayuda sobre msgbox visita el post relacionado; si necesitas saber sobre combobox incrustado en Excel debes visitar el siguiente post.

La macro de Excel funciona de la siguiente forma, cuando se inicia el archivo de Excel hace que el CommandButton se bloque, si se ingresan datos en las celdas determinadas como necesarias, entonces se desbloquea el CommandButton y se copian loa datos correspondientes de la hoja1 en la hoja2.

Código que se debe insertar en el control en este caso CommandButton1

Private Sub CommandButton1_Click()

Dim dato1, dato2, dato3, dato4 As Integer
dato1 = ActiveSheet.Cells(1, 1)
dato2 = ActiveSheet.Cells(2, 1)
dato3 = ActiveSheet.Cells(1, 3)

If dato1 <> emtpy And dato2 <> emtpy And dato3 <> emtpy Then
CommandButton1.Locked = False
Search
Else
MsgBox («Debe rellenar los campos solicitados»), vbCritical, «AVISO»
End If
End Sub

Código que se debe insertar en Worksheet de la hoja donde está incrustado el control activex en este caso es un commandButton o Botón de Comando.

Private Sub Worksheet_Activate()
CommandButton1.Locked = True
End Sub

 

Código que se debe insertar en un módulo

Sub Search()
Application.ScreenUpdating = False

Dim filac, filabr, filam As Integer

filac = 1
filam = 1
Sheets(«hoja2»).Select
Cells.Select
Selection.ClearContents
While Sheets(«hoja1»).Cells(filac, 1) <> Empty

      Sheets(«hoja2»).Cells(filam, 1) = Sheets(«hoja1»).Cells(filac, 1)
      Sheets(«hoja2»).Cells(filam, 2) = Sheets(«hoja1»).Cells(filac, 2)
      Sheets(«hoja2»).Cells(filam, 3) = Sheets(«hoja1»).Cells(filac, 3)
      Sheets(«hoja2»).Cells(filam, 4) = Sheets(«hoja1»).Cells(filac, 4)
filam = filam + 1
filac = filac + 1
Wend
MsgBox («Los datos se guardaron correctamente»), vbInformation, «AVISO»
Application.ScreenUpdating = True
End Sub

Otros post de utilidad:
Busca un dato en todas las hojas de excel
Combobox incrustado en Excel
Formulario para insertar datos en hoja de excel
Tutoriales sobre VBA
Llenar combobox y buscar datos
Mensaje de Alerta y envío de mail con Excel
Combobox que lista hojas de excel y las selecciona

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

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