reporte personalizado, por favor solicito ayuda

Samuel Cano

Board Regular
Joined
Jun 24, 2002
Messages
62
Hola. verán,

tengo un formulario para generar un reporte personalizado, de modo que quiero que se puedan hacer diversas selecciones y con base en ellas se genere el reporte. (El reporte consiste en copiar las filas que cumplen los criterios, a otra hoja).

En el formulario hay controles checkbox que seleccionados como ya dije, son condiciones para seleccionar las filas a mover (para ilustrar, solo útilicé dos).

Se me ocurrió que podría integrar la cadena de condiciones en una variable (fuera del ciclo For ... Next que evalúa cada fila) y luego utilizar esa variable en la estructura IF que evalúa celdas específicas de cada fila (dentro del For ... Next antes mencionado).

Con el siguiente código, he conseguido integrar la variable como la necesito:
Code:
strCondicion = ""

If chkPrograma.Value = True And strCondicion = "" Then
    strCondicion = "celdaPrograma = cboPrograma.Value"
Else
End If

If chkAño.Value = True And strCondicion = "" Then
    strCondicion = "celdaAño = cboAño.Value"
ElseIf chkAño.Value = True And strCondicion <> "" Then
    strCondicion = strCondicion & " And " & "celdaAño = cboAño.Value"
End If

' '! noten que el segundo If parte de las selecciones hechas en el primero (y así sucesivamente)

De modo que si consulto el contenido de la variable strCondicion será:

celdaPrograma = cboPrograma.Value And celdaAño = cboAño.Value
ó
celdaPrograma = cboPrograma.Value
ó
celdaAño = cboAño.Value

según las opciones seleccionadas... lo cual es correcto, peero...


al utilizarla en la estructura If ... Then, así:

Code:
If strCondicion Then

sencillamente es ignorada...

Bueno, ese es el caso... de antemano se agradecen aportaciones.

gracias de nuevo y seguimos en contacto...

- Samuel
 
Bueno, no leí todo, pero por lo menos puedes encoger esas 67 líneas
Code:
        .Cells(10, "B").Value = "B"
        .Cells(10, "C").Value = "C"
        ' ...
        .Cells(10, "BM").Value = "BM"
        .Cells(10, "BN").Value = "BN"
        .Cells(10, "BO").Value = "BO"
a estas dos:
Code:
    With Range("B10:BO10")
        .Formula = "=LEFT(ADDRESS(1,COLUMN(INDIRECT(""rc"",FALSE)),2),FIND(""$"",ADDRESS(1,COLUMN(INDIRECT(""rc"",FALSE)),2))-1)"
        .Formula = .Value
    End With
 
Upvote 0

Excel Facts

Show numbers in thousands?
Use a custom number format of #,##0,K. Each comma after the final 0 will divide the displayed number by another thousand
Perdon Greg:
Pero en mi Excel en Español, logro loque creo que quieres lograr con esto:

Code:
Sub probar()


With Range("B10:BO10")
        .Formula = "=LEFT(ADDRESS(1,COLUMN(),2),FIND(""$"",ADDRESS(1,COLUMN(),2))-1)"
        .Formula = .Value
End With
End Sub
 
Upvote 0
Otra opción,

Code:
Sub test()
    With Range("B10:BO10")
        .Formula = "=Substitute(Address(1,column(),4),1,"""")"
        .Formula = .Value
    End With
End Sub

Saludos
 
Upvote 0
:LOL: Y eso sería por que me encanta este foro. Buenos mejoramientos, caballeros. (y) Esto es lo que pasa a uno cuando unos está acostumbrado a hacer cosas más complicadas y trata de hacer algo sencillo. Ya ni me acuerdo qué estaba haciendo donde tuve que usar ese COLUMN(INDIRECT("rxcy",FALSE)) pero obviamente me quedé tramautizado. :eek:

Gracias por las sugerencias. :biggrin:
 
Upvote 0

Forum statistics

Threads
1,216,788
Messages
6,132,703
Members
449,753
Latest member
swastikExcel

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top