Saltar al contenido

Mostrar u ocultar columnas de un listbox en tiempo de ejecucion


Ir a la solución Solucionado por Antoni,

Recommended Posts

Hola a todos;

Estoy trabajando en Access y he hecho un procedimiento para ocultar columnas de listbox en tiempo de ejecución.

He añadido un listbox o cuadro de lista auxiliar donde se cargan los titulos (no tienen el mismo nombre algunos campos porque le he cambiado el nombre de los titulos)

Ahora mismo lo estoy haciendo con un número fijo e columnas, pero lo interesante sería que fuese sobre un número dinámico de columnas.

Entonces lo que hago es seleccionar un item y al ejecutar el procedimiento oculta la columna.

Habéis visto algo similar para Excel.

Sí es así me podéis indicar¿?

Saludos a todos y todas.

aListaOculta.thumb.gif.b3f7b9e288366f1d5c027ba67ac86280.gif

 

Enlace a comentario
Compartir con otras webs

Por si sirve de ayuda en Acces tengo este procedimiento:

Private Sub ListaTitulos_AfterUpdate()
    Dim anchoColumnas As String
    Dim i As Integer

    ' Obtener el índice de la columna seleccionada en ListaTitulos
    Dim indiceColumna As Integer
    indiceColumna = Me.ListaTitulos.ListIndex

    For i = 1 To Me.ListaResultados.ColumnCount
        If i = indiceColumna + 1 Then
            anchoColumnas = anchoColumnas & "0cm;"
        Else
            anchoColumnas = anchoColumnas & ";"
        End If
    Next i
    
    anchoColumnas = Left(anchoColumnas, Len(anchoColumnas) - 1)
    Me.ListaResultados.columnWidths = anchoColumnas

End Sub

Me oculta solo una de cada vez, si selecciono una esta se oculta pero si selecciono otra distinta me oculta esta y muestra la que había ocultado.

Sigo viendo.

Enlace a comentario
Compartir con otras webs

  • Solution

Está haciendo exactamente lo que le dices, cada vez que seleccionas una fila de títulos te oculta el seleccionado.

El truco consiste en que la lista de títulos ha de ser multiselección y debes preguntar si cada título está seleccionado o no, te dejo un ejemplo.

Ocultar columnas.xlsm

Enlace a comentario
Compartir con otras webs

hace 1 hora, Antoni dijo:

Está haciendo exactamente lo que le dices, cada vez que seleccionas una fila de títulos te oculta el seleccionado.

El truco consiste en que la lista de títulos ha de ser multiselección y debes preguntar si cada título está seleccionado o no, te dejo un ejemplo.

Ocultar columnas.xlsm 15.31 kB · 0 descargas

Excelente @Antoni que fácil lo has hecho.

La verdad que es muy cómodo para centrarse en datos concretos y no he encontrado mucho publicado al respecto.

 

Saludos y a la orden

image.png.9ceb19f155fa0bd426ecf9b1c0173daa.png

Editado el por Benito Bartolomé
Enlace a comentario
Compartir con otras webs

hace 23 horas, Antoni dijo:

Re dejo una alternativa a ocultar columnas.

Se trata de una forma de inmovilizar columnas.

 

Ejemplo.gif

Inmovilizar columnas.xlsm 19.17 kB · 1 descarga

Disculpa Antoni, aún vi ahora la notificación.

En un rato lo veo.

Hoy he estado trabajando en Access con lo mismo y estaba tratando de conseguir que al pulsar sobre la columna de un list este aumente el tamaño pero se me resiste.

P.D. la idea está genial.

Enlace a comentario
Compartir con otras webs

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
  • 104 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      181
    • Comentarios
      90
    • Revisiones
      27

    Más información sobre "Gráfico olímpico animado"
    Última descarga
    Por pegones1

    2    0

  • Crear macros Excel

  • Mensajes

    • Buen día, trate de automatizar para crear ordenes de servicio, pero me sale el error "Error de compilación: el uso de la propiedad no es válido" y me subraya esta linea "Set Application = SapGuiAuto.GetScriptingEngine"   Comparto como realice la programación:   Sub Ordenesautomaticasunapos() If Not IsObject(Application) Then    Set SapGuiAuto = GetObject("SAPGUI")    Set Application = SapGuiAuto.GetScriptingEngine End If If Not IsObject(Connection) Then    Set Connection = Application.Children(0) End If If Not IsObject(session) Then    Set session = Connection.Children(0) End If If IsObject(WScript) Then    WScript.ConnectObject session, "on"    WScript.ConnectObject Application, "on" End If Dim indice As String Dim inicio As String Dim cantidadFilas As String inicio = CStr(Selection.Cells(1, 1).Row) indice = Selection.Cells(1, 1).Row cantidadFilas = Selection.Rows.Count For i = 1 To cantidadFilas 'recorrido en la seleccion session.findById("wnd[0]").maximize session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB0:SAPLMEGUI:0030/subSUB1:SAPLMEGUI:1105/cmbMEPO_TOPLINE-BSART").Key = "PSER" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB0:SAPLMEGUI:0030/subSUB1:SAPLMEGUI:1105/ctxtMEPO_TOPLINE-SUPERFIELD").Text = "COL1" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB1:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1102/tabsHEADER_DETAIL/tabpTABHDT8/ssubTABSTRIPCONTROL2SUB:SAPLMEGUI:1221/ctxtMEPO1222-EKORG").Text = "Worksheets("NA").Range("B" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB1:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1102/tabsHEADER_DETAIL/tabpTABHDT8/ssubTABSTRIPCONTROL2SUB:SAPLMEGUI:1221/ctxtMEPO1222-EKGRP").Text = "Worksheets("NA").Range("C" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB1:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1102/tabsHEADER_DETAIL/tabpTABHDT8/ssubTABSTRIPCONTROL2SUB:SAPLMEGUI:1221/ctxtMEPO1222-BUKRS").Text = "Worksheets("NA").Range("D" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/txtMEPO1211-EBELP[1,0]").Text = "Worksheets("NA").Range("E" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-KNTTP[2,0]").Text = "Worksheets("NA").Range("F" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-EPSTP[3,0]").Text = "Worksheets("NA").Range("G" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/txtMEPO1211-TXZ01[5,0]").Text = "Worksheets("NA").Range("H" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/txtMEPO1211-MENGE[6,0]").Text = "Worksheets("NA").Range("I" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-MEINS[7,0]").Text = "Worksheets("NA").Range("J" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-WGBEZ[14,0]").Text = "Worksheets("NA").Range("K" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-NAME1[15,0]").Text = "Worksheets("NA").Range("L" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/txtMEPO1211-AFNAM[21,0]").Text = "Worksheets("NA").Range("M" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/txtMEPO1211-AFNAM[21,0]").SetFocus session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/txtMEPO1211-AFNAM[21,0]").caretPosition = 9 session.findById("wnd[0]").sendVKey 0 session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0019/subSUB3:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1301/subSUB2:SAPLMEGUI:1303/tabsITEM_DETAIL/tabpTABIDT1/ssubTABSTRIPCONTROL1SUB:SAPLMEGUI:1328/subSUB0:SAPLMLSP:0400/tblSAPLMLSPTC_VIEW/txtESLL-KTEXT1[3,0]").Text = "Worksheets("NA").Range("N" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0019/subSUB3:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1301/subSUB2:SAPLMEGUI:1303/tabsITEM_DETAIL/tabpTABIDT1/ssubTABSTRIPCONTROL1SUB:SAPLMEGUI:1328/subSUB0:SAPLMLSP:0400/tblSAPLMLSPTC_VIEW/txtESLL-MENGE[4,0]").Text = "Worksheets("NA").Range("O" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0019/subSUB3:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1301/subSUB2:SAPLMEGUI:1303/tabsITEM_DETAIL/tabpTABIDT1/ssubTABSTRIPCONTROL1SUB:SAPLMEGUI:1328/subSUB0:SAPLMLSP:0400/tblSAPLMLSPTC_VIEW/ctxtESLL-MEINS[5,0]").Text = "Worksheets("NA").Range("P" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0019/subSUB3:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1301/subSUB2:SAPLMEGUI:1303/tabsITEM_DETAIL/tabpTABIDT1/ssubTABSTRIPCONTROL1SUB:SAPLMEGUI:1328/subSUB0:SAPLMLSP:0400/tblSAPLMLSPTC_VIEW/txtESLL-TBTWR[6,0]").Text = "Worksheets("NA").Range("Q" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0019/subSUB3:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1301/subSUB2:SAPLMEGUI:1303/tabsITEM_DETAIL/tabpTABIDT1/ssubTABSTRIPCONTROL1SUB:SAPLMEGUI:1328/subSUB0:SAPLMLSP:0400/tblSAPLMLSPTC_VIEW/ctxtRM11P-KOSTL[8,0]").SetFocus session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0019/subSUB3:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1301/subSUB2:SAPLMEGUI:1303/tabsITEM_DETAIL/tabpTABIDT1/ssubTABSTRIPCONTROL1SUB:SAPLMEGUI:1328/subSUB0:SAPLMLSP:0400/tblSAPLMLSPTC_VIEW/ctxtRM11P-KOSTL[8,0]").caretPosition = 0 session.findById("wnd[0]").sendVKey 0 session.findById("wnd[1]/usr/ctxtESKN-SAKTO").Text = "Worksheets("NA").Range("R" & indice).Value" session.findById("wnd[1]/usr/subKONTBLOCK:SAPLKACB:2100/ctxtCOBL-KOSTL").Text = "Worksheets("NA").Range("S" & indice).Value" session.findById("wnd[1]/usr/subKONTBLOCK:SAPLKACB:2100/ctxtCOBL-KOSTL").SetFocus session.findById("wnd[1]/usr/subKONTBLOCK:SAPLKACB:2100/ctxtCOBL-KOSTL").caretPosition = 6 session.findById("wnd[1]").sendVKey 0 session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0015/subSUB3:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1301/subSUB2:SAPLMEGUI:1303/tabsITEM_DETAIL/tabpTABIDT8/ssubTABSTRIPCONTROL1SUB:SAPLMEGUI:1317/ctxtMEPO1317-MWSKZ").Text = "Worksheets("NA").Range("T" & indice).Value" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0015/subSUB3:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1301/subSUB2:SAPLMEGUI:1303/tabsITEM_DETAIL/tabpTABIDT8/ssubTABSTRIPCONTROL1SUB:SAPLMEGUI:1317/ctxtMEPO1317-MWSKZ").caretPosition = 2 session.findById("wnd[0]").sendVKey 0 session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0015/subSUB1:SAPLMEVIEWS:1100/subSUB1:SAPLMEVIEWS:4000/btnDYN_4000-BUTTON").press session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0010/subSUB1:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1102/tabsHEADER_DETAIL/tabpTABHDT3").Select session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0010/subSUB1:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1102/tabsHEADER_DETAIL/tabpTABHDT3/ssubTABSTRIPCONTROL2SUB:SAPLMEGUI:1230/subTEXTS:SAPLMMTE:0100/subEDITOR:SAPLMMTE:0101/cntlTEXT_EDITOR_0101/shellcont/shell").Text = "Worksheets("NA").Range("U" & indice).Value" + vbCr + "" + vbCr + "" session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0010/subSUB1:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1102/tabsHEADER_DETAIL/tabpTABHDT3/ssubTABSTRIPCONTROL2SUB:SAPLMEGUI:1230/subTEXTS:SAPLMMTE:0100/subEDITOR:SAPLMMTE:0101/cntlTEXT_EDITOR_0101/shellcont/shell").setSelectionIndexes 92, 92 session.findById("wnd[0]/tbar[0]/btn[11]").press session.findById("wnd[0]/usr/subSUB0:SAPLMEGUI:0013/subSUB1:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1102/tabsHEADER_DETAIL/tabpTABHDT3/ssubTABSTRIPCONTROL2SUB:SAPLMEGUI:1230/subTEXTS:SAPLMMTE:0100/subEDITOR:SAPLMMTE:0101/cntlTEXT_EDITOR_0101/shellcont/shell").setSelectionIndexes 0, 0 Worksheets ("NA").Range"V" & indice) = Right(session.FindById("wnd(0)/abar").text, 10) session.findById("wnd(0)").sendVKey 3 indice = indice + 1 Next1 'Pega el texto de SAP en excel, y continua con la siguiente linea      End Sub   Quedo atenta si me pueden ayduar porfa  
    • Buenas, alguien quien pueda ayudarme a solucionar lo del ajuste que está faltando en tema original?? por favor...agradezco cualquier comentario.
    • Por la descripción se me ocurren un par de cosas que recomendarte, una podría ser la configuración de la región, así que en donde no se "abre" bien revisa que el separador de listas sea una coma. La otra no mencionas como lo mandas llamar pero se puede deducir que haces doble clic, así que igualmente en la que no abre bien prueba importar "manualmente" el .csv  
    • Buenas! De antemano pido perdon si estoy infringiendo alguna normativa establecida en este foro. Es mi primer posteo y necesito ayuda con urgencia. Tengo el siguiente inconveniente y espero que aca me puedan ayudar. Tengo excel instalado en dos computadoras distintas. Es el mismo excel 365. Sin embargo, al intentar abrir el mismo archivo CSV, en una computadora se me abre el archivo con todos los datos en una sola celda separados por comas (es decir, es necesario hacer un Text to column para separar los valores en distintas columnas). En cambio, en la otra computadora (la que funciona bien para mi caso) se me abre con las columnas ya separadas. Busque por varios lugares e ingrese a configuracion, pero no encontre nada que tuviese distinto una computadora con la otra.  Desde ya agradezco la ayuda de quien sea, son archivos de trabajo y no puedo compartirlos (aunque dejo una foto de la celda como me figura en la computadora para que puedan ver mas o menos como es el problema).  Saludos,
    • Hola y muy buena tarde foreros, espero puedan ayudarme por favor!!! , tengo un código que he ido puliendo, pero falta un ajuste mínimo creo, ya que no está funcionando algo, que es guardar los cambios antes de cerrarse el o los archivos de formato CSV. El proceso es el siguiente:  1ro. Exporto desde otra plataforma muchos archivos en formato csv (separados por coma) que inician con el prefijo "Mapeo", ejemplo : Mapeo_Sistema1, Mapeo_Sistema2, etc) 2do. Ejecuto el código que pegaré más abajo,  éste está guardado en mis macros "PERSONAL.XLSB" y la ejecuto de un botón. 3ro. Se ejecuta la macro, funciona bien, excepto la instrucción donde debe guardar cada uno de los archivos csv separados por coma antes que se cierren.  este es el código que requiere el ajuste: (también adjunto archivo con datos de ejemplo)  necesito de algún apoyo de parte de un experto del foro por favor, cualquier comentario  estaré muy agradecido.  Muchas gracias. Sub ConvertirTextoEnColumnasGuardarComoCSV()     Dim wb As Workbook     Dim ws As Worksheet     Dim lastRow As Long     Dim fileName As String     Dim filePath As String     Dim csvFilePath As String     Dim mapeoFiles As Integer     Dim filesProcessed As Integer          mapeoFiles = 0     filesProcessed = 0          ' Contar el número de archivos que comienzan con "Mapeo"     For Each wb In Application.Workbooks         If Left(wb.Name, 5) = "Mapeo" Then             mapeoFiles = mapeoFiles + 1         End If     Next wb          ' Recorrer todos los archivos abiertos     For Each wb In Application.Workbooks         fileName = wb.Name                  ' Verificar si el nombre del archivo comienza con "Mapeo"         If Left(fileName, 5) = "Mapeo" Then             filesProcessed = filesProcessed + 1                          ' Recorrer todas las hojas del libro             For Each ws In wb.Worksheets                 ' Obtener la última fila con datos en la hoja                 lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row                                  ' Convertir texto en columnas usando coma como delimitador                 ws.Columns("A").TextToColumns Destination:=ws.Columns("A"), DataType:=xlDelimited, _                     TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _                     Tab:=False, Semicolon:=False, Comma:=True, Space:=False, _                     Other:=False             Next ws                          ' Guardar el archivo como CSV             filePath = wb.Path             csvFilePath = filePath & "\" & Left(fileName, Len(fileName) - Len(".xlsx")) & ".csv"             Application.DisplayAlerts = False             wb.SaveAs Filename:=csvFilePath, FileFormat:=xlCSV, CreateBackup:=False             Application.DisplayAlerts = True                          ' Si es el último archivo, mostrar un mensaje antes de cerrar             If filesProcessed = mapeoFiles Then                 MsgBox "Se procesaron y guardaron todos los archivos Mapeo como CSV. Se cerrará el último archivo ahora.", vbInformation             End If                          ' Cerrar el archivo             wb.Close SaveChanges:=False         End If     Next wb End Sub   Mapeo_Sistema.csv
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.