Jump to content

xboxfile

Members
  • Content Count

    158
  • Joined

  • Last visited

About xboxfile

  • Rank
    Advanced Member

Profile information

  • Gender Array
  • Localización: Array

Converted

  • Campos Array

Recent Profile Visitors

600 profile views
  1. Version 1.0.0

    15 downloads

    Hola que tal.¿Alguna vez has trabajado con varias arrays y no te has preguntado si no podría ser que las pudieses agrupar todas en una como si fuesen las hojas de un libro? Pues esto es lo que yo me planteé un día y empecé a investigar en el tema. Tuve la necesidad de tratar cientos de datos de seis hojas de seis libros, una por cada libro. Cada hoja la puse en una array bidimensional y estas a su vez agrupadas en una Array de Arrays. Con esto tienes la ventaja de que lo puedes trabajar todo con un solo bucle, si no, tienes que crearte un código para cada hoja de cada libro. Al principio es un poco lioso, ¿pero que no es en programación cuando se empieza? Espero que os guste. Aporto esto para el foro que tanto me ha ayudado en mis inicios. Gracias.
  2. Quizás no me he explicado bien, lo que necesito es que al cargar el Listview detecte lo que haya en la celda activa, lo seleccione automáticamente, y salte el evento clic, al estilo del Listbox. El seleccionar ya lo he conseguido, pero lo del evento clic no. Lo que digo es que tiene que haber una forma de conseguirlo, pero como no lo he hecho, pues he modificado el código para que haga lo que necesito y al final me funciona, que es el código que puse arriba, ppr si a alguien le ayuda. Muchas gracias
  3. Hola que tal. Al final no he conseguido lo de actvar por código el evento clic como lo hace el Listbox. Estoy seguro que tiene que haber una mano de que se produzca. Por lo demás, he adaptado el código de otra forma y a seguir para adelante. Gracias por vuestra ayuda y si la encuentro ya lo pondré en el foro. Por mi se puede cerrar el hilo.
  4. Hola que tal. Al final no he conseguido lo de actvar por código el evento clic como lo hace el Listbox. Estoy seguro que tiene que haber una mano de que se produzca. Por lo demás, he adaptado el código de otra forma y a seguir para adelante. Gracias por vuestra ayuda y si la encuentro ya lo pondré en el foro. Por mi se puede cerrar el hilo.
  5. Hola, gracias por tu ayuda. En el ejemplo solo hay un msgbox cuando clico en un ítem del listview porque es un simple ejemplo. Ya probaré reorganizando el código como tú comentas. ¿Cual sería la sintaxis del código para que si uno de los ítems es igual a la celda activa se seleccione? Es que con los Listbox no tengo problema pero en el Listview no acabo de conseguirlo, todo lo que he visto por Internet es código para seleccionarlo a mano y no automáticamente en un if then. Gracias
  6. Una vez que ha cargado el bucle de los Items mira si la variable que carga la Celda activa al abrir el Userform tiene algo, si lo tiene, activa las macros de carga de los Listbox3 y 4 Lo pongo aquí por si le ayuda a alguien, pero es que forma parte de un Userform grande y puede que tal cuál no le funcione si alguien copia y pega: Este es el código de carga del ListView: Private Sub LlenaListView() 'Llena Listview1 según el OptionButton seleccionado Dim Item As ListItem Dim CantidadTotalStock As Double Dim x, Fila, NumTodosColores As Integer ListView1.ListItems.Clear With ListView1 .View = lvwReport '<<< Encabezados With .ColumnHeaders .Clear 'primero limpiamos y añadimos Nombre del campo y su ancho '.Add(index, key, text, width, alignment, icon) .Add Text:=HStocks.Range("B2"), Width:=130 .Add Text:=HStocks.Range("C2"), Width:=48 .Add Text:=HStocks.Range("D2"), Width:=43 .Add Text:=HStocks.Range("E2"), Width:=93 End With .HideColumnHeaders = False '<<< Encabezados a la vista .Appearance = cc3D .FullRowSelect = True .Gridlines = True x = 3 Fila = 1 Do While HStocks.Cells(x, 1) <> Empty CantidadTotalStock = CantidadTotalStock + HStocks.Cells(x, 4) NumTodosColores = NumTodosColores + 1 If HStocks.Cells(x, 1) = GruposColores(0) Or HStocks.Cells(x, 1) = GruposColores(1) Or GruposColores(0) = 10 Then Set Item = .ListItems.Add(Text:=HStocks.Cells(x, 2).Value) Item.ListSubItems.Add Text:=HStocks.Cells(x, 3).Value Item.ListSubItems.Add Text:=HStocks.Cells(x, 4).Value Item.ListSubItems.Add Text:=HStocks.Cells(x, 5).Value 'Este es el código que uso para seleccionarlo. <<<<<<<<<<<<<<<<<<<< If ListView1.ListItems(Fila) = ColorEntrado Then ListView1.SetFocus ListView1.ListItems(Fila).Selected = True ListView1.ListItems(Fila).EnsureVisible End If Fila = Fila + 1 End If x = x + 1 Loop End With 'Esta es la variable que tiene el valor de la celda activa If ColorEntrado <> "" Then MuestraFormula '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Label12 = "" Label13 = "" Label16 = NumTodosColores & " colores" Label17 = Int(CantidadTotalStock) & " kilos en total" End Sub Saludos
  7. Hola Antoni, encantado de saludarte. Es que tenía un Listbox que lo hacía saltar automáticamente, pero he cambiado a ListView por el tema de que funciona la rueda del ratón, cosa que en los Listbox no funciona, y no lo logro. Pero en este momento ya lo he solucionado, he modificado un poco la forma de proceder del código y ya está. Veo que tú no lo conseguiste a raiz de tu consulta, supongo.
  8. Hola. Gracias por tu ayuda. El código ya lo tengo, cuando carga el ListView en un bucle, si detecta que el Item que ha cargado es igual al de la celda activa, que a su vez está dentro de una variable String, lo selecciona. El problema que tengo es que no logro que se active el evento click automáticamente. Lo voy a tener que activar por código manualmente. Pongo el código: Sería dentro del bucle que carga todos los Items, la variable "Fila" es la que va contando los Items cargados: 'Este es el código que uso para seleccionarlo. <<<<<<<<<<<<<<<<<<<< If ListView1.ListItems(Fila) = ColorEntrado Then ListView1.SetFocus ListView1.ListItems(Fila).Selected = True ListView1.ListItems(Fila).EnsureVisible End If Gracias nuevamente
  9. Hola, gracias por tu ayuda. En el ejemplo solo hay un msgbox cuando clico en un ítem del listview porque es un simple ejemplo. Ya probaré reorganizando el código como tú comentas. ¿Cual sería la sintaxis del código para que si uno de los ítems es igual a la celda activa se seleccione? Es que con los Listbox no tengo problema pero en el Listview no acabo de conseguirlo, todo lo que he visto por Internet es código para seleccionarlo a mano y no automáticamente en un if then. Gracias
  10. Por cierto, menudo tesoro has puesto en el enlace. Le pegaré un vistazo. Gracias
  11. Hola, gracias por tu ayuda Virgilio. He preparado un archivo extraido del proyecto que tengo para poder publicarlo. En el archivo grande he conseguido que me señale al cargar el Item de la celda activa, pero, no sé porqué, en el ejemplo no funciona. He añadido un SetFocus. Lo del evento click automático no lo consigo. Resumiendo, lo que necesito es que al cargar me señale el artículo que tenga en la celda activa y automáticamente salte el evento click para poder mostrar una serie de datos en los Listbox 3 y 4. Me pasa exáctamente igual que a Antoni en la consulta que hizo en su día. Subo el archivo de ejemplo. Espero haberme explicado correctamente. El enlace: https://drive.google.com/file/d/1I6U3UHxbMdp535cKJ3p9-pAiEpB5QdaK/view?usp=sharing Nuevamente gracias.
  12. Hola Leopoldo, gracias por tu ayuda, no es esto, ya lo probé después de postear. Tiene que ser una tontería, pero hasta que no lo sabes te puedes volver loco. Sigo investigando
  13. Hola a tod@s. Lo primero, quería agradecer al personal de esta web que es de gran ayuda. Hacía tiempo que no preguntaba nada porque tenía suficiente con leer las anteriores preguntas, pero en esta ocasión no he encontrado nada acerca de mi duda con un control ListView. Me he iniciado con este tipo de controles por "culpa" de Antoni, es un placer saludarte, porque en una consulta le contestó a un usuario que sí se puede usar la rueda del ratón, cosa que en un Listbox, no se puede. Mi consulta es una continuidad de una que hizo Antoni en este enlace: Yo no le he conseguido. Estoy cargando datos en un lisview mediante un bucle y quiero que se seleccione un item mientras se carga y dispare el evento Click. Esto funciona en Listbox pero en listview no lo consigo. ¿Puede que tenga que hacer un bucle aparte solo para que busque la selección? En un Listbox si que funciona. Si me lo permitís, como que es muy grande el proyecto que tengo, pongo el código que uso para la carga de datos, que es lo que interesa. Do While HStocks.Cells(x, 1) <> Empty CantidadTotalStock = CantidadTotalStock + HStocks.Cells(x, 4) NumTodosColores = NumTodosColores + 1 If HStocks.Cells(x, 1) = GruposColores(0) Or HStocks.Cells(x, 1) = GruposColores(1) Or GruposColores(0) = 10 Then Set Item = .ListItems.Add(Text:=HStocks.Cells(x, 2).Value) Item.ListSubItems.Add Text:=HStocks.Cells(x, 3).Value Item.ListSubItems.Add Text:=HStocks.Cells(x, 4).Value Item.ListSubItems.Add Text:=HStocks.Cells(x, 5).Value 'Este es el código que uso para seleccionarlo. <<<<<<<<<<<<<<<<<<<< If ListView1.ListItems(x - 2) = ColorEntrado Then ListView1.ListItems(x - 2).Selected = True ListView1.ListItems(x - 2).EnsureVisible 'ListView1_ItemClick ListView1.SelectedItem End If Fila = Fila + 1 End If x = x + 1 Loop End With Muchas gracias.
  14. Hola, no quiero ser aguafiestas, pero creo que empresas como Adobe, Microsoft, etc. no lo acaban de conseguir. Si no te saltan la protección es porque no deben considerar que tenga interés como para estar dándole vueltas. Saludos y suerte con el bloqueo del archivo.
  15. Version 1.0.0

    22 downloads

    Hola que tal. Siempre vengo a este foro a buscar ayuda y siempre se me ayuda, a veces hasta recibo más de la que me esperaba, por tanto, creo que ha llegado el momento de que yo aporte algo en agradecimiento. A quien no le ha pasado que a escrito datos o manipulado algo en un archivo, ha salvado el mismo, y en la próxima vez que lo ha abierto, ¡¡¡zas!!! archivo corrupto, ha empezar de nuevo. Bueno, quizás soy un poco exagerado, pero puede pasar si no se usan métodos para que no esto pase. Se trata de una macro que cada vez que se abre el libro guarda una copia del mismo en una carpeta aparte. Usa el método SaveCopyAs. Lo bueno es que se adapta a cualquier proyecto vba que tengamos, solo hay que copiar la hoja en el mismo y poner el código para que arranque en Thisworkbook. O si lo prefieres, copias el recuadro de configuración y le das el valor solo a 3 variables para que el código empiece a trabajar. Sin más, espero que a alguien le resulte práctico, y si hay alguna duda le responderé muy gustosamente. Saludos
×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 5112 personas - Aprender Excel - Total: 4.7 / 5