Ejemplo:
Por teclado se introduce 20.50 OK?, pues yo quiero que ese 20.50 sea tratado como 20,50 para que las operaciones numéricas que voy a realizar me salgan correctamente.
Gracias.

| ||||
S-Virus: Utiliza la función replace...
Código:
O, si como entiendo, en algún campo de texto quieres reemplazar en el momento en que se teclea, sobreescribe el valor KeyAscii correspondiente al punto por el que corresponde a la coma en el evento KeyPress. Replace(expression, find, replacewith[, start[, count[, compare]]]) |
| |||
Cita: De nada
Iniciado por S-Virus Gracias a ambos, al final usé el ejemplo de MaxExtreme, más que nada porque era lo que yo había estado intentando, pero en el evento equivocado :D. Un saluduo amigos. ![]() ![]() |
| |||
Respuesta: Sustituir punto por coma o viceversa Eso esta bien para un textbox, pero si tienes muchos, tienes que hacerlos uno por uno repitiendo el codigo o como se hace. En concreto yo tengo 42 textbox que se llaman TextBox1, TextBox2,... asi hasta el TextBox42. Como podria hacerlo para que valiera un solo codigo para todos los textox. Gracias y Salu2 |
| |||
Respuesta: Sustituir punto por coma o viceversa Cita: Bueno, el tema es de hace casi cuatro años.
Iniciado por albersil ![]() Eso esta bien para un textbox, pero si tienes muchos, tienes que hacerlos uno por uno repitiendo el codigo o como se hace. En concreto yo tengo 42 textbox que se llaman TextBox1, TextBox2,... asi hasta el TextBox42. Como podria hacerlo para que valiera un solo codigo para todos los textox. Gracias y Salu2 Poner en un mismo formulario 42 controles del mismo tipo e independientes, me parece una programación mal estructurada. Si los TextBox los pones en un array, solamente tienes que poner este código:
Código:
Suponiendo que en los TextBox que quieres controlar la tecla, sean el Text1(1), Text1(34) y Text1(42). Si fuera en todos, le quitas el Select Case.Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer) Select Case Index Case 1, 34, 42 If KeyAscii = Asc(".") Then KeyAscii = Asc(",") End Select End Sub En el caso de que no estén en un array de controles, sí tienes que poner el mismo código para cada uno de los TextBox. ![]() |
| |||
Respuesta: Sustituir punto por coma o viceversa Cita: Gracias por la respuesta y perdona por mi ignorancia en programación, pero es que mi nivel es muy inferior y solo sabía hacerlo así. He leido un montón y no he encontrado ningún sitio donde digan cómo se hace un array de controles con VBA para EXCEL, es más, en algunos sitios dicen que no es posible, así que estoy en un callejón sin salida. Si tú sabes cómo hacerlo, te lo agradecería un montón. Salu2.
Iniciado por Avellaneda ![]() Bueno, el tema es de hace casi cuatro años. Poner en un mismo formulario 42 controles del mismo tipo e independientes, me parece una programación mal estructurada. Si los TextBox los pones en un array, solamente tienes que poner este código:
Código:
Suponiendo que en los TextBox que quieres controlar la tecla, sean el Text1(1), Text1(34) y Text1(42). Si fuera en todos, le quitas el Select Case.Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer) Select Case Index Case 1, 34, 42 If KeyAscii = Asc(".") Then KeyAscii = Asc(",") End Select End Sub En el caso de que no estén en un array de controles, sí tienes que poner el mismo código para cada uno de los TextBox. ![]() |
| |||
Respuesta: Sustituir punto por coma o viceversa Cita: Bueno, aquí no se habló para nada que fuera en VBA. De hecho si ejecutas el código que te pusieron antes (aunque solamente sea en un TextBox) dará error de compilación.
Iniciado por albersil ![]() Gracias por la respuesta y perdona por mi ignorancia en programación, pero es que mi nivel es muy inferior y solo sabía hacerlo así. He leido un montón y no he encontrado ningún sitio donde digan cómo se hace un array de controles con VBA para EXCEL, es más, en algunos sitios dicen que no es posible, así que estoy en un callejón sin salida. Si tú sabes cómo hacerlo, te lo agradecería un montón. Salu2. En vb6 se puede hacer generando un evento con una variable WithEvents en un módulo de clase, pero en un UserForm de VBA no admite la palabra clave. ![]() |
| |||
Respuesta: Sustituir punto por coma o viceversa Cita: Gracias por haberte molestado tanto y perdón nuevamente por no haberme expresado bien antes. El tema es que lo necesito para un UserForm de VBA para EXCEL y si no se puede hacer, tendré que conformarme con programar uno por uno todos los controles TextBox. Me he estado documentando sobre los arrays de controles en VB y es una pena que VBA no permita hacerlos, porque sería bastante fácil siguiendo tus indicaciones de más arriba. Repito Gracias y Salu2.
Iniciado por Avellaneda ![]() Bueno, aquí no se habló para nada que fuera en VBA. De hecho si ejecutas el código que te pusieron antes (aunque solamente sea en un TextBox) dará error de compilación. En vb6 se puede hacer generando un evento con una variable WithEvents en un módulo de clase, pero en un UserForm de VBA no admite la palabra clave. ![]() |