Saltar al contenido

Bva para generar desplazamiento de celdas


Recommended Posts

publicado

Buenos días para todos...

Mi consulta es:

Tengo un excel en donde esta conformado en la primera hoja una lista y n cantidad de hojas donde:

n= personas que deben cumplir con ciertos criterios para pasar

primera hoja= lista donde deben ir las personas que no cumplieron con ciertos criterios

como mencione anteriormente en cada hoja se pone el nombre y cédula del individuo y se desglosa en los criterios que deben cumplir para pasar ejemplo: Experiencia certificada, realizacion de cursos etc... Cuando la persona no cumple con el requisito de terminar estudios se debe reportar en la lista (situada en la primera hoja) con su nombre y cédula...

Realice una macro para que cuando incumpla la oprima y me ponga el nombre y cédula en la primera hoja pero cuando paso a otra hoja me sobrescribe en la misma celda donde pego la anterior persona, necesito que la macro realice especie de desplazamiento de lista.

Adjunto macro

Sub Macro1()

'

' Macro1 Macro

'


'

Range("D7").Select (en esta celda esta el nombre )

Selection.Copy

ActiveSheet.Paste Destination:=Sheets("Hoja5").Range("B4") (creo que aca esta el problema porque segun veo todos los nombre los pegara en la celda B4 pero no se cual usar para que me genere desplazamiento de celda)

ActiveSheet.Select (esta es para señalar la hoja de la persona para seleccionar la celda de la cedula)

Range("E8").Select

Application.CutCopyMode = False

Selection.Copy

ActiveSheet.Paste Destination:=Sheets("Hoja5").Range("C4") (y aca el mismo problema con el nombre me sobrescribe todas las cedulas en la misma celda)

ActiveSheet.Select (vuelve a la misma hoja de la persona)


End Sub[/CODE]

formato.rar

publicado

El problema de utilizar el grabador de macros para este tipo de tareas es que los rangos que define en el código no son variables, sino que se centra exclusivamente en los utilizados durante la grabación.

De hecho, algunas instrucciones como por ejemplo "ActiveSheet.Select" no tienen mucho sentido desde la lógica interna del código, pues lo que estás haciendo es decirle que seleccione una Hoja que ya está activa, lo que viene a ser algo redundante.

He abierto tu archivo y creo que tus necesidades quizás vayan más allá de simplemente colocar el nombre y la cédula en la Hoja del listado para cada una de las personas que tengan "0" en "EXPERIENCIA CERTIFICADA", pero eso es algo que solo sabes tú cómo quieres hacerlo.

Plantea si quieres de nuevo la consulta, incluyendo los aspectos que deseas abordar.

Un saludo,

Tese

publicado

Hola Tese1969, si claro que va mas alla pero creo yo que si se establece una estructura general de la macro se puede hacer con el resto de criterios...

Prácticamente la idea central es realizar una lista de las personas que no cumplen con los items, pero como reitero si se tiene una estructura general de un item se puede sacar el de los demas...

Lo de "ActiveSheet.Select" es porque como tengo que copiar dos celdas (la del nombre y cédula) pues me pareció una solución... ahora no se si exista la posibilidad de que cuando la persona no cumpla con un item al colocar 0 me genere automáticamente el nombre y la cédula en la lista correspondiente... Aclaro lo que he hecho respecto a la macro ha sido producto de buscar y buscar foros, videos, googleando, leyendo, etc...

Te agradecería si pudieras ayudarme con este tema gracias por tu amabilidad y atención...

un abrazo.

publicado

Sí se puede realizar de forma automática el que al colocar un "0" en determinado item el nombre y la cédula se pasen al listado, pero tienes que tener en cuenta varias cosas:

1º.- Si colocas un "0" y pasa el nombre y la cédula al item correspondiente, si cambiaras posteriormente la puntuación de ese item a por ejemplo "1", el nombre y cédula seguirían en la lista, salvo que se definiera otro código para eliminarlo.

2º.- La forma de reconocer el item podría hacerse a través de la descripción del mismo, pero he visto que en varios casos esa descripción no se corresponde en su totalidad con la que aparece en el listado. Por ej: "CERTIFICADO ANTECEDENTES DISCIPLINARIOS"(listado) y "CERT. ANTECEDENTES DISCIPLINARIOS"(hoja personal) no es lo mismo en caso de que tenga que buscarlo.

Si modificas los casos en que es diferente esta información para hacerlos idénticos, sería más sencillo automatizar la inclusión en cada item.

Dime algo sobre esto y vamos avanzando.....

Un saludo,

Tese

publicado

Hola Tese

De ante mano te doy las gracias por contestarme y orientarme en la formulación de este proyecto a seguir...

contesto según el orden en que me especificaste:

1º.- Si miras en la parte inferior izquierda (hojas personales) aparece como la calificación donde 1=cumple; 0=no cumple (por lo tanto se va a la lista a la que corresponde el item) y N/A= no aplica, (generalmente el N/A es para una libreta militar a una mujer que obviamente no le aplica) seria solo como formularlo para que si es 0 lo registre en la lista (trate de hacerlo por funciones pero me resulto algo muy complejo)

2º.- Como no estaba seguro que se podía hacer de esa forma que tu me acabas de ilustrar no le vi problema en sufijo los términos pero dado el caso que tu me comentas no habría ningún problema en colocarlo tal cual.

Tese me nace una pregunta: si queda formulado como tu me dices que se puede, no habría problema en dado caso que me toque anexar mas personas (generalmente en cada libro de excel van aproximadamente 300, 400 hojas personales) en que se me dañe la formulación?

Gracias por tu disponibilidad para ayudarme

Un abrazo Tese

publicado

Si en tu archivo real el nombre de la Hoja donde va el listado no es "Hoja5", tendrías que modificarlo internamente en el código que voy a crearte, porque es necesario tomar como referencia ese nombre para saber dónde incluir los datos.

Otra cosa que necesito saber mientras voy avanzando es cómo se incluirían las puntuaciones en cada item, es decir, si vas a ir poniendo "0" ó "1" ó "N/A" item por item o quizás estas puntuaciones te las vas a traer de otro lado y vas a copiarlas y pegarlas en las hojas personales. A la hora de establecer el funcionamiento es muy importante esta diferenciación.

Y no te preocupes, que en principio, tal y como lo tengo diseñado en mi cabeza, no va a depender el funcionamiento del número de hojas personales que tengas.

Cuando puedas me respondes a esas dudas para afinarlo al máximo posible.

Un saludo,

Tese

publicado

Bueno, pues parece que en poco más de 20 líneas de código lo hemos podido conseguir.

Prueba esta primera versión y me comentas.

Si ves que pones un "0" en un item y parece que no ha pasado nada, no te preocupes, vete a la hoja del listado y busca el nombre y la cédula debajo de su item, para que veas que estará ahí.

Por cierto, aunque en tus hojas personales solo habías incluido el nombre de uno de los escoltas, me he puesto yo mismo como escolta nº 2 de la Hoja 01 para que veas que también funciona el procedimiento en caso de tener que incluir 2 escoltas en cualquiera de las hojas.

También he modificado los nombres de los items en la hoja del listado que eran diferentes a lo que aparecía en las personales. Mejor cambiar 1 que decenas ó cientos....jejeje

Por cierto, espero que tu archivo real tenga la misma estructura de filas y columnas del que has subido, pues la referencia para el nombre y la cédula la tiene incluida en base a las filas 7 y 8, y por otro lado, el código se dispara cuando se producen cambios en los rangos e9:e29 y h9:h29......que son los que deben incluir los valores de los items según el ejemplo.

En fin, ya me cuentas.....

Un saludo,

Tese

FORMATO ADMINISTRATIVO_Tesev1.rar

publicado

Hola Tese, discúlpame por responder tan tarde pero los estudios el trafico y demás...

Oye acabo de revisar e archivo y es justamente lo que he tratado de hacer durante 2 semanas y tu lo has hecho en cuanto? 2 horas por ahí? jeje... debo decirte que eres demasiado bueno en cuanto a excel. Me has orientado, partiendo de una idea y lo mejor, plasmándola a la realidad.

Tere definitivamente me solucionaste la duda por completo pero solo tengo una pregunta

como lo has hecho? me gustaría aprender para futuro proyectos de ese tipo. ¿en donde pudiera ver la estructura, que variables puedo cambiar? porqué ando mirando y no lo hiciste por macro (si se puede saber claro esta)... y de nuevo muchas muchas gracias! que tu Dios te bendiga y espero poderte ayudar como lo hiciste conmigo un abrazo.

publicado

Buenas, Gustavo

Me alegra haberte podido ayudar, porque a veces le dedicamos mucho tiempo a realizar tareas que una maquinita hace en segundos. Otra cosa, claro está, es tener los conocimientos para ello, pero si te interesa, todo se puede aprender y más si lo que obtienes es tan satisfactorio.

Pues en realidad no tardé más de media hora....jejeje......porque como tú bien dices teniendo claro el procedimiento el resto es simplemente plasmarlo en código y comprobar que funcione como deseas.

Obviamente no se trata de magia y el código está basado en un evento (cuando se da determinada situación se ejecuta el código).

Puedes verlo en "ThisWorkbook" (con tu Excel abierto pulsa Alt + F11 para que aparezca el editor de VBA y en la ventanita arriba a la izquierda pulsa en ese apartado, que estará debajo del resto de las Hojas que componen el archivo).

Si necesitas pasar el código a otro archivo es tan fácil como copiar y pegar ese código de uno a otro en el editor a su apartado correspondiente.

En caso de que consideres que tu consulta ha obtenido una respuesta aceptable, debes dar por solucionado el tema para que los administradores lo puedan cerrar. Escribe algo así como "Tema Solucionado".

Un saludo,

Tese

  • 2 weeks later...
publicado

Hola Tese, primero que todo te mando un saludo muy formal, y espero que todo te este yendo de maravilla.

Tese Mirando el editor de VBA de la obra que hiciste sobre mi formato, he querido pegarlo a otro formato similar, cambiándole obviamente el rango ajustándolo a dicho formato pero no me genera nada. podrías asesorarme para saber que cambiar en el VBA para este nuevo archivo?

Gracias por tu atención prestada

FORMATO OPERATIVO vv.rar

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.