Uso Ref edit

Hola Fernando!
Tengo un Userform con un refedit
Luego tengo un rango que es igual a lo seleccionado en el refedit, el problema es que si tengo rangos disjuntos, refedit escribe algo del tipo :
Trabajadores!$H$5:$M$10;Trabajadores!$I$15:$M$20
Y el meto range me falla.
¿Cómo puedo hacer para tener mi rango disjunto y poder hacer algo sobre él?
Espero haberme explicado lo suficiente..
Chao.

1 Respuesta

Respuesta
1
Puedes intentar la función UNION()
Por ejemplo, en tu caso a la salida de los controles arma esta rutina:
Sub RRR()
Dim RANGEX2 As Range
Sheets("Trabajadores").Select
Set RANGEX2 = Union(Range("H$5:$M$10"), Range("$I$15:$M$20"))
RANGEX2.Select
'u otras acciones a practicar
End Sub
Ten en cuenta que algunas funciones de MS Excel no son ejecutables en rangos discontinuos. (Ejemplo: Sort)
Pero esta función te debería servir.
Un gran abrazo!
Fernando
El problema es que el rango lo obtengo de un Refedit, entonces no sé a priori si es H5:M10.
Estuve investigando y el problema es el ";" que separa los rangos. Pueden haber varios ";", para varios rangos.
La pregunta es como cambio en una variable el string ";" por ",".
¿Con el método Replace?
¿Cómo será la instrucción?
Gracias.
Además quiero que una macro no se vea desde (alt F8), entonces le coloque private, pero necesito ejecutarla después de unload el userform, es decir después del click que está en el código del userfom y no el modulo de la otra macro...
¿Cómo lo hago?
Cambié el procedimiento por una función y obtuve lo requerido pero me gustaría saber la forma correcta de hacerlo.
Gracias de nuevo.
OK, supongamos que cargas los rangos en la variable range1, luego usas una función de hoja (SUSTITUIR) para reemplazar todas las apariciones de ";". Hay un control de existencia del separador de forma tal que si fuera un rango único no haga reeemplazpo alguno:
Range1 = "Trabajadores!$H$5:$M$10;Trabajadores!$I$15:$M$20"
If InStr(1, Range1, ";") <> 0 Then
Range2 = Application.WorksheetFunction.Substitute(Range1, ";", ",")
Else
Range2 = Range1
End If
---
No termino de entender tu segunda pregunta...
¿Por qué no anidas la función dentro del comando del botón? De esta manera no estará disponible desde el panel de macros...
Bueno, maicolpue, espero haberte ayudado una vez más.
Abrazos!
Fer

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas