Variables vacías

23/11/2005 - 13:34 por pasarin | Informe spam
Hola de nuevo,

Tengo una macro con unas variables declaradas a nivel modulo. La macro
muestra un formulario, el formulario asigna valores a las variables y con
esos valores la macro continuaría haciendo sus cosas. Hay un misterio que no
consigo entender.
Cuando ejecuto con un punto de interrupción la macro, veo que en las lineas
de codigo del formulario las variables han adquirido un valor, sin embargo
al volver con esos valores a la macro, esta se me interrumpe por que las
variables tienen valor "". ¿sabeis que estoy haciendo mal??

MENUGRAL (el formulario)
Private Sub CommandButton1_Click()
fichero = TextBox1.Text
If CBE Or ICO Or ETE Then
decimales = "."
thousand = ","
End If
decimales = ","
thousand = "."
If AL1 Then Call ALORDENADOCONS
End Sub
_____________________
Dim fichero, decimales, thousand As String
Sub ALORDENADOCONS()
MENUGRAL.Hide
ChDir "C:\Documents and Settings\Luis Menendez\Escritorio"
Workbooks.OpenText Filename:= _
"C:\Documents and Settings\Luis Menendez\Escritorio\" & fichero,
Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True,
Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1,
9), _
... DecimalSeparator:="" & decimales & "", ThousandsSeparator:="" &
thousand & "", TrailingMinusNumbers:= _
True
 

Leer las respuestas

#1 Héctor Miguel
23/11/2005 - 20:25 | Informe spam
hola, pasarin !

... macro con... variables declaradas a nivel modulo... muestra un formulario
... el formulario asigna valores a las variables y... la macro continuaria haciendo sus cosas
... un misterio que no consigo entender... con un punto de interrupcion la macro
... en las lineas de codigo del formulario las variables han adquirido un valor
... al volver con esos valores a la macro, esta se me interrumpe por que las variables tienen valor ""... que estoy haciendo mal?



1) las variables declaradas 'a nivel de modulo'... son 'utilizables' SOLO en los procedimientos de 'ese' modulo
2) los valores que asignas ->a otras variables<- en el modulo de codigo del formulario... NO son 'las mismas' :-((
3) si necesitas usar variables en varios modulos ->del mismo libro<-...
-> inicia la declaracion de las variables con la palabra clave 'Public' ->en el area de variables de un modulo 'normal'<-

-> dicho sea 'de paso'... de las variables que declaras, SOLO la ultima es de tipo 'String' las otras son de tipo 'Variant' [por omision] :-(
cambia la forma en que declaras las variables ->en el modulo de codigo 'normal'<-
de -> Dim fichero, decimales, thousand As String
a -> Public fichero As String, decimales As String, thousand As String ;)

-> tambien, una forma 'rapida' de obtener los separadores que usa la aplicacion es por la propiedad Application.International [p.e.]
usa instrucciones como... [una vez que declaraste las variables como publicas al inicio de un modulo de codigo 'normal']
decimales = Application.International(xlDecimalSeparator)
thousand = Application.International(xlThousandsSeparator)
-> las podrias dejar 'fijas' si [p.e.] las 'llenas' desde el evento '_open' del libro ;)

saludos,
hector.

Preguntas similares