Visualizar

Sorry Valedor:
Me podrías decir en que estoy mal, ya que lo que busco con este código es que estando en la Hoja1, por ejemp. Active yo un formulario y realize el sig. Código en la Hoja que se llama "SalMin", este código hace casi todo lo que quiero pero al llegar al procedimiento que te marco, no lo hace, ahora si me cambio a la Hoja (SalMin) se ejecuta perfectamente.
Private Sub Aceptar_Click()
With Worksheets("SalMin").Range("A:A")
Set c = .Find(what:=txtAno, LookIn:=xlFormulas)
If Not c Is Nothing Then
Range(c.Address).Select
s = MsgBox("Este año ya ha sido capturado, Deseas Modificarlo?", vbYesNo + vbQuestion, "Opcion")
If s = vbYes Then
Aceptar.Visible = False
(AQUI)
txtAno = ActiveCell.FormulaR1C1
ActiveCell.Next.Select
txtZonaA = ActiveCell.FormulaR1C1
ActiveCell.Next.Select
txtZonaB = ActiveCell.FormulaR1C1
ActiveCell.Next.Select
txtZonaC = ActiveCell.FormulaR1C1
Modificar.Visible = True
Else
End If
Else

1 Respuesta

Respuesta
1
Como te decía, cuando programes NO hagas las cosas como si las hicieses desde la interfaz, cuando tienes...
txtAno = ActiveCell.FormulaR1C1
Observa como usamos ActiveCell, si tu ejecutas tu macro desde la Hoja1, la celda Activa estará en esta hoja, si la ejecutas desde la hoja SalMin la celda ACTIVA estará en esta hoja, de ahí que en unas te funcione y en otra no, procura NO usar la instrucción ActiveCell y si la usas, procura que la hoja ACTIVA sea la que quieres extraer o escribir datos...
No es necesario que hagas una selección para extraer datos...
Range(c.Address).Select
Si ya tienes la celda objetivo (en esta caso en tu variable "c"), para acceder a la siguiente celda podrías usar
txtDato = c.Offset(1,0).Value
Checa el método Offset es muy útil y creo que te servirá.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas