Ayuda

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Ayuda

Notapor contreras » 16 Jul 2006 16:47

Hola, soy nuevo en esto de excel, y verdaderamente el basic no es mi fuerte, quisiera que me ayudaran con este macro sencillo que necesito

el pseudocodigo va mas o menos asi.

Código: Seleccionar todo
Sub MiMacro()

dim datos as integer /*son los datos a filtrar van del 001 al 113, aunque puede variar el maximo, por eso necesito otra funcion para ver el maximo*/
dim total as integer /*son aproximadamente 515 filas con datos, pero necesito una funcion que me permita conocer el total de datos, ya que pueden variar*/
dim fila as integer //lo uso para controlar la fila en la que voy comparando

total = Contar() //en el libro se pone =CONTAR(A:A) solo que en codigo no sé

For datos = 1 to ContarZona()//son las variables que quiero encontrar
    For fila = 6 to (total +6) //lo hago así­ por que los datos empiezan en la fila 6
          Sheets("Hoja1").Select
          IF range((("G" + fila) OR range("H" + fila ) )OR range("I" + fila)) = datos Then
             /*no se si sea correcto usar G + fila, lo que deseo es que el valor de la string sea G6 y luego G7 y G8, igual que H6 H7 H8  e I6 I7 I8 .... hasta que encuentre una celda vacia o hasta una variable de control*/
             Rows(fila:fila).Select
             Selection.Copy
             Sheets("Hoja2").Select
             Rows(fila:fila).Select
             ActiveSheet.paste
          End IF 
     Next /*no se si es correcto manejar el Next para el For de esta manera, lo que pretendo es que aumente el valor de fila en 1 */
Next //otra vez igual que el anterior

End Sub


Sub MaxZona()

//quiero saber el maximo de las zonas, como esta en la hoja de calculo =MAX(G:I)

Sub Contar()

//Aqui no se que hacer para que cuente como lo mencione anteriormente

End Sub


lo que busco con este script es haer que de una hoja que contiene datos numericos en tres colmnas, me busque el dato requerido, emepzando por el 001, hasta el ultimo dato que serí­a el 113 y si lo encuentra, que me copie toda la fila en la hoja2, para que queden ordenados todos los que solicitan la 001, todos los que solicitan la 002 ... hasta la 113, dejo adjunto la hoja de excel para que se den una idea

Gracias
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
contreras
Miembro Nuevo
Miembro Nuevo
 
Registrado: 11 Jul 2005 19:13

Notapor opermty » 17 Jul 2006 00:18

Para saber rapidamente en poco codigo cuantas filas tienes seria algo mas o menos asi:

Sub filas_count()
Range("A6").Select
Range(Selection, Selection.End(xlDown)).Select
filas = Selection.Rows.Count
MsgBox filas
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Notapor opermty » 17 Jul 2006 00:23

A cuales tres columnas te refieres y a cual es la idea del 113 ?
Sea mas especifico y concreto con sus explicaciones y requerimientos.
Efectivamente la macro es sencilla pero su explicacion se queda corta en cuanto a lo que necesita mejor dicho en los datos que aporta para ser claro y preciso en su solicitud.

saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Notapor opermty » 17 Jul 2006 00:25

Seria mas sencillo aplicar un autofiltro en su hoja y copiar el resultado en la hoja que menciona :)
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Re: Ayuda

Notapor contreras » 17 Jul 2006 04:07

opermty";p="28859 escribió:Para saber rapidamente en poco codigo cuantas filas tienes seria algo mas o menos asi:

Sub filas_count()
Range("A6").Select
Range(Selection, Selection.End(xlDown)).Select
filas = Selection.Rows.Count
MsgBox filas
End Sub

gracias, voy a intentarlo :)

opermty";p="28860 escribió:A cuales tres columnas te refieres y a cual es la idea del 113 ?
Sea mas especifico y concreto con sus explicaciones y requerimientos.
Efectivamente la macro es sencilla pero su explicacion se queda corta en cuanto a lo que necesita mejor dicho en los datos que aporta para ser claro y preciso en su solicitud.

saludos


gracias por la respuesta... y disculpen , me falto explicar que las columnas que quiero "filtar" sol las G, H e I. El 113 como podrá ver es el valor más alto de las zonas solicitadas, pero podrí­a variar depede de cuando se actualizen los datos.
En el momento en que se encuentre el valor solicitado (ira buscando desde el 001 hata el mayor, que de momento es el 113) deseo que me copie toda la fila donde se localiza dicho dato y la pegue en la fila de la otra hoja. De este modo realiará un ciclo automático y así­ quedarí­an ordenados por solicitud de zona en la segunda hoja.

opermty";p="28861 escribió:Seria mas sencillo aplicar un autofiltro en su hoja y copiar el resultado en la hoja que menciona :)

pues eso es lo que he venido haciendo, pero el autofiltro solo toma los valores de la fila G, pues yo no se como hacerle para que me filtre los valores de G H e I juntos, si tienen alguna idea de como lo pueda lograr se los agradecerí­a mucho.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
contreras
Miembro Nuevo
Miembro Nuevo
 
Registrado: 11 Jul 2005 19:13

Re: Ayuda

Notapor ST » 17 Jul 2006 13:52

contreras:

lo que entendi es ordenar en forma consecutiva los datos de las columnas G,H e I
de tal manera que te muestre el 1º dato al ultimo(en forma ascendente).

pues,bien lo que hice(y espero haber entendido correctamente) es ordenar en 1º lugar por la columna "H" y luego las otras 2;de tal manera que te mostrara tu base de datos oredenada por la "zona1"= 001 hasta la 113 y por cada una de ellas te mostrara la "zona2" y3 tambien en orden ascendente.

en cuanto al autofiltro entiendo que lo utilizas para mostrar los valores que analizas y no perderte entre tanta informacion.
espero sea lo que buscas
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
ST
Miembro Frecuente
Miembro Frecuente
 
Registrado: 06 Jun 2005 17:56
Ubicación: Acapulco

Notapor opermty » 17 Jul 2006 14:23

Disculpar pero desde que tipo de archivo importas el dato, no me lo reconoce con una simple comparacion al tratar de recorre la columna de datos :)
Vamos a hacerlo por autofiltros para no batallar
Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Re: Ayuda

Notapor contreras » 18 Jul 2006 19:50

exacto, eso era lo que buscba hacer..

realmente no habia analizado lo sencillo que era ordenar los datos con la herramienta de autoordenamiento, y lo de los filtros tiene razón, es para buscar rapidamente

no entedi eso de que me pregunta de donde importo el dato, creo que debe ser por el formato de celda que le di, es tipo personalizado "000" para que agregue los ceros necesarios al agregar un nuevo dato, pero todo se introduce manual directo al archivo

muchas gracias por la ayuda
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
contreras
Miembro Nuevo
Miembro Nuevo
 
Registrado: 11 Jul 2005 19:13


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados