Saludos a todos:
Pues que tengo un problemilla y no puedo resolverlo espero que me puedan ayudar, se agradece la atención por anticipado:
Estoy trabajando en excel 2010 y visual para aplicaciones.
Tengo una hoja que se llama Menú en la cual tengo un boton de comando con el siguiente código:
Private Sub CmdRecibos_Click()
Rem macro que pone un texto en la primera columna vacia y muestra un userform
Range("A2").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.FormulaR1C1 = "Recibos"
Rem mensaje que me dice en donde esta la celda activa
MsgBox "Esta es la celda " & Replace(Selection.Address, "$", "")
UserRecibo.Show
End Sub
El código del userfor es el siguiente:
Dim lugar As String
Private Sub CantRecibos_Change()
Dim Texto As Variant
Dim Caracter As Variant
Dim Largo As Integer
On Error Resume Next
Texto = Me.CantRecibos.Value
TextBox1 = Texto
Largo = Len(Me.CantRecibos.Value)
For i = 1 To Largo
Caracter = Mid(Texto, i, 1)
If Caracter <> "" Then
If Caracter < Chr(48) Or Caracter > Chr(57) Then
Me.CantRecibos.Value = Replace(Texto, Caracter, "")
Else
End If
End If
Next i
On Error GoTo 0
Caracter = 0
Caracter1 = 0
Rem End Sub
End Sub
Private Sub CmdSalir_Click()
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
Loop
ActiveCell.Offset(0, 0) = ReciboInicial
MsgBox "Esta es la celda " & Replace(Selection.Address, "$", "")
lugar = ActiveCell.Address(False, False)
TextBox2 = lugar
j = CantRecibos
k = 1
i = ReciboInicial
For x = 1 To j
y = i + k
Rem ActiveCell.Offset(lugar, 0) = y
Range("F" & LTrim(Str(x))).Value = y: rem esto funciona pero siempre en la columna f y aqui es donde debe de cambiar a un rango variable
i = y
Next x
Rem End
End
End Sub
Private Sub Label3_Click()
End Sub
Private Sub ReciboFinal_Change()
End Sub
Private Sub ReciboInicial_Change()
Dim Texto As Variant
Dim Caracter As Variant
Dim Largo As Integer
On Error Resume Next
Texto = Me.ReciboInicial.Value
Largo = Len(Me.ReciboInicial.Value)
For i = 1 To Largo
Caracter = Mid(Texto, i, 1)
If Caracter <> "" Then
If Caracter < Chr(48) Or Caracter > Chr(57) Then
Me.ReciboInicial.Value = Replace(Texto, Caracter, "")
Else
End If
End If
Next i
On Error GoTo 0
Caracter = 0
Caracter1 = 0
ReciboFinal = Val(ReciboInicial) + CantRecibos
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub UserForm_Initialize()
Range("a2").Select
Selection.End(xlToRight).Select
End Sub
Private Sub CantRecibos_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If CantRecibos = "" Then Cancel = True
End Sub
Private Sub ReciboInicial_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If ReciboInicial = "" Then Cancel = True
End Sub
Private Sub ReciboFinal_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If ReciboFinal = "" Then Cancel = True
End Sub
El problema que tengo es en el botón salir del userform
En él se hace un ciclo que me permite llenar una serie dependiendo de la cantidad de capture en el textbox CantRecibos y el textbox ReciboInicial con el ciclo for next que iplemente me funciona a medias ya que como dije antes el rango es variable y yo lo tengo hasta este momento para que lo haga siempre en la columna f como hacerlo para que lo haga abajo de la celda que tiene el textto Recibos que cambia 1 ó 2 columnas diariamente
si alguien me puede ayudar se agradecera: