Jump to content

pegones1

Members
  • Content Count

    768
  • Joined

  • Last visited

  • Days Won

    27

Everything posted by pegones1

  1. Hola neverdelimon1, ¿no te has preguntado qué figura tienen los botones de opción moviéndose al norte del mapa? Lo que se han perdido, por perder algún evento, son las coordenadas de las ciudades que representan esos botones por lo que tendrás que abrir el archivo original y copiar el rango Relojes!$P$3:$Q$36 Dependiendo de la memoria RAM del equipo, funciona más o menos tiempo ya que por cada segundo que pasa ocupa 170 KB más (en una hora unos 600 MB) y ¡eso no lo tengo controlado! ¿Alguien me puede ayudar a reducir el consumo de memoria?
  2. De todas maneras puedes abrir un libro de Excel en blanco y usar el Asistente para importar archivo de texto. Elige como tipo de archivo: Todos los archivos e importa descarga.xls paso 1 de 3: Delimitados paso 2 de 3: Tabulación paso 3 de 3: En la vista previa, pincha en cada columna que quieras mantener los ceros a la izquierda y márcala como Texto Pulsa Finalizar Importa los datos en una hoja existente o nueva.
  3. Gracias a la buena sugerencia de mjrofra adjunto la siguiente macro: Sub AbreFicheroPlano() Set xlApp = CreateObject("Excel.Application") xlApp.Workbooks.OpenText Filename:=ThisWorkbook.Path & "\descarga.xls", _ DataType:=xlDelimited, Tab:=True, _ FieldInfo:=Array([COLOR="blue"]Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2)[/COLOR]) xlApp.Visible = True Set xlApp = Nothing End Sub[/CODE] Este ejemplo es para 4 columnas como texto: [color=blue]Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2)[/color] Si hay más columnas habrá que añadirlas sepa
  4. Hola ingefor, Prueba con el fichero adjunto que se sirve de estas macros: Sub ImportaTextoPlano(ficheroPlano As String, rango As Range) With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;" & ThisWorkbook.Path & "\" & ficheroPlano, Destination:=rango) .Name = Left$(ficheroPlano, InStr(1, ficheroPlano, ".") - 1) .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False
  5. Re: Felices Fiestas, a todas las personas de buena voluntad Me uno a las felicitaciones en estos días de fiesta y comparto un enlace a varios Christmas en Excel publicados en el blog de mi amigo Chandoo. 6 Christmas Cards in Excel – Download and Spread Joy | Chandoo.org - Learn Microsoft Excel Online
  6. Re: Puras matemáticas! Demostración de que 1 = -1 Sabiendo que: SQRT(a* = SQRT(a)*SQRT( 1 = SQRT(1) = SQRT((-1)*(-1)) = SQRT(-1)*SQRT(-1) = (SQRT(-1))^2 = -1[/CODE] donde SQRT es la función para el cálculo de la raíz cuadrada. El gran matemático Leonhard Euler demostró esta igualdad en su teoría de los números imaginarios en la que la letra [b]i = SQRT(-1)[/b] se refiere a la unidad imaginaria con la propiedad [b]i^2 = -1[/b].
  7. Re: Puras matemáticas! Hola ioyama, para que sea más fácil de entender la paradoja, faltaría añadir las igualdades en azul: 4-10+(25/4)=9-15+(25/4) como (a-^2=a^2-2ab+b^2 resulta: 4-10+(25/4)=2^2-2*2*(5/2)+(5/2)^2=(2-(5/2))^2 9-15+(25/4)=3^2-2*3*(5/2)+(5/2)^2=(3-(5/2))^2 y se deduce: (2-(5/2))^2=(3-(5/2))^2 si hago la raíz cuadrada a cada término 2-(5/2)=3-(5/2) y si sumo 5/2 a cada témino con lo que 2=3 Ioyama, ya ves que no desvelo la "trampilla" pero así será más inteligible que, con ese razonamiento, 2 es igual a 3.
  8. Gracias verzulsan por tu feedback. El comprobador de compatibilidad de Excel 2010 me dice que lo es con Excel 2003 con pérdidas menores de fidelidad. ¿Qué diablos entenderá por fidelidad Micro$oft Excel? ¡No lo mismo que entendemos nosotros! No te extrañen los lags iniciales mientras se construyen las formas de los relojes y las ciudades. De todas maneras es una primera versión Beta para ser testeada en diferentes rincones del Planeta Tierra ¡que no es tu caso! Realmente le he prestado más atención a conseguir reducirlo en tamaño, para subirlo al foro, que en la gestión de los eventos.
  9. Re: Puras matemáticas! Germán, el segundo párrafo de la PREGUNTA induce a malas interpretaciones y debería ser redactado así: entonces 9€x3=27€ han pagado los 3 amigos, (+ los) 2€ que se ha quedado el camarero de bote(=29€) y 25€ de la ronda de cañas, ¿correcto? ¡Y NO FALTA NINGÚN EURO DE LOS 3 BILLETES DE 10€ CON LOS QUE PAGARON LA RONDA DE CAÑAS Y RECIBIERON 1€ CADA UNO DE LAS VUELTAS! Entre paréntesis: (en rojo) lo que hay que eliminar de la pregunta. (en azul) lo que hay que añadir a la pregunta.
  10. Quisiera mejorar el World Clock por lo que necesito recibir comentarios con los test y chequeos de neverdelimon1, verzulsan, Gerson y los que os bajéis el fichero del https://www.ayudaexcel.com/foro/f64/mapa-mundial-con-relojes-marcando-las-horas-en-excel-15530/#post78598. Las características principales de este mapa de relojes mundiales son: Mapa mundial con 32 relojes analógicos e infinitos relojes digitales Relojes en sus zonas horarias y con ajuste del horario de verano Actualización de los relojes al Tiempo Universal real UTC y GTM/Zulu 24 relojes analógicos en las 24 zonas horaria
  11. Subo adjunto con el que he pasado las horas porque quiero saber, de un vistazo, a qué horas se levantan y se acuestan mis amigos, en particular los amigos del foro. Lo que me ha costado unas horas más es conseguir meter un fichero de 6 megas en un zip de menos de 97.7 KB. Al final ocupa 78.4 KB a base de crear dinámicamente los relojes, las ciudades y conectarse a Internet para descargar el mapa mundial. Tengo que dar las gracias por la inspiración a George Lungu y su tutorial de cómo hacer un reloj analógico en Excel: En alguna hora de estas vacaciones explicaré en mi blog cómo lo hice.
  12. Verzulsan, me pasa lo mismo que a Macro Antonio. Seguro que uno de los dos lo arregla. ¿Acaso has dibujado a mano a las mama noel? Feliz Navidad a los amigos del foro.
  13. Wiru, después de analizar detenidamente tu problema reenvío nuevo adjunto con mis NOTAS para que lo pruebes. Observa la condición: SI(Y($C$5>50;MES($E$2)=1);0;$C$5*7) dentro de la celda D5. Calendario2PW.zip
  14. Wiru te vuelvo a contestar lo mismo que te dije en este comentario de hace más de 6 meses por lo que será mejor que lo leas: https://www.ayudaexcel.com/foro/f6/%5Bsolucionado%5D-mostrar-qu%E9-semana-del-%F1o-es-la-actual-11790/index3.html#post58602 No vale usar lo siguiente pues no calcula el calendario gregoriano: =NUM.DE.SEMANA(HOY())+2 Adjunto tu fichero en Excel 2003 con las fórmulas propuestas (lee las NOTAS). Si lo abres con Excel 2010 podras comprobar que se obtiene el numero de semana correcto en A5: =NUM.DE.SEMANA(A1;21) Si lo abres con Excel 2007 o 2003 no se puede usar la for
  15. Macro Antonio, ¿no querrás que pintemos pirámides en Excel? La verdad es que es muy entrañable tu felicitación hecha a mano. ¡Felicidades!
  16. Recapitulando Fleming, el argumento n, con el número de meses, puede ser un número absoluto mayor que 12 y no hace falta restringirlo a ABS(n) < 12. FIN.MES(fecha_inicial;meses) Meses es el número de meses anteriores o posteriores al argumento fecha_inicial. Si B6 = 23/02/2008 =FIN.MES(B6;24) = 28/02/2010 O sea, dos años despúes (24 meses después) y lo mismo ocurre con los números negativos.
  17. Gracias never por tu aclaración. Sólo apuntar que ya dije que los argumentos permiten expresiones aritméticas, lo que se sobreentiende como operaciones con números positivos y negativos. Leyendo la documentación del argumento día de la día Obligatorio. Número entero positivo o negativo que representa el día del mes, de 1 a 31. Si el día es menor que 1, día resta la magnitud de la cantidad de días, más uno, del primer día del mes especificado. A buen entendedor sobran palabras de lo que pasará si día = 0. Creo que compartiréis conmigo que la verdad es que muchos argumentos de funcion
  18. Estoy con sailepaty que dónde esté una fórmula nativa que se quiten las UDFs. Gerson, siempre se puede llamar desde una UDF a una fórmula nativa. La que te pasé en el post #4 para calcular el último día del mes fué ésta: diasmes = VBA.Day(VBA.DateSerial(Year(fecha), Month(fecha)+1, 0))[/CODE] que se convierte fácilmente en una fórmula para todas las versiones de Excel: [CODE]=DIA(FECHA(AÑO(A1);MES(A1)+1;0))[/CODE] Y se obtiene [b]el día anterior al primer día del mes siguiente[/b], ¡como tú querías! La Función FECHA(año; mes; día) permite expresiones aritméticas y la posibilidad no muy d
  19. Hola Gerson, el problema es que EoMonth no está disponible por defecto en Excel 2003. Viene de serie en 2007 y 2010. Me limito a buscar en el foro y encuentro que tú mismo te has respondido: https://www.ayudaexcel.com/foro/f7/contar-solo-dias-laborales-excel-2003-a-7198/#post32666 Para activar el complemento: Ve a Tools->Add-Ins y marca Analysis ToolPak y presiona OK / Ve a Herramientas->Complementos y marca Paquete de herramientas de análisis y presiona aceptar. Puedes obtener el último día del mes de esta otra manera para cualquier versión de Excel pero con la limitación de que fe
  20. Gerson, tu fórmula y la UDF generan error #¡VALOR! cuando en las celdas no hay fechas. =SI(A2="";"No es fecha valida";DIA(FIN.MES(FECHA(AÑO(A2);MES(A2);1);0)))[/CODE] Una forma de asegurar que las fechas son válidas y que la celda tiene formato de fecha es ésta que devuelve un 0 en caso contrario: [CODE]=SI(O(A2<1;A2>2958466;IZQUIERDA(CELDA("format";A2);1)<>"D");0;DIA(FIN.MES(A2;0)))[/CODE] Esta fórmula chequea si el número decimal que representa la fecha está entre las fechas aceptadas por Excel, del 1-01-1900 00:00:00 al 31-12-9999 23:59:59 (más o menos) Además comprueba que
  21. Gracias Gerson, pero no estaría completo si no explicara que he seguido el patrón de los angloparlantes, siguiendo con la sugerencia de sailepaty, ya que: .Pattern = "\d+(\.\d+)?" ' separa números decimales con el signo "." (en inglés) .Pattern = "\d+(\,\d+)?" ' separa números decimales con el signo "," (en español) .Pattern = "-?\d+(\,\d+)?" ' separa números decimales positivos y negativos con el signo "," (en español)[/CODE] Realmente prefiero el último patrón de Regular Expression Syntax (Scripting) ya que si: A1 = ABCD[b]-12,34[/b]EF[b]5,67[/b]GH =GetNum(A1;1) = [b]-12,34[/b
  22. Hola sailepaty fíjate que la función es SoloNumeros y su resultado OnlyNumbers lo que seguro que pasa por manejar dos idiomas. Todas las soluciones aportadas obtienen todos los números juntos de la cadena, por ejemplo para: A1 = ABCD1234EF567GH =SoloNumeros(A1) = 1234567 Con lo que aparecen concatenados los dos números. Function GetNum(ByVal txt As String, ByVal ref As Long) As Double With CreateObject("VBScript.RegExp") .Global = True If ref > 0 Then .Pattern = "\d+(\.\d+)?" GetNum = .Execute(txt)(ref - 1) Else .
  23. Gracias rugarte y me alegra que te sirva mi aporte. Ahora lo subo para consultas con 2 tablas y, como verás, se pueden crear distintos formatos de las sentencias SQL: SELECT Departamentos.dept_name AS "Departamento", COUNT(*) AS "Total Empleados" FROM Departamentos Departamentos, Empleados Empleados WHERE Departamentos.dept_id = Empleados.dept_id GROUP BY Departamentos.dept_name[/CODE] [CODE]SELECT `Empleados$`.emp_fname, `Empleados$`.emp_lname, `Empleados$`.birth_date, `Empleados$`.phone FROM `Empleados$` `Empleados$` WHERE (`Empleados$`.sex='F') ORDER BY `Empleados$`.birth_date[/C
  24. decano1889, para ver las macros abre VBA con Alt + F11 con lo que verás el código: Private Sub Control_Imagen_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, _ ByVal X As Single, ByVal Y As Single) Dim PosX As Long, PosY As Long Dim Herramienta As String With ActiveCell PosX = X - Cells(.Row, 10) / 2 ' Posición X del centro del círculo If PosX < 1 Then PosX = 1 PosY = Y - Cells(.Row, 11) / 2 ' Posición Y del centro del círculo If PosY < 1 Then PosY = 1 Select Case .Colu
  25. Partiendo de la gran idea de Ioyama, me he atrevido a mejorarla para no tener que crear tantos círculos como objetos se van a marcar. Cuando la celda activa esté en el rango H2:I100, haciendo click sobre una herramienta de la imagen se escribirá su posición X - Y. En el adjunto sólo es necesario un círculo que se mueve a la posición X - Y de una herramienta cuando se seleccione una celda en el rango G2:G100. Falta rellenar la lista de las más de 30 herramientas de la imagen que, por cierto, he tenido que degradarla a 16 colores para poder subir el archivo zip. Nota: Como ejercicio propongo
×
×
  • Create New...

Important Information

Privacy Policy