Para Solar: Re:No permitir 2 comas en la misma celda

05/04/2006 - 00:19 por klomkbock | Informe spam
Hola Solar.

Esta respuesta la tenia preparada hace tiempo pero no he podido mandartela
antes, por eso te la mando en un nuevo tema. Espero que te sea util.

En la hoja en que vayas a introducir los datos, haces clik en la pestaña
de la hoja y en ver codigo. En este modulo (el de la hoja) copias o pegas
el codigo que te pongo al final. Lo que hace es avisarte con un mensaje
que has introducido dos comas y deja la celda seleccionada para que lo
corrijas. Esta hecho para que los datos a tener en cuenta esten en la
columna 1 ("A"), pero si te interesa que sea otra cambia el nº de columna
en "If Target.Column = 1 Then", e incluso si te interesa que te controle
los datos introducidos en varias columnas podrias poner algo asi como: "If
Target.Column = 1 or Target.Column = 2 or Target.Column = 3 Then" . En
este caso te controlaria las comas introducidas en las columnas 1, 2 y 3
("A", "B" y "C").

Espero que te sea de utilidad.
Con las dudas hablamos.
Un saludo y hasta pronto.
Ivan

Private Sub Worksheet_Change(ByVal Target As Range)
' Codigo para avisar si se introducen dos comas
' decimales en la misma celda
Dim i As Integer, j As Integer
' en este caso los datos con las comas se
' introducen en la columna 1, puedes modificarlo
If Target.Column = 1 Then
For i = 1 To Len(Target)
If Mid(CStr(Target), i, 1) = "," Then
For j = i + 1 To Len(Target)
If Mid(CStr(Target), j, 1) = "," Then
MsgBox ("Has introducido dos comas, corrigelo.")
' deja seleccionada la celda del error
Target.Select
Exit Sub
End If
Next j
End If
Next i
End If
End Sub
 

Leer las respuestas

#1 klomkbock
05/04/2006 - 02:01 | Informe spam
Hola de nuevo Solar:

Cambia el codigo anterior por este, que incorpora un tratamiento de
errores. Te dara menos problemas. Este ejemplo esta hecho para introducir
datos en las columnas 1 y 2 ("A" y "B").

Disculpa los errores.
Un saludo y hasta pronto.
Ivan

Private Sub Worksheet_Change(ByVal Target As Range)
' Codigo para avisar si se introducen dos comas
' decimales en la misma celda
Dim i As Integer, j As Integer
' en este caso los datos con las comas se
' introducen en las columna 1 y 2, puedes modificarlo
If Target.Column = 1 Or Target.Column = 2 Then
On Error GoTo Salir
For i = 1 To Len(Target)
If Mid(CStr(Target), i, 1) = "," Then
For j = i + 1 To Len(Target)
If Mid(CStr(Target), j, 1) = "," Then
MsgBox ("Has introducido dos comas, corrigelo.")
' deja seleccionada la celda del error
Target.Select
Exit Sub
End If
Next j
End If
Next i
End If
Salir:
Exit Sub
Resume
End Sub

Preguntas similares