Ayuda con Macro

Hola Buen Dia,

Tengo una macro que me descarta teléfonos que no sirven, pero lo malo de esta macro es lo siguiente:

Tiene una plantilla HOJA 2 donde saca de referencia el código de ciudad que se le antepone a algunos teléfonos, el problema es que cuando quiero utilizar esta macro en otro archivo tengo que crear una hoja "HOJA 2" con el mismo nombre y colocar esa información.

Necesito utilizar esta macro en varios libros sin la necesidad de estar creando una HOJA2 en cada libro que necesite utilizarlo,

* También necesitaba que se le agregue lo siguiente: que borre todas las celdas que contendan un numero telefónico que comience con 18. EJEMPLO 1845678; 18976548; 18654532; 182345556

* Y que borre todas las celdas que contengan teléfonos con 13 caracteres o mayor que 13, EJM 1234567892335; 4587548745456; 4587896354838

y si el teléfono comienza con "14" o con "4" y ademas tiene igual o mayor de 9 caracteres que se borre la celda. EJM 123456789; 1465487954; 148987565; 45658789523

Gracias.!

Respuesta
1

Es en los otros ficheros donde tendrás que poner una macro que abra el fichero donde está esa Hoja2 y consulte los datos. Para poder hacerlo se necesita saber el nombre que tiene el fichero. Puede hacerse que abran el libro nada más que los otros se abran. Y tendrías que cambiar las referencias que usas a la Hoja2 por referencias al libro y la hoja, puede que esto te lleve más trabajo que lo que estás haciendo si usas pocas veces cada libro. Pásame los libros para saber cómo de grande es el problema.

Y sobre los teléfonos que pide borrar lo mismo. Es muy difícil seguir un programa no indentado y trabajar sin tener las hojas sobre las que se actúa. Pásame el libro.

Mi correo es

Estimado Valero,

ya se envío el archivo.

¿Las macros Formateo_Telefonos_Lima Y Formateo_Telefonos_Lima_Respaldo son la misma?

Entonces yo creo que quieres q

Se mandó sola la respuesta.

Entonces creo q

Se mandó sola la respuesta.

Entonces creo que quieres que la hoja 2 vaya a otro libro. Y que los libros de teléfonos abran ese libro con la hoja 2 y tomen de ahi los datos.

¿Es eso?

prefiero tener ha hoja 2 en la misma macro

Estimado,

Que la información de la hoja 2 este en la misma macro de ese modo se evita crear una hoja nueva cada vez que se ejecuta la macro

esperando la respuesta

Estoy probando la macro. Aparecen teléfonos de seis cifras de Cerro de Pasco y Lima cuya clave no aparece en la Hoja2

Dime las claves de esos departamentos.

Bueno supongo que CERRO DE PASCO es lo mismo que PASCO y añadiré esa leyenda en la lista de departamentos. Sin embargo la clave de LIMA si debes decírmela, o si hubo un error al poner un teléfono de 6 cifras de Lima corregir el Libro1. Es el teléfono 991474 de la fila 540, puede que haya otros pero es que he hecho que solo avise de la primera vez que falta un nombre porque si no nos podíamos morir si avisaba de todos los de CERRO DE PASCO que faltaban.

Te voy a mandar lo que hay de momento. He hecho la parte de pasar la Hoja2 a Macro, ya puedes eliminar la Hoja2 si quieres.

Srry por la demora, el caso de lima es 1 (solo el numero uno) y unicamente en Caso De que los Teléfonos TeNgan 7 dígitos dando el Total de 8 dígitos EJM 14564545. En el caso Del teléfono k encontraste es un teléfono celular ( todos los teléfonos con 9 al inicio son CELULARES) a esos no se les considera el código de ciudad EJM van solo 945784545

¿Ya pero entonces que hacemos?

He visto que hay otros teléfonos de 6 cifras que empiezan por 9, pero como no eran de Lima no daban problema y se les añadía la clave del departamento. A lo mejor gracias a esto de Lima se ha descubierto un fallo que tenías en la macro.

Entonces supongo que lo que habrá que hacer es que en vez de la condición

If Len(Range(columna1 & INTENTAR).Value) = 6 Then

habrá que poner esta otra.

If Len(Range(columna1 & INTENTAR).Value) = 6 and Left(Range(columna1 & INTENTAR).Value, 1) <> 9 Then

¿Es eso lo correcto?

También dices esto

Y si el teléfono comienza con "14" o con "4" y ademas tiene igual o
mayor de 9 caracteres que se borre la celda. EJM 123456789; 1465487954;
148987565; 45658789523

Pero el teléfono 123456789 no empiezaa por 14, luego no sé porque hay que bórrarlo.

perdón son los teléfonos que comienzan con 1 y con 4, por eso también puse el ejemplo 123456789

Lo de lima no hay problema porque parte de la macro antepone el numero 1 a todos los teléfonos que son de 7 dígitos exceptuando los que comienzan con 9

Lo que si se puede considerar es que todos los teléfonos que comienzan con 9 y tienen 7 o menos caracteres borrarlos.

¿Qué función tiene que haya contador1, contador2 y contador3? Estoy modificando y añadiendo condiciones de formateo nuevas y no sé en que contador sumarlas. No sería mejor dejar un solo contador.

ok entonces dejalo con solo uno

Lo tengo bastante avanzado. Pero aun queda el asunto de ese teléfono de lima.

Entonces, a los teléfonos de 6 cifras que empiezan por 9 no les buscamos departamento.

¿Hacemos eso?

Hay algo que me intriga.

Yo lo ejecuto y formatea 5845, no lo compares con los que formateaba antes porque he simplificado algunos formateos.

Lo vuelvo a ejecutar y formatea 366

Lo vuelvo a ejecutar y 12

Lo vuelvo a ejecutar y 0

Lo que yo vería lógico es que la segunda vez ya no tuviera que formatear ninguno. Eso quiere decir que los formateos no dejan algunos teléfonos en su estado definitivo. Intentaré averiguar qué pasa, pero claro yo no entiendo ese enrevesado sistema que tenéis para los números de teléfono.

¡Caramba como lo he mejorado!

Ahora ya solo reformatea 22 en la segunda vez. Pero te los voy a enseñar porque yo creo que estamos haciendo algo que no se debería. El reformateo de la segunda vuelta lo que hace es eliminar estos

73333035
44445113
44445030
84444064
54444539
64444999
64444169
54444300
44444334
44440058
54444188
44447947
44440877
44444141
44446006
54444766
44447881
54444967
54444546
44445814
44443644
44447440

Eran teléfonos de 6 cifras a los que se añadió el departamento, y al hacer eso ha pasado que alguna cifra el 3 o el 4 ha pasado a estar repetido cuatro veces seguidas.

Yo no creo que sean teléfonos que deban borrarse, por eso eliminaría la condición de las cuatro cifras repetidas.

He creado una hoja llamada Reformateos donde van a parar los teléfonos modificados. En la última ejecución de la macro

Sirve de comprobación pero también hace más lento el proceso, una vez se compruebe que este bien se podrían comentar las líneas

Call Reformateo(temporal,1)

Call Reformateo(temporal,2)

Para ganar velocidad.

Y respecto a los teléfonos de 6 cifras que comienzan por 9 no me has dicho nada pero por mi cuenta hago que no se les añada el departamento.

Te lo mando para que lo pruebes.

Un saludo.

Ya está mandado el 24/05/2013 10h española. Ya me dirás si te llegó.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas