Imprimir ListBox seleccionando las filas

Para Dante Amor

Tengo un ListBox, en el cual se cargan las deudas de algunos clientes, la planilla cuenta con varias columnas y filas, pero quiero que solo me tome las primeras 3 columnas, y que en las filas, me tome hasta donde haya valores en la columna "C", y esos datos me los imprima, ya sea que extraiga a una nueva hoja y que después la elimine a esa hoja o como sea.

Otra cosa, la columna "C" tiene Fórmulas en todos los clientes que suman los datos de toda la planilla, quiero que tome solo los valores "que se ven en la celda", no las fórmulas también, porque sino me marca todo y no solo las celdas que tienen el monto.

Así mismo tengo un inconveniente con la forma en que se cargan los números y se muestran en el TextBox, te había comentado algo, pero el problema no solo se basa en la forma en que se cargan los números ida y vuelta, sino en que me toma mal la configuración regional con los separadores de miles y de decimales, tendría que tomar el valor indepentiende del regional del sistema, porque como lo uso en distintas compues es un quilombo.

Me gustaría poder incluirte el archivo, así te fijas bien, ya que explicando por ahí no es lo mismo... ¿cómo lo podría hacer?

1 Respuesta

Respuesta
1

H o l a:

No entendí, quieres imprimir lo que tienes en el listbox o lo que tienes en las columnas A, ¿B y C?

Envíame tu archivo y me explicas con colores y ejemplos lo que necesitas, entre más claro y completo sea tu ejemplo, más fácil podré ayudarte con la macro.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Marcelo Delgado” y el título de esta pregunta.

Ahí te envíe Daniel, Muchas gracias por la ayuda que estas brindando.

H o l a:

Te anexo el código para filtrar solamente los que tienen deuda

Private Sub CommandButton5_Click()
    Dim strTabla As String
    Dim rngMirango As Range
    Dim rngMirango2 As Range
    Dim intColumnas As Integer
    Sheets("BaseDatos").Select
    strTabla = "MiTablaDGR"
    On Error Resume Next
    'Creamos el nombre a la tabla de la hoja activa
    ActiveWorkbook.Names("MiTablaDGR").Delete
    Set rngMirango = ActiveSheet.Range("C1").CurrentRegion
    Set rngMirango2 = rngMirango.Offset(1, 0).Resize(rngMirango.Rows.Count - 1, _
        rngMirango.Columns.Count)
    rngMirango2.Name = strTabla
    intColumnas = rngMirango2.Columns.Count
    'Formateamos ListBox
    With Lista
        .ColumnCount = 3
        .ColumnWidths = "120 pt;70 pt;80 pt"
        .ColumnHeads = True
    End With
    'Lista.RowSource = strTabla
    '
    'Carga en list solamente las deudas
    'Act.Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("BaseDatos")
    Set h2 = Sheets("filtro")
    h2.Cells.Clear
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    h1.Range("A1:O" & u).AutoFilter Field:=3, Criteria1:="<>"
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    h1.Range("A1:C" & u).Copy
    h2.[A1].PasteSpecial xlValues
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    Lista.RowSource = h2.Name & "!A2:C" & u
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    '
    'Fin.Act.Por.Dante Amor
    '
    On Error GoTo 0
    Sheets("BaseDatos").Select
    Columns("A:O").Select
    ActiveWorkbook.Worksheets("BaseDatos").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("BaseDatos").Sort.SortFields.Add Key:=Range( _
        "C2:C117"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("BaseDatos").Sort
        .SetRange Range("A1:O117")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    '

El filtro lo estoy llevando a la hoja "filtro" de esa forma se pueden cargar el listbox utilizando la propiedad RowSource y de esa manera respetar los títulos en el listbox.

Como el filtro ya está en la hoja "filtro", para imprimir, basta con enviar a imprimir la hoja "filtro":

Private Sub CommandButton12_Click()
    'Worksheets.Add
    'Se Transcriben los Datos a Imprimir
    'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    'Worksheets.Delete
    '
    'Act.Por.Dante Amor
    Sheets("filtro").PrintOut Copies:=1, Collate:=True
    'Fin.Act.Por.Dante Amor
End Sub

Nota: La hoja "filtro" la puedes ocultar.


F E L I Z   A Ñ O   T E   D E S E A   D a n t e   A m o r. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas