Jump to content

verzulsan

Members
  • Posts

    890
  • Joined

  • Last visited

  • Days Won

    6

verzulsan last won the day on July 24 2011

verzulsan had the most liked content!

About verzulsan

  • Birthday 12/25/1980

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

verzulsan's Achievements

Newbie

Newbie (1/14)

118

Reputation

  1. JAJAJA, ese Master Macroman. Arriba dije que en 2007 no peta pero tampoco enseñaba el comentario, lo puse cuando aun no sabia que en realidad no habia comentario que mostrar por que la shape estaba borrada. Lo de que se quede el triangulito rojo tras borrar la shape, es un poco absurdo ya que si no hay shape asociada, el triangulito rojo deberia desaparecer tambien. Pero bueno, se soluciona teniendo un poco de cuidado al usar macros para borrar masivamente las shapes con un "if(shape=4) no borrar" Un saludo!
  2. Vale, definitivamente Tema solucionado. Se me olvidó que tenia mas funciones que eliminaban las shapes, solo poner el condicional type 4 a las demas y funciona a la perfeccion con comentarios. Un saludo y podeis dar el tema por solucionado. No olvideis avisar a Microsoft sobre el bug de comentario sin shape.
  3. Nada, sigue petando pero ahora de otra forma. Con la nueva macro, creo el comentario, y me deja verlo, pero tras acceder a cualquier shape haciendo doble click en la definicion, algo cambia, cuando vuelvo a poner el raton sobre el comentario, excel peta. Es decir, me sigue borrando el comentario de la celda incluso con el condicional type=4. Primero lo toma como type=4 y no lo borra, pero tras incrustar otro shape, ya no es type 4... ¿Alguna idea?
  4. Bueno ya solucioné el tema agregando un condicional a la macro: Private Sub Worksheet_SelectionChange(ByVal Target As Range) If ActiveSheet.Shapes.Count > 0 Then For Each s In ActiveSheet.Shapes If s.Type <> 4 Then s.Delete 'Borrado de todas las shapes de la hoja Next End If End Sub[/CODE] No pasaba que ejecutara la macro al navegar sobre el comentario, sino que un comentario es un shape, y nada mas crearlo, se produce el cambio de seleccion, es entonces cuando el shape es borrado pero excel sigue mostrando el icono de "comentario incrustado" cuando en realidad no hay ya nada, al intentar acceder a el, excel peta por que no han tenido en cuenta esta macro destroza shapes. El tipo de shape de los comentarios es "4". Excel deberia borrar el comentario tras detectar que ya no hay shape asociado a el. Es un bug que deberiais avisar a excel, asi ganais otro puntito para la web Un saludo!
  5. Hola, Adjunto un archivo en donde me está dando problemas una hoja en concreto, al crear un comentario y luego intentar leerlo, excel "Peta" y se cierra en versiones anteriores a 2007, a partir de 2007, simplemente el comentario no aparece por que seguramente debe ser borrado por la macro de la que hablo abajo. Lo raro es que es una macro que se activa por cambio de seleccion (y no se por que, pero creo que toma el raton flotante sobre el comentario como cambio de seleccion), tras lo cual, intenta borrar el comentario como si fuera un shape mas y... crash. he detectado que el codigo que da problemas es el siguiente, perteneciente a la hoja "BD" Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Si hay Shapes se borran todas las shapes If ActiveSheet.Shapes.Count > 0 Then For Each s In ActiveSheet.Shapes s.Delete 'Borrado de todas las shapes de la hoja Next End If End Sub[/CODE] El codigo lo único que hace es borrar todos los objetos shapes cuando se cambia de celda. Solo se me ocurre ponerle un condicional para que si es un comentario no lo borre, pero no entiendo por que se activa si no he cambiado de celda. Gracias de antemano por la ayuda. Un saludo. Temario Sistemas (8,9,10).zip
  6. Ahhh ahora si Gerson jeje, soy tan cazurro que solo he metido texto. Gracias por la explicacion. Un saludo!
  7. Hola Gerson, No he entendido demasiado bien el proposito de la funcion. He descargado el archivo pero no hace nada en la zona verde al escribir o modificar. Un saludo
  8. Hola Pedro, Nunca habia visto nada tan raro en excel con las formulas, la verdad que me ha molado, ahora resulta que sí se pueden hacer formulas circulares y encima esta guarda un ahora() de forma estatica. Mola mucho. Aun no la entiendo pero la estudiaré. Siempre sorprendiendo Un saludo amigo
  9. Hola, Os dejo aqui un archivo auxiliar que hice por necesidad de crear una animacion de casilla en un programa de ajedrez que ando haciendo en C++, como ya esta terminada esa fase de animacion, lo iba a guardar en el baul y me acordé de vosotros, quizas os guste para tener mas flexibilidad a la hora de pintar del color que mas os interese el color de fondo de las celdas. Aqui la formula, donde Pix.R, Pix.G y Pix.B han de ser sustituidos por el valor ROJO, VERDE, AZUL que os interese en un rango entre 0 y 255, habrá otros metodos pero este es el mio: Dim P8 As Double: P8 = 2 ^ 8 'potencias de colores Dim P16 As Double: P16 = 2 ^ 16 'potencias de colores Pix.R + (((Pix.G + 1) * P8) - P8) + (((Pix.B + 1) * P16) - P16)[/CODE] Para pintar la celda del color deseado, solo hay que usar la propiedad de celda: Range(A1).Interior.Color = FORMULA DE ARRIBA Os dejo tambien el archivo de pruebas, a ver si os da ideas para alguno de vuestros proyectos. Un saludo! Eligiendo colores2.zip
  10. Uisshhhhhhhh, casi xD, cuando puse Multi Extract Data estaba pensando en "Microsoft Extract Data" (en español), pero me pareció muy cutre y lo cambié por Multi Un saludo!
  11. Hola Rafael y Antoni, Estoy con master Antoni, muy ingenioso. Aqui te dejo una version simplificada de la macro quitando toda la parafernalia del grabador de macros: Sub macro8() ActiveCell = Cells(1, 1).Formula mcadena = Range("a1") ActiveCell.Characters(Start:=Len(mcadena), Length:=1).Font.Superscript = True End Sub[/CODE] Un saludo!
  12. Muy buen trabajo Pedro como siempre. ¡Te estas volviendo muy friki eh! me va a costar pillarte Lo de los cambios es algo que si son para bien se aceptan facil pero este tipo de cambios la verdad que mosquea si no le ves el sentido. Haced como yo y buscar reglas nemotecnicas como por ejemplo, MED=Extraer?, pues podria ser.... hmm .... "Mega Extraer Datos" xD, o Multi Extract Data. Un saludo en orden de aparicion (Pedro, Gerson y Never)
  13. Muy bueno Gerson. Bastante útil para algunos casos, como por ejemplo una presentacion en la que sobran esos elementos y se necesita una mayor vision global. Un saludo amigo.
  14. Hola Pedro, varias cosillas. He estado analizando el archivo y lo que te comenté del scroleo de la pantalla me ocurre debido al evento Application.ScreenUpdate, lo he quitado de en medio y me va perfecto sin scrolear, supongo que se deberá al equipo que uses, version, Sistema operativo etc, unos lo notaran, otros no, pero a mi con eso ya se me quita. Otra cosilla. El tema de la memoria ocurre en la funcion ValorReloj. He marcado en rojo las lineas que te estan creando el problema (quizas se me haya escapado alguna) y en verde la importancia de consumo. Cada vez que la celda A1 de la hoja "relojes" se actualiza con Now, Excel pide 250Kb mas de memoria a razon de 1 megabyte cada 4 actualizaciones. No se exactamente que tienes asociado a esa celda pero solo ocurre con esa. Revisa el codigo a partir de estas lineas a ver si consigues averiguar algo. Sub ValorReloj(Optional GMT As String, Optional valGMT As Single, Optional fila As Long = 0) Dim valTiempo As Date Dim strGMT As String If ActiveSheet.Name <> "Mundo" And _ ActiveSheet.Name <> "Relojes" Then Exit Sub valTiempo = ConvertLocalToGMT(Now, True) With Sheets("Relojes") .Range("A1") = Now [COLOR="Green"]'Esta linea consume unos 250kb/s[/COLOR] [COLOR="Red"]'.Range("C1") = valTiempo[/COLOR] End With With Sheets("Mundo") If GMT = "" Then valGMT = .Range("C55").Value strGMT = ValorGMT(valGMT) Else strGMT = GMT End If valTiempo = valTiempo + valGMT / 24 [COLOR="Green"]'Esta linea consume 4kb/s[/COLOR] [COLOR="Red"]'.RelojDigital.Value = strGMT & " " & TimeValue(valTiempo) & " " & DateValue(valTiempo)[/COLOR] If fila = 0 Then fila = .Range("C56").Value If fila = 0 Then fila = valGMT + 14 [COLOR="Green"]'Esta linea consume 40-50kb/s[/COLOR] [COLOR="Red"]'CopiaReloj "Reloj0", fila, strGMT[/COLOR] Else fila = fila + 2 [COLOR="Green"]'Esta linea consume 40-50kb/s[/COLOR] [COLOR="Red"]'CopiaReloj "Reloj0", fila[/COLOR] End If Else [COLOR="Green"]'Esta linea consume 40-50kb/s[/COLOR] [COLOR="Red"]'CopiaReloj "Reloj0", fila[/COLOR] End If End With End Sub[/CODE] Sustituye la funcion por esa, veras como ya deja de consumir, asi vas haciendo pruebas con cada linea por separado. Un saludo amigo
  15. Mola mucho Mauricio, no sabia que se podia controlar la cancelacion de una forma tan simple. Gracias por el tip. A ver si consigo que capture errores infinitos por que a la segunda suelta error de verdad. Un saludo amigo
×
×
  • Create New...

Important Information

Privacy Policy