Macro que busca un valor en una columna de una hoja y muestra en un
msgbox los datos solicitados.
Vamos a suponer que tenemos que buscar en la columna A de una hoja de excel llamada hoja1 un dato que debemos colocar en un textbox de un formulario, llamado TextBox1 de la misma hoja: Sub buscar() ActiveSheet.Range("A1" ).Activate Set dato = Workbooks("libro1.xls" ).Sheets("Hoja1" ).Range("a:a" ).Find(What:=Textbox 1.Value, _ LookIn:=xlFormulas, _ LookAt:=xlPart, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False) 'Si se encuentra el dato, entonces.... If Not dato Is Nothing Then 'Pasamos a una variable los datos encontrados variable1 = dato 'Esto coloca en la variable llamada variable1 el dato encontrado. variable2 = dato.Offset(0, 1).Value 'Esto coloca el dato de la celda de la derecha al dato encontrado variable llamada variable2 variable3 = dato.Offset(0, 3).Value ' Hace lo mismo con el dato colocado dos columnas a la derecha del dato encontrado 'Muestra un msgbox con los datos encontrados. MsgBox "Las existencias que quedan en el almacn del producto" & " " & descripcion & " " & "cuya referencia es" & " " & referencia & " " & "son" & " " & unidades, vbInformation, "UNIDADES EXISTENTES" Workbooks("INVENTARIO.XLS" ).Close False 'Cierra el libro sin guardar los cambios Else 'Si el dato no se encuentra en la lista, entonces... 'Muestra un mensaje diciendo que no se encontro el dato MsgBox "El producto no se encuentra en el inventario", vbInformation, "PRODUCTO NO ENCONTRADO" End If End Sub
Macro que encuentra la primera celda vacia de una columna:
Sub celda_vacia() 'Siempre partimos en este caso del libro activo y teniendo en cuenta que la macro est en la misma hoja donde se realizan las operaciones. 'Mientras la celda activa no este vacia, baja una fila. Activesheet.range("a1" ).Activate Do While Not isEmpty(Activecell) Activecell.offset(1,0).Activate Loop 'En la celda activa, la cual esta vacia, escribe Hola. Activecell.value= "Hola" End Sub Macro que abre un libro llamado librodiferente.xls, el cual es diferente al que contiene la macro pero se encuentra la misma carpeta que el libro que contiene la macro. Sub abrir_libro_en_la_misma_carpeta() Workbooks.Open Thisworkbook.Path & "librodiferente.xls" End sub Abrir el libroempresa.xls especificando la ruta por ejemplo vamos a abrir un libro que este en la ubicacion "c:empresa Sub abrir_libro Workbooks.Open Filename:="c:empresalibroempresa.xls" End sub Macro que abre un libro cuyo nombre se encuentra en una variable: Sub abrir_libro_variable 'Colocamos el nombre del libro en un inputbox AbrirLibro=Inputbox("Teclea el libro que desea abrir", "Libro para abrir" ) 'Abrimos el libro con extensin xls
End Sub Macro para guardar un libro. Sub Guardar() 'Workbooks("nombre del libro.xls" ).Save End Sub Macro Guardar como... Sub GuardarComo() 'Esta macro guarda el libro en la misma carpeta que contiene la macro con un nombre diferente Guardar=inputbox("Guardar Como", Guardar como) Workbook.SaveAs ThisWorkbook.Path & "" & Guardar & ".xls" End Sub Macro que guarda un libro con otro nombre en la ruta que queramos, por ejemplo en c:macrosExcel Sub GuardarComo() Guardar=inputbox("Guardar Como", Guardar como) Workbook.SaveAs Filename:="c:maroxExcel" & Guardar End Sub Espero que os sean utiles estas macros.