Programación General > VBA

 Buscar en una tabla Excel

<< < (3/7) > >>

Estrufi:
Ok!!!

 Muchas gracias! a ver k soy capaz de hacer mañnaa y te cuento.Mil gracias!

 Saludos!

Estrufi:
Buenas!!

 Hay van unas cuantas dudas más:

 1) Se supone que si usas la opción "grabar macros", esta graba en codigo lo que se va haciendo en el excel? Esta macro es capaz de intepretar los filtros que hago en el excel, copia, pega, etc....

 2) Cual es el paso para definir y ejecutar correctamente una macro editada en vba en excel, quiero decir, debo entrar en excel crear una nueva hoja de macros universal y luego crear una funcion en VBA, pero es que esa macro queda vacia, no se, en ese sentido me lio mucho. Ya te comentaba k no sabia bien k era una macro en plan modulo y un MyWorkbook.

 Esto es lo que pretendo hacer, por ahora ya me da error al entrar en el primer Do.  Se supone que tengo varias hojas, no? En una de ellas mucha información y en las otras gráficas y unas tablas ya con un formato, lo que quiero es ir cubriendo essas tablas, conservar el formato, ir arrastrando hacia abajo las tablas de despues....si alguien puede que le eche un ojo, pork no va......

 Sub Cubrir_tablas()

Dim fila_o    As Integer
fila_o = 2 'Filas del fichero de datos.
'Filas correspondientes a cada hoja del reporte.
fila_1 = 22
fila_2 = 23
fila_3 = 20

'Cubrimos Todas las Hojas de la parte  desde la hoja con los datos:
     
     'Do While (Worksheets("hojadatos").Cells("fila_o,1")) <> vbNullString
     
      'If (Worksheets("hojadatos").Cells(fila_o, 1) = "valor") And (Worksheets("webmaximos").Cells(fila_o, 6) > 75) Then
      'Copiar en hoja num 1:
      'Worksheets("hojadatos").Range(Cells(fila_o, 1), Cells(fila_o, 6)).Copy
      'Worksheets("hoja1").Range(Cells(fila_1, 2), Cells(1, 7)).Paste
      'fila_1= fila_1 + 1
      'Insertar fila para ir desplazando las otras tablas.
      'Conservar formato tabla destino.
      'End If

 'Y asi con el resto. Quiero hacer referencia a las hojas por nombre y sólo tengo un libro abierto... ya me da error en la primera linea, debería hacerlo de otra forma...????

End Sub

 Muchisimas gracias de verdad, estoy perdidisimaaaaaaa

 Ah! como se puede saber el numero de filas que tiene un fichero??
 Como se supone que vinculo la macro al editor VBA?

 Muchas gracias!!!!

m0skit0:

--- Cita de: "Estrufi" ---Se supone que si usas la opción "grabar macros", esta graba en codigo lo que se va haciendo en el excel?
--- Fin de la cita ---
Sí, pero tiene sus limitaciones. Pero puede servir para generar un esqueleto sobre el que trabajar. Aparte, genera un código muy ineficiente.


--- Cita de: "Estrufi" ---Cual es el paso para definir y ejecutar correctamente una macro editada en vba en excel
--- Fin de la cita ---
En Excel XP:


* Abrimos Excel y nos sale un libro vacío (si no, creamos uno nuevo o abrimos uno ya hecho, no importa)
* Herramientas -> Macro -> Editor VB
* A la izquierda veremos "ThisWorkbook", que hace referencia al libro que tenemos abierto. Le damos doble click.
* Ahora se nos abre una hoja en blanco en la ventana de la derecha. Hacemos click en ella y escribimos:


--- Código: Text ---Public Sub Ejemplo()    ActiveWorkbook.Sheets(1).Cells(1,1).Value = "¡Hola Estrufi!"End Sub 
* Volvemos a la ventana del libro de Excel y pinchamos en Herramienta -> Macro -> Macros. Ahí nos debería salir una ventana con las macros que haya, en este caso ThisWorkbook.Ejemplo. La seleccionas y le das a Ejecutar.
* Ya has ejecutado tu primera macro Excel ;)

--- Cita de: "Estrufi" ---'Do While (Worksheets("hojadatos").Cells("fila_o,1")) <> vbNullString
--- Fin de la cita ---
Debería ser:


--- Código: Visual Basic ---Do While (Worksheets("hojadatos").Cells(fila_o,1).Value <> vbNullString) Y utiliza las etiquetas de código para poner código. Si no sabes qué son las etiquetas de código: viewtopic.php?f=1&t=35955

¡Saludos!

Estrufi:
Hola!!!

 Muchisimas gracias por tu tiempo, tengo alguna duda más, pero la más importante es saber porque da error la siguiente función en la parte en la que quiero copiar un rango de celdas de una hoja a otra de un libro.

 ¿Que significa el "&"? es para concatenar? como podría cambiar una variable a tipo string....Por eje: si quisiera hacer algo asi : Ai, siendo i=1,2,3...., para recorrer A1,A2,A3-....Ya que he intentando hacer la función con Cells y no hubo manera.

 Muchas gracias de verdad!!!




--- Código: Text --- Sub Cubrir_reporte()Dim Rango_Origen As RangeDim Rango_Destino As Rangefila_max = 2 Do While (Worksheets("hoja_datos").Cells(fila_max, 1).Value <> vbNullString)          If (Worksheets("hoja_datos").Cells(fila_max, 1) = "Alberto") Then     'Asi sólo copia la primera linea.     Set Rango_Origen = Coger_Rango("webmaximos", "A2", 1, 6)     Rango_Origen.Copy     Set Rango_Destino = Coger_Rango("Troncales", "B2", 1, 6)     'ERROR:     Rango_Destino.Paste PasteSpecial:=xlPasteAll    'fila_troncales = fila_troncales + 1    'Ir concatenando A2,A3,A4,A5....Buscar la manera de ir pegando.     End If            fila_max = fila_max + 1      Loop      End Sub  Function Coger_Rango(Hoja As String, Casilla As String, Filas As Integer, Columnas As Integer) As Range     Dim Casilla_Final As String     Worksheets(Hoja).Activate     ActiveSheet.Range(Casilla).Activate     ActiveCell.Cells(Filas, Columnas).Activate     Casilla_Final = ActiveCell.Address     ActiveSheet.Range(Casilla & ":" & Casilla_Final).Select     Set Coger_Rango = ActiveSheet.Range(Casilla & ":" & Casilla_Final)End Function  

m0skit0:

--- Cita de: "Estrufi" ---¿Que significa el "&"? es para concatenar?
--- Fin de la cita ---



--- Cita de: "Estrufi" ---como podría cambiar una variable a tipo string....Por eje: si quisiera hacer algo asi : Ai, siendo i=1,2,3...., para recorrer A1,A2,A3-....Ya que he intentando hacer la función con Cells y no hubo manera.
--- Fin de la cita ---
Se cambia a string con CStr(). Un ejemplo de lo que dices sería:


--- Código: Visual Basic ---For i=1 To 10    ActiveWorkbook.Sheets(1).Cells(1,i).Value = "A" & CStr(i)Next i Esto rellenaría las 10 primeras columnas de la fila A ;)

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa