Estoy tratando de interpretar un codigo VBA pero no puedo extender el rango hasta la fila 150. Cambie el rango pero no me imprime en letras. Me pueden ayudar?
Publicado por Jpuebla57 hace 2 semanas
Sub MarcarDesmarcar()
vf = Worksheets(2).Range("C1").Value
For Each x In Worksheets(2).Range("C4:D103")
x.Value = vf
Next
End Sub
Sub Recibos()
Worksheets(3).Copy After:=Worksheets(3)
ActiveSheet.Unprotect "bululu"
n = Worksheets(2).Range("B104").Value - 1
If n = -1 Then
n = 0
End If
For i = 1 To n
Worksheets(4).Rows(i * 19 + 1).PageBreak = xlPageBreakManual
Range("A" & i * 19 + 1).Select
Range("A1:V19").Copy
ActiveSheet.Paste
Next
Dim y As Range
Dim a As Integer
a = 12
b = 3
For Each x In Worksheets(2).Range("B4:B103")
b = b + 1
Set y = Worksheets(2).Range("F" & b)
If x.Text = "VERDADERO" Or x.Text = "TRUE" Then
Range("E" & a).Value = y.Value
a = a + 19
End If
Next
Application.CutCopyMode = False
ActiveSheet.PageSetup.PrintArea = "B1:V" & a + 7
Dim c As Integer
Dim d As Integer
c = 0
d = 14
Do Until c = Worksheets(2).Range("B104").Value
Range("G" & d).FormulaR1C1 = "=letra(R[1]C[-2])"
d = d + 19
c = c + 1
Loop
End Sub
Sub VistaPreliminar()
UserForm1.Hide
Application.Run "Recibos"
ActiveSheet.PageSetup.CenterHorizontally = True
ActiveSheet.PrintPreview
Application.DisplayAlerts = False
ActiveSheet.Delete
Worksheets(1).Select
ActiveWorkbook.Protect Password:="bululu", Structure:=True, Windows:=False
End Sub
Sub Imprimir()
UserForm1.Hide
Application.Run "Recibos"
ActiveSheet.PageSetup.CenterHorizontally = True
ActiveSheet.PrintOut
Application.DisplayAlerts = False
ActiveSheet.Delete
Worksheets(1).Select
ActiveWorkbook.Protect Password:="bululu", Structure:=True, Windows:=False
End Sub
Sub FormImpresion()
ActiveWorkbook.Unprotect "bululu"
UserForm1.Show
End Sub
Sub FormImpresionNotas()
ActiveWorkbook.Unprotect "bululu"
UserForm2.Show
End Sub
Sub Notas()
Worksheets(4).Copy After:=Worksheets(4)
ActiveSheet.Unprotect "bululu"
n = Worksheets(2).Range("A104").Value - 1
If n = -1 Then
n = 0
End If
For i = 1 To n
Worksheets(5).Rows(i * 42 + 1).PageBreak = xlPageBreakManual
Range("A" & i * 42 + 1).Select
Range("A1:H42").Copy
ActiveSheet.Paste
Next
Dim y As Range
Dim a As Integer
a = 12
b = 3
For Each x In Worksheets(2).Range("A4:A103")
b = b + 1
Set y = Worksheets(2).Range("F" & b)
If x.Text = "VERDADERO" Or x.Text = "TRUE" Then
Range("C" & a).Value = y.Value
a = a + 42
End If
Next
Application.CutCopyMode = False
If n = 0 Then
ActiveSheet.PageSetup.PrintArea = "B1:H42"
Else
ActiveSheet.PageSetup.PrintArea = "B1:H" & a - 11
End If
End Sub
Sub VistaPreliminarNotas()
UserForm2.Hide
Application.Run "Notas"
ActiveSheet.PageSetup.CenterHorizontally = True
ActiveSheet.PrintPreview
Application.DisplayAlerts = False
ActiveSheet.Delete
Worksheets(1).Select
ActiveWorkbook.Protect Password:="bululu", Structure:=True, Windows:=False
End Sub
Sub ImprimirNotas()
UserForm2.Hide
Application.Run "Notas"
ActiveSheet.PageSetup.CenterHorizontally = True
ActiveSheet.PrintOut
Application.DisplayAlerts = False
ActiveSheet.Delete
Worksheets(1).Select
ActiveWorkbook.Protect Password:="bululu", Structure:=True, Windows:=False
End Sub
Sub Ayuda()
Help.Show
End Sub
vf = Worksheets(2).Range("C1").Value
For Each x In Worksheets(2).Range("C4:D103")
x.Value = vf
Next
End Sub
Sub Recibos()
Worksheets(3).Copy After:=Worksheets(3)
ActiveSheet.Unprotect "bululu"
n = Worksheets(2).Range("B104").Value - 1
If n = -1 Then
n = 0
End If
For i = 1 To n
Worksheets(4).Rows(i * 19 + 1).PageBreak = xlPageBreakManual
Range("A" & i * 19 + 1).Select
Range("A1:V19").Copy
ActiveSheet.Paste
Next
Dim y As Range
Dim a As Integer
a = 12
b = 3
For Each x In Worksheets(2).Range("B4:B103")
b = b + 1
Set y = Worksheets(2).Range("F" & b)
If x.Text = "VERDADERO" Or x.Text = "TRUE" Then
Range("E" & a).Value = y.Value
a = a + 19
End If
Next
Application.CutCopyMode = False
ActiveSheet.PageSetup.PrintArea = "B1:V" & a + 7
Dim c As Integer
Dim d As Integer
c = 0
d = 14
Do Until c = Worksheets(2).Range("B104").Value
Range("G" & d).FormulaR1C1 = "=letra(R[1]C[-2])"
d = d + 19
c = c + 1
Loop
End Sub
Sub VistaPreliminar()
UserForm1.Hide
Application.Run "Recibos"
ActiveSheet.PageSetup.CenterHorizontally = True
ActiveSheet.PrintPreview
Application.DisplayAlerts = False
ActiveSheet.Delete
Worksheets(1).Select
ActiveWorkbook.Protect Password:="bululu", Structure:=True, Windows:=False
End Sub
Sub Imprimir()
UserForm1.Hide
Application.Run "Recibos"
ActiveSheet.PageSetup.CenterHorizontally = True
ActiveSheet.PrintOut
Application.DisplayAlerts = False
ActiveSheet.Delete
Worksheets(1).Select
ActiveWorkbook.Protect Password:="bululu", Structure:=True, Windows:=False
End Sub
Sub FormImpresion()
ActiveWorkbook.Unprotect "bululu"
UserForm1.Show
End Sub
Sub FormImpresionNotas()
ActiveWorkbook.Unprotect "bululu"
UserForm2.Show
End Sub
Sub Notas()
Worksheets(4).Copy After:=Worksheets(4)
ActiveSheet.Unprotect "bululu"
n = Worksheets(2).Range("A104").Value - 1
If n = -1 Then
n = 0
End If
For i = 1 To n
Worksheets(5).Rows(i * 42 + 1).PageBreak = xlPageBreakManual
Range("A" & i * 42 + 1).Select
Range("A1:H42").Copy
ActiveSheet.Paste
Next
Dim y As Range
Dim a As Integer
a = 12
b = 3
For Each x In Worksheets(2).Range("A4:A103")
b = b + 1
Set y = Worksheets(2).Range("F" & b)
If x.Text = "VERDADERO" Or x.Text = "TRUE" Then
Range("C" & a).Value = y.Value
a = a + 42
End If
Next
Application.CutCopyMode = False
If n = 0 Then
ActiveSheet.PageSetup.PrintArea = "B1:H42"
Else
ActiveSheet.PageSetup.PrintArea = "B1:H" & a - 11
End If
End Sub
Sub VistaPreliminarNotas()
UserForm2.Hide
Application.Run "Notas"
ActiveSheet.PageSetup.CenterHorizontally = True
ActiveSheet.PrintPreview
Application.DisplayAlerts = False
ActiveSheet.Delete
Worksheets(1).Select
ActiveWorkbook.Protect Password:="bululu", Structure:=True, Windows:=False
End Sub
Sub ImprimirNotas()
UserForm2.Hide
Application.Run "Notas"
ActiveSheet.PageSetup.CenterHorizontally = True
ActiveSheet.PrintOut
Application.DisplayAlerts = False
ActiveSheet.Delete
Worksheets(1).Select
ActiveWorkbook.Protect Password:="bululu", Structure:=True, Windows:=False
End Sub
Sub Ayuda()
Help.Show
End Sub
Respuestas
JuliaBravo490
respondió hace hace 1 semana:
Hola, Jorge Luis.
Para solucionar el problema con el rango, revisa que estás incluyendo todas las filas necesarias en Worksheets(2).Range(...) . Si deseas extender el rango hasta la fila 150, asegúrate de cambiar C4: D103 a C4:D150 y revisar cualquier otro límite que pueda estar afectando la impresión en letras.
Para ayudarte de mejor manera y hacer pruebas con valores reales, sería útil que adjuntes un archivo de Excel con algunos datos de ejemplo. De esta manera, podré analizar mejor el comportamiento del código y brindarte una solución más precisa.
Saludos,
Julia Bravo
Equipo DEZTACA
Para solucionar el problema con el rango, revisa que estás incluyendo todas las filas necesarias en Worksheets(2).Range(...) . Si deseas extender el rango hasta la fila 150, asegúrate de cambiar C4: D103 a C4:D150 y revisar cualquier otro límite que pueda estar afectando la impresión en letras.
Para ayudarte de mejor manera y hacer pruebas con valores reales, sería útil que adjuntes un archivo de Excel con algunos datos de ejemplo. De esta manera, podré analizar mejor el comportamiento del código y brindarte una solución más precisa.
Saludos,
Julia Bravo
Equipo DEZTACA