Ocultar si su valor es 0 con vba

Dante Amor,

Ingeniero me podrías ayudar con los siguiente: Tengo una plantilla o modelo de recibo para imprimir bien sea directamente o en pdf, el problema es que me toca estar ocultando items según no estén disponibles.

Que posibilidad hay que oculte la fila si su valor en la columna F sea 0 o vacio.

Este es el código que uso para imprimir el modelo según la cantidad de registros que hay en la hoja 1

Sub Recibo()
    Application.CutCopyMode = False
    Application.ScreenUpdating = False
   Sheets("Hoja1").Activate
   Range("A2").Select
 Do While Not IsEmpty(ActiveCell)
   Set ID = ActiveCell
   Set vr1 = ActiveCell.Offset(0, 1)
   Set vr2 = ActiveCell.Offset(0, 2)
   Set vr3 = ActiveCell.Offset(0, 3)
   Set vr4 = ActiveCell.Offset(0, 4)
   Set vr5 = ActiveCell.Offset(0, 5)
   Set vr6 = ActiveCell.Offset(0, 6)
   Set vr7 = ActiveCell.Offset(0, 7)
   Set vr8 = ActiveCell.Offset(0, 8)
   Set vr9 = ActiveCell.Offset(0, 9)
   Set vr10 = ActiveCell.Offset(0, 10)
   Set vr11 = ActiveCell.Offset(0, 11)
   ruta = ThisWorkbook.Path & "\RECIBOS\"
   LIBRO = "RECIBO" & "-" & ID & ".pdf"
   ArchivoPdf = ruta & LIBRO
   With Sheets("Hoja2")
    .Range("B1") = ID
    .Range("E3") = vr1
    .Range("F3") = vr2
    .Range("F4") = vr3
    .Range("F5") = vr4
    .Range("F6") = vr5
    .Range("F7") = vr6
    .Range("F8") = vr7
    .Range("F9") = vr8
    .Range("F10") = vr9
    .Range("F11") = vr10
    .Range("F12") = vr11
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=ArchivoPdf, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
   End With
    ActiveCell.Offset(1, 0).Select
  Loop
   Application.ScreenUpdating = True
  End Sub

He intentado hacerlo con un if condicional pero no me doy.   Soy nuevo en el foro.

1 Respuesta

Respuesta
5

[Ho la y bienvenido a TodoExpertos.

Prueba lo siguiente:

Sub Recibo()
  Dim sh1 As Worksheet
  Dim i As Long, j As Long
  Dim ruta As String, libro As String, id As Variant
  '
  Application.ScreenUpdating = False
  '
  ruta = ThisWorkbook.Path & "\RECIBOS\"
  Set sh1 = Sheets("Hoja1")
  '
  For i = 2 To sh1.Range("A" & Rows.Count).End(3).Row
    id = sh1.Range("A" & i).Value
    libro = "RECIBO" & "-" & id & ".pdf"
    With Sheets("Hoja2")
      .Range("B1") = id
      .Range("E3") = sh1.Range("B" & i).Value
      For j = 3 To 12
        With .Range("F" & j)
          .Value = sh1.Cells(i, j).Value
          If .Value = 0 Or .Value = "" Then .EntireRow.Hidden = True
        End With
      Next
      .ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & libro, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True
      .Cells.EntireRow.Hidden = False
    End With
  Next
  Application.ScreenUpdating = True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas