Duda en manejo de rango

27/07/2005 - 08:36 por gazu | Informe spam
Su ayuda para resolver la siguiente duda:

Como puedo hacer que si se insertan celdas se modifique ( o se cambie el
rango N8:N16 a N8:N17 si se inseta un fila) en "Loceq" ya que lo uso para
indicar el rango de trabajo y pasar ese valor a otra instruccion (tambien se
modifica "j")

Sub VerificaCelda()

Workbooks("PUNTAS ver final.xls").Activate
Sheets(Julio).Activate

If NumEquipo1 = "Quasi 550" And TipoPuntas = "UQ P" Then
Loceq = "N8:N16": i = 8: j = 16: Localiza 'Si coinciden ambos valores
se trasnfiere el control a Localiza
else
msgbox "error en captura"
end if
end sub

Preguntas similare

Leer las respuestas

#1 KL
27/07/2005 - 09:06 | Informe spam
Hola gazu,

A ver algo asi:

Sub VerificaCelda()
Workbooks("Simplificar Formula.xls").Sheets("Sheet2").Activate
If NumEquipo1 = "Quasi 550" And TipoPuntas = "UQ P" Then
Loceq = "N8:N16"
i = 8
With Range(Loceq)
j = .Rows(.Rows.Count).Row
End With
Localiza
Else
MsgBox "error en captura"
End If
End Sub

Saludos,
KL


"gazu" wrote in message
news:
Su ayuda para resolver la siguiente duda:

Como puedo hacer que si se insertan celdas se modifique ( o se cambie el
rango N8:N16 a N8:N17 si se inseta un fila) en "Loceq" ya que lo uso para
indicar el rango de trabajo y pasar ese valor a otra instruccion (tambien
se
modifica "j")

Sub VerificaCelda()

Workbooks("PUNTAS ver final.xls").Activate
Sheets(Julio).Activate

If NumEquipo1 = "Quasi 550" And TipoPuntas = "UQ P" Then
Loceq = "N8:N16": i = 8: j = 16: Localiza 'Si coinciden ambos valores
se trasnfiere el control a Localiza
else
msgbox "error en captura"
end if
end sub


Respuesta Responder a este mensaje
#2 Héctor Miguel
27/07/2005 - 09:18 | Informe spam
hola, KL !

A ver algo asi:
Sub VerificaCelda()
Workbooks("Simplificar Formula.xls").Sheets("Sheet2").Activate
If NumEquipo1 = "Quasi 550" And TipoPuntas = "UQ P" Then
Loceq = "N8:N16"
i = 8
With Range(Loceq)
j = .Rows(.Rows.Count).Row
End With
Localiza
Else
MsgBox "error en captura"
End If
End Sub



[pregunta]: y... donde 'encaja' algun mecanismo para detectar una insercion de filas ???

Como puedo hacer que si se insertan celdas se modifique (o se cambie el rango N8:N16 a N8:N17 si se inseta un fila) [...]





saludos,
hector.
Respuesta Responder a este mensaje
#3 KL
27/07/2005 - 09:29 | Informe spam
Hola HM,

Tambien me habia preguntado eso, pero decidi asumir que en realidad el OP se
referia a modificar el valor de la variable Loceq a mano o por codigo en
otro procedimiento ya que esta "hard-coded". Supuse que esto era solo un
ejemplo y que la direccion del rango se pasaba a la variable Loceq dentro
del codigo desde algun rango de verdad (lo cual tambien podria ser
redundante).

Saludos,
KL


"Héctor Miguel" wrote in message
news:
hola, KL !

A ver algo asi:
Sub VerificaCelda()
Workbooks("Simplificar Formula.xls").Sheets("Sheet2").Activate
If NumEquipo1 = "Quasi 550" And TipoPuntas = "UQ P" Then
Loceq = "N8:N16"
i = 8
With Range(Loceq)
j = .Rows(.Rows.Count).Row
End With
Localiza
Else
MsgBox "error en captura"
End If
End Sub



[pregunta]: y... donde 'encaja' algun mecanismo para detectar una
insercion de filas ???

Como puedo hacer que si se insertan celdas se modifique (o se cambie el
rango N8:N16 a N8:N17 si se inseta un fila) [...]





saludos,
hector.

Respuesta Responder a este mensaje
#4 Héctor Miguel
27/07/2005 - 09:38 | Informe spam
hola, gazu !

... hacer que si se insertan celdas se modifique (o se cambie el rango N8:N16 a N8:N17... (tambien se modifica "j")
Sub VerificaCelda()
Workbooks("PUNTAS ver final.xls").Activate
Sheets(Julio).Activate
If NumEquipo1 = "Quasi 550" And TipoPuntas = "UQ P" Then
Loceq = "N8:N16": i = 8: j = 16: Localiza 'Si coinciden ambos valores se trasnfiere el control a Localiza
else
msgbox "error en captura"
end if
end sub



una posibe alternativa pudiera ser asignar nombre al rango indicado -?-
[aunque... si la insercion de filas 'depende' del usuario 'en turno']...
-> no existe un evento que 'detecte' si se insertan/eliminan filas/columnas [excepto por un 'des-hacer ->inmediato<-'] :-(
[creo que] necesitaras pensar en otro tipo de mecanismo para ir ajustando el rango segun sea necesario.
solo considera lo siguiente:
1.- los argumentos-rango en funciones son 'ajustables' [dentro] y 'semi-flexibles' [en los 'extremos'] [p.e.]
si 'suponemos' un rango comprendido por 'B11:B35', podriamos [imaginariamente] 'verlo' en tres partes:
a) 'extremo inicial' => la celda 'B11'
b) el rango 'medio' => las celdas 'B12:B34'
c) 'extremo final' => la celda 'B35'
2.- el 'comportamiento' al insertar / eliminar 'dentro' de ese rango seria...
a) el 'extremo inicial' SOLO se 'ajustara' si lo eliminas
b) lo que 'hagas' dentro de [o iniciando en] el 'rango medio' y 'extremo final' [insertar o eliminar] es 'ajustado'
[queda 'dentro' del rango 'final']
c) lo que 'insertes' A PARTIR [o ANTES] del 'extremo inicial' y DESPUES del 'extremo final'... queda FUERA

comentas datos adicionales?
saludos,
hector.
Respuesta Responder a este mensaje
#5 Héctor Miguel
27/07/2005 - 09:49 | Informe spam
hola [de nuevo], gazu !

... hacer que si se insertan celdas se modifique (o se cambie el rango N8:N16 a N8:N17... (tambien se modifica "j")
Sub VerificaCelda()
Workbooks("PUNTAS ver final.xls").Activate
Sheets(Julio).Activate
If NumEquipo1 = "Quasi 550" And TipoPuntas = "UQ P" Then
Loceq = "N8:N16": i = 8: j = 16: Localiza 'Si coinciden ambos valores se trasnfiere el control a Localiza
else
msgbox "error en captura"
end if
end sub



dentro de otras -posibles- alternativas de solucion... pudieran entrar [algunas de] las siguientes:
-> utilizar la propiedad '.CurrentRegion' [probablemente] 'combinada' con algun 'Offset' y un 'Resize' -?-
-> 'hacer' un '.End(xlDown)' -?-
-> 'regresar' desde una siguiente celda 'vacia' -?-

en tanto comentas los detalles adicionales... ve si te sirve la informacion de la siguiente pagina:
-> http://j-walk.com/ss/excel/tips/tip10.htm

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida