Entrada de datos únicos

01/06/2010 - 20:38 por ElProfe | Informe spam
Saludos a todos en el foro.

Hace algún tiempo Héctor Miguel publicó la siguiente nota:

<Desde un formulario... se cargan datos... existe un textbox... el
usuario debe cargar un codigo (algo asi como un ID)... que me impida
cargar un codigo ya existente>

"puedes usar desde codigo la funcion de hoja de calculo contar.si(...)
para comprobar si ya existe el codigo que se intenta agregar [p.e.]"

If Application.WorksheetFunction.CountIf(<hoja y rango>, <cuadro de
texto>) Then
MsgBox "El codigo ya existe, favor de intentar de nuevo..."
<cuadro de texto>.SetFocus
Exit Sub
End If

Pues bien, seguí los pasos sugeridos alli y me quedó el siguiente
código:

If Application.WorksheetFunction.CountIf
(Worksheets("Hoja1").Range("_Id")) ,TextBox1 Then
    MsgBox "El codigo ya existe, favor de intentar de nuevo..."
    TextBox1.SetFocus
End Sub
  End If

...pero no me funciona (todo el texto queda resaltado en rojo porque o
lo reconoce el editor VBA).

-El rango de datos están e B20:B30 y lo he nombrado "_Id"
-He creado un TextBox que lo llamé "TextBox1"
-La idea es la misma del planteamiento original; que no permita
repetir datos.

Muy seguramente me falta mas código [ej.] El "Sub" del inicio y otras
cosas mas.

Por favor, ¿alguién podría indicarme que está mal?

Gracias anticipadas,

Saludos,

ElProfe

Preguntas similare

Leer las respuestas

#1 AnSanVal
01/06/2010 - 22:57 | Informe spam
Hola.

Has cambiado de sitio el paréntesis de cierre. Prueba con:
If Application.WorksheetFunction.CountIf _
(Worksheets("Hoja1").Range("_Id") ,TextBox1.value) Then

Saludos: Antonio.
*************************
"ElProfe" escribió en el mensaje
news:
Saludos a todos en el foro.

Hace algún tiempo Héctor Miguel publicó la siguiente nota:

<Desde un formulario... se cargan datos... existe un textbox... el
usuario debe cargar un codigo (algo asi como un ID)... que me impida
cargar un codigo ya existente>

"puedes usar desde codigo la funcion de hoja de calculo contar.si(...)
para comprobar si ya existe el codigo que se intenta agregar [p.e.]"

If Application.WorksheetFunction.CountIf(<hoja y rango>, <cuadro de
texto>) Then
MsgBox "El codigo ya existe, favor de intentar de nuevo..."
<cuadro de texto>.SetFocus
Exit Sub
End If

Pues bien, seguí los pasos sugeridos alli y me quedó el siguiente
código:

If Application.WorksheetFunction.CountIf
(Worksheets("Hoja1").Range("_Id")) ,TextBox1 Then
MsgBox "El codigo ya existe, favor de intentar de nuevo..."
TextBox1.SetFocus
End Sub
End If

...pero no me funciona (todo el texto queda resaltado en rojo porque o
lo reconoce el editor VBA).

-El rango de datos están e B20:B30 y lo he nombrado "_Id"
-He creado un TextBox que lo llamé "TextBox1"
-La idea es la misma del planteamiento original; que no permita
repetir datos.

Muy seguramente me falta mas código [ej.] El "Sub" del inicio y otras
cosas mas.

Por favor, ¿alguién podría indicarme que está mal?

Gracias anticipadas,

Saludos,

ElProfe
Respuesta Responder a este mensaje
#2 ElProfe
03/06/2010 - 20:37 | Informe spam
Hola Antonio:

Gracias por tu respuesta.

En efecto el parentesis de la derecha estaba en el lugar equivocado.
Hecha la corrección y coloco el código en diferentes modulos (normal,
en el libro y en la hoja) y aunque no fue rechasado, sigue sin
funcionar en las pruebas con numeros iguales a los de la lista; es
decir no hace la advertencia incluida en el MsgBox

Gracias por tu ayuda y quedo pendiente de tu recomendación.

Saludos,

ElProfe
Respuesta Responder a este mensaje
#3 AnSanVal
04/06/2010 - 09:59 | Informe spam
Suponiendo que TextBox1, está en un formulario, que además contiene un botón
de comando, en el código del bóton:


Private Sub CommandButton1_Click()

If Application.WorksheetFunction.CountIf _

(Worksheets("Hoja1").Range("_Id"), TextBox1) Then

MsgBox "El codigo ya existe, favor de intentar de nuevo..."

TextBox1.SetFocus

Else

' aquí lo que quieras hacer, si el código no existe.

End If

End Sub




Saludos: Antonio.

************************



"ElProfe" escribió en el mensaje
news:
Hola Antonio:

Gracias por tu respuesta.

En efecto el parentesis de la derecha estaba en el lugar equivocado.
Hecha la corrección y coloco el código en diferentes modulos (normal,
en el libro y en la hoja) y aunque no fue rechasado, sigue sin
funcionar en las pruebas con numeros iguales a los de la lista; es
decir no hace la advertencia incluida en el MsgBox

Gracias por tu ayuda y quedo pendiente de tu recomendación.

Saludos,

ElProfe
Respuesta Responder a este mensaje
#4 ElProfe
04/06/2010 - 23:28 | Informe spam
Antonio:

Listo; gracias por la aclaración y por tu ayuda.

Funciona muy bien.

Saludos.

ElProfe
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida