Foros del Web » Programación para mayores de 30 ;) » .NET »

macro capture en rango variable

Estas en el tema de macro capture en rango variable en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/05/2014, 18:23
 
Fecha de Ingreso: mayo-2014
Mensajes: 1
Antigüedad: 8 años, 3 meses
Puntos: 0
Pregunta macro capture en rango variable

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:

Etiquetas: vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:15.