Saltar al contenido

Antoni

Exceler C
  • Contador de contenido

    11884
  • Unido

  • Última visita

  • Días con premio

    910

Todo se publica por Antoni

  1. Jajaja...muy bueno, aunque no consigo cambiar de color. ¿ Has cambiado algo del procedimiento ?, de todas formas me lo miraré y compararé con la versión anterior. Saludos.
  2. Re: Ejercicios con el raton para novatos del excel (Nivel basico de ingles requerido) Hola: Muy bueno y didáctico. Hay un error en la hoja "Select cells", en K11, donde dice: You have just select the second range of cells[/PHP] debe decir: [PHP]You have just select the third range of cells.[/PHP] Saludos.
  3. Hola: Adjunto una versión "cutre" del popular Paint de windows. Es otra aplicación del "evento" mousemove en la hoja. Color primario: Click en paleta de colores Color secundario: Click derecho en paleta de colores Modo pintar: Botón On/Off Click izquierdo, pinta con el color primario hasta nuevo click (Derecho o izquierdo) Click derecho, pinta con color secundario hasta nuevo click (Derecho o izquierdo) Para los que tengais hijos, ya teneis otra forma de entretenerlos. Saludos. Macro PintarCuadros.zip
  4. Hola: En el adjunto encontrareis un formulario, en este formulario, podreis Insertar, Eliminar y Actualizar cualquier hija del libro, desde 1 a 8 columnas. La hoja, debe tener una fila de encabezamiento con el nombre de las columnas. En dichos nombres pueden insertarse unos caracteres al principio y al final que nos permitirán saber en el momento de editar: (Se explican en el adjunto) Si el dato es obligatorio o no Si la columna admite duplicados o no Si la columna es modificable o no Si el dato tiene formato texto Si el dato tiene formato fecha Si el dato es numérico El formulario, se redimensiona de forma automática en función del nº de columnas, de igual forma, en función del tipo de dato, se configuran el resto de controles. El encabezamiento del formulario, en la propiedad ControlTipText, muestra los atributos de la columna. Toda la edición se realiza en un listbox, existiendo un "botón" que nos permite pasar la información a la hoja. También, mediante otro "botón", es posible recuperar la imagen anterior de la última actualización. Creo que os puede resultar interesante revisar el código, ya que los controles se trabajan unicamente con la colección Controls del formulario. Espero que os sea útil. Saludos a todos. Macro EditarHoja.zip
  5. Hola Santi; Pues no había visto el laberinto, está muy bién, A mi nieta le va a encantar. Saludos.
  6. Hola: Allá por el mes de mayo, a raiz de una consulta de verzulsan, neverdelimon proporcionó un aporte a base de combinar APIS y un módulo de clase para conseguir un evento MouseMove en la hoja. Me ha parecido interesante y lo he recuperado con un ejemplo de como saber en todo momento la suma de un rango de celdas. En el adjunto hay dos macros, ArrancarMouseMove y PararMouseMove, creo que con el nombre ya está todo dicho. ArrancarMouseMove, se ejecuta de forma automática al arrancar el libro. Besitos. ¡¡¡ Me voy corriendo que viene Tutankamon y es un "plasta". !!! EventoMouseMove.zip
  7. Hola josemaría: Para ambiar el nombre de thisworbook, hemos de proceder exactamente como en cualquier otro objeto: F4 para tener las propiedades abiertas, click en Thisworkbook, y cambiar la propiedad .Name por el nombre que queramos. Es increible, pero pasa totalmente desapercibido, hasta hace poco, yo tampoco me había dado cuenta que se podía cambiar. ¡Ah! y lo mismo pasa con las hojas. En relación con los "cuadritos", se pueden llegar ha hacer maravillas jugando con los colores y tamaños. Saludos.
  8. Hola: En el "otro foro", alguien hizo una consulta de como dibujar cuadrados en la hoja con los bordes de las celdas, y pensé, que forma mas estúpida de perder el tiempo y decidí que aburrirse todavía era una forma mas estúpida de perder el tiempo, o sea que aquí me teneis haciendo una herramienta para recuadrar rangos. Espero que os parezca tan inútil como a mi, pero si alguien tiene que hacer muchas plantillas, igual hasta le vale. Eso si, si alguien tiene dudas de como usar un control spinbutton, de como recuadrar una celda, o de como se pone color a un borde, igual le entretiene un rato. Pues nada mas, ya falta menos para la Navidad. Saludos. Macro. ¡Ah! Recuerdos de Cleo para todos. Cuadrático.zip
  9. Hola: Pues después de ver a tanto "monstruo" por aquí, no iba yo a quedarme mudo. Sub SoloNumeros() For Each celda In Selection For x = 1 To Len(celda.Value) If IsNumeric(Mid(celda.Value, x, 1)) Then cadena = cadena & Mid(celda.Value, x, 1) Next x celda.Value = cadena Next celda End Sub [/CODE] Que los vientos os sean propicios para que vuestras naves lleguen a puerto amigo. Y si no teneis naves, pues,...........no se,.....ya se me ocurrirá algo. Saludos.
  10. Hola: Hay un refrán español que dice: "La cabra siempre tira al monte",......jajaja Un abrazo amigo Gerson
  11. Hola Gerson: Veo que poco a poco vas cambiando de bando, jejeje. Un abrazo.
  12. Hola: Otra muestra mas del aburrimiento en un día de "perros" en Galicia. Se explica por si solo. Hasta la próxima si no me ahogan las lluvias. Editar listbox con multiselección.zip
  13. Gracias Pedro: Pero todavía puede ser mas fácil: FechaFinal = FechaInicial + Dias[/CODE] Solo pretendía explicar que existen unos parámetros que son opcionales, y que pueden informarse o no. Evidentemente, con los tres parámetros a false, la función carece de sentido. Saludos cordiales.
  14. Hola: Esta macro, coloca un reloj en A1, para arrancarlo, ejecutar la macro, y para pararlo, rellenar A1 con el color rojo. Sub RELOJ() On Error Resume Next If ActiveSheet.Cells(1, 1).Interior.Color = vbRed Then Application.OnTime Hora, "RELOJ", SCHEDULE:=False Else ActiveSheet.Cells(1, 1) = Now Hora = Now + TimeValue("00:00:01") Application.OnTime Hora, "RELOJ", SCHEDULE:=True End If End Sub [/CODE] Saludos.
  15. Hola: Función para, dada una fecha inicial y un número de días laborables, obtener una fecha final. Formas de llamada: FechaFinal = SumarDias 'Obtiene el siguiente día laborable a hoy FechaFinal = SumarDias(Fecha) 'Obtiene el siguiente día laborable a Fecha) FechaFinal = SumarDias(Fecha, Dias) 'Obtiene la fecha transcurridos un nº de días) En el propio libro, debe existir una hoja de nombre "Festivos" con los días festivos excluidos sábados y domingos. Estas fechas deben informarse en la columna 1. De no existir la hoja "Festivos", debe informarse de un tercer parámetro en la llamada: FechaFinal=SumarDias(Fecha, Dias, False) Si además se quieren excluir los sábados como festivos: FechaFinal= SumarDias(Fecha, Dias, False, False) Y también se quieren excluir los domingos como festivos: FechaFinal= SumarDias(Fecha, Dias, False, False, False) Enjoy it ! Macro. SumarDias.zip
  16. Hola: La comparación entre las dos hojas, es "física" y no "lógica", se comparan todas las celdas de una hoja con, exactamente las mismas celdas de la otra hoja, es decir A1 con A1, A2 con A2, A3 con A3,...... y así sucesivamente. Si insertas o eliminas una celda o una fila, a partir de ahí, todas las celdas serán marcadas como "diferencia" ya que no coinciden de acuerdo con la regla anterior. Abre un nuevo tema en el foro de macros, sube una muestra del archivo, y le echaré un vistazo. Saludos.
  17. Hola: La respuesta es si a ambas preguntas. Saludos.
  18. Hola pueblo: A Gerson: Como bien dice tuve, yo tampoco consigo entender que es lo que te sucede. Dada mi vagancia genética, escribo lo menos posible, y jamás he utilizado .Value no solo en los controles ComboBox, si no, absolutamente en todos los objetos de Excel, salvo en los bucles For Each y con With, ya que algunas veces se confunde el valor con el objeto. A verzulsan: A ti quería yo pillarte,.....jeje. Así que utilizo el On Error Resume Next a la ligera,.....vale, vale, pues ahora te vas a enterar: Un momento que tengo que ir al baño,...... que me ha dado un apretón. ¡ Uff ...! Que tranquilo me he quedado,... sigamos. Utilizo Resume Next, si y solo si, tengo controlados absolutamente todas las posibilidades de error y continuar con el proceso, no constituye un problema para la normal finalización de la operación. En el caso que nos ocupa, es decir el aporte realizado, solo se produce un error, y es cuando se selecciona la totalidad de la hoja. En este caso se produce el error "Desbordamiento", dado que para la normal funcionalidad del aporte, el seleccionar la totalidad de las celdas no tiene ningún sentido, dejo terminar el procedimiento ya que su rango solo se aplica a las columnas 1-4 y a partir de la fila 10 y cuando se ha seleccionado una sola celda. Apuntar que con On Error GoTo Errores, desvías la ejecución a la etiqueta Errores:, que con Resume Next después de la etiqueta Errores: continúas inmediatamente después de donde se produjo el error y que con On Error GoTo 0, desactivas cualquier control sobre los errores que se puedan producir, y el procedimiento queda listo para usar otro On Error en cualquier otro punto. Decir también, que una instrucción On Error desactiava el On Error anterior y que si se produce un error en un procedimiento que no tiene control de érrorres, es como si el error se hubiera producido en el punto de la llamada a ese procedimiento. ¡Ah! y para finalizar, no te creas todo lo que leas en las páginas "guiris", que van todo el día "mamaos". Y recuerda On Error GoTo Consultar foro de Ideas y Aportes. Esperando que los idus de noviembre os hayan sido propicios. Antoni, alias "El Resume Next".
  19. Hola: Cada vez es mas difícil encontrar algo que no se haya hecho ya. Por lo que no me queda mas remedio que volver a inventar la rueda. Os adjunto un sistema de como realizar una validación de datos sin utilizar la "Validación de datos" de Excel. ¿ Que ventajas tiene ?, Absolutamente ninguna, pero, ya sabeis, ........, como me aburría..... Saludos a todos. Tranquilo Toldeman, que te tengo presente en mis oraciones. Validacion.zip
  20. Hola: A falta de otra cosa, vamos a meter la cuchara Para numerar de forma absoluta por fila: Sub CorrelativosFila() For Each celda In Selection: celda.Value = celda.Row: Next End Sub[/CODE] Para numerar de forma absoluta por columna [CODE] Sub CorrelativosColumna() For Each celda In Selection: celda.Value = celda.Column: Next End Sub[/CODE] Para numerar de forma relativa [CODE] Sub Correlativos() For Each celda In Selection: x = x + 1: celda.Value = x: Next End Sub[/CODE] Para numerar de forma relativa a partir de la última numeración relativa: [CODE] Public x Sub Correlativos() For Each celda In Selection: x = x + 1: celda.Value = x: Next End Sub [/CODE] Pues nada mas, en cuanto os descuideis, atacaré de nuevo. Saludos
  21. Hola: Como dije esto: y como ya he tenido 10 minutos libres, os subo el capricho del "nene verzulsan". Besitos al perro y patadas a la familia..... ¿ o es al revés ? ...... EmparejarEquipos II .zip
  22. Hola Santi: A grandes males, grandes remedios, sortea los participantes. Otra solución consiste en generar aleatoriamente un array desde 1 hasta el Nº de elementos. y luego utilizar los valores del array variando el indice desde 1 hasta el Nº de elementos. Si no has entendido nada, no te preocupes, yo tampoco lo entiendo cuando lo leo. Cuando tenga 10 minutos libres, lo modifico, y lo vuelvo a subir. Saludos.
  23. Hola: Aquí os dejo mi último pensamiento filosófico. En colaboración con Toldeman, hemos realizado el emparejemiento de n elementos, siendo n cualquier numero par mayor que dos. El sistema empleado, es un algoritmo de todos contra todos publicado en una página web, cuyo nombre no recuerdo ahora mismo, pero que está comentada en la macro. Esto puede utilizarse para realizar calendarios de competiciones a una vuelta o a doble. La macro muestra los resultado con emparejamientos a una vuelta, para confecionar la segunda vuelta, solo hay que copiar el Calendario e invertir los elementos. Debeís fijaros que un elemento que está en primer lugar en un emparejamiento dado, aparece en segundo lugar en el siguiente, y así sucesivamente, pudiendo usar esta característica como campo propio y campo contrario. A vuestra disposición, su fiel y seguro servidor, Macro. EmparejarEquipos .zip
  24. Re: Cual fue tu primer post en AyudaExcel? Hola: Pues yo, no recuerdo ni de que va este foro........jajaja. Un abrazo a todos.
  25. Gracias Abraham, Luis, Gerson, Never y Santi por vuestro interés y vuestros comentarios. Ahora ya se un poco mas sobre el tema. De hecho, yo para añadir una hoja copiando de otra, siempre había usado: Sheets("Antigua").Cells.Copy Sheets("Nueva").Cells[/CODE] Y al olvidarme .Cells en ambos lados, me di cuenta del tema. Saludos y besos para todos. Besos, de hermano, por supuesto,,,,jajaja Antoni.
×
×
  • 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.