hola a todos,
me esta ocurriendo una cosa cuanto menos curiosa:
tengo declaradas estas variables publicas:
Public rDatos As String, rTitulos As String, cFinF As String, _
cFinC As String, cFinR As String, csFiltro As String, _
rCriterios As String, rResultado As String, refResultado As String
que inicializo de esta manera:
Public Sub IniciaRefs()
rDatos = Ltr_Col(C_INI) & F_TIT & ":" & Ltr_Col(C_INI + N_CAMPOS - 1) & _
Worksheets(LISTA).Cells(65536, C_INI).End(xlUp).Row
rTitulos = Ltr_Col(C_INI) & F_TIT & ":" & Ltr_Col(C_INI + N_CAMPOS - 1) &
F_TIT
cFinF = Ltr_Col(N_CAMPOS)
cFinC = Ltr_Col(N_CAMPOS + 85)
cFinR = Ltr_Col(N_CAMPOS + 170)
csFiltro = "a:" & cFinF
rCriterios = "ch1:" & cFinC
rResultado = "fo1:" & cFinR
End Sub
donde las constantes (en mayusculas) son valores numericos validos y la
funcion 'Ltr_Col', que devuelve las letras segun el nº pasado, es la
siguiente:
''*********funcion de Vinchenzo Vinc ***************************************
'
Public Function Ltr_Col(ByVal nroCol As Long) As String
If nroCol < 27 Then _
Ltr_Col = Chr$(64 + nroCol) Else _
Ltr_Col = Chr$(64 + (nroCol \ 26) + CInt(nroCol Mod 26 = 0)) & _
Chr$(64 + IIf(nroCol Mod 26 = 0, 26, nroCol Mod 26))
End Function
y ahora viene lo 'curioso' y que no consigo explicarme a que se debe: en una
de mis pruebas inicializo las variables en el 'Initialice' de un formulario
y las muestro en un MsgBox, de esta forma:
Private Sub UserForm_Initialize()
Dim testMsj As String IniciaRefs
testMsj = "IniciaRefs:" & vbCr & vbCr & _
"rDatos = " & rDatos & vbCr & _
"rTitulos = " & rTitulos & vbCr & _
"cFinF = " & cFinF & vbCr & _
"cFinC = " & cFinC & vbCr & _
"cFinR = " & cFinR & vbCr & _
"csFiltro = " & csFiltro & vbCr & _
"rCriterios = " & rCriterios & vbCr & _
"rResultado = " & rResultado & vbCr
MsgBox testMsj
End Sub
. El misterio (para mi) es que todas las variables se reflejan perfectamente
en el Msgbox excepto 'cFinF', 'cFinC' y 'cFinR', que aparecen en blanco,
como si no se hubieran inicializado, pero sin embargo 'csFiltro',
rCriterios' y 'rResultado', que toman su valor de concatenar una cadena fija
con cada una de las anteriores (cFinF, cFinC y cFinR) si aparecen
perfectamente. Esto es lo que aparece:
IniciaRefs:
rDatos = A1:F6559
rTitulos = A1:F1
cFinF cFinC cFinR csFiltro = A:F
rCriterios = CH1:CM
rResultado = FO1:FT
en fin, que el tema me tiene sobre todo alucinado, pues no le veo el sentido
(he pensado que quizas exista algun tipo de 'incompatibilidad' en nombres
pero sigo sin verlo), aunque realmente parece que si toman el valor con lo
que me serian validas, pero si podeis explicarme el motivo os lo agradezco
un saludo y hasta pronto
Ivan
Leer las respuestas