Valores en distintas celdas

Hola igordillo
Me gustaría me pudieras ayudar con lo siguiente:
En excel tengo lo siguiente una forma con un botón y un cuadro de texto donde dígito un
Valor
EScribo el valor en el cuadro de texto y al pulsar el botón este se debe escribir en la
Celda A1
Al escribir otro valor y al pulsar el botón se debe escribir en la celda A2
y así sucesivamente.
Pero si se repite un valor de las que ya he escrito debe sacarme un mensaje
diciendo que este valor ya esta digitado.
Espero me puedas ayudar. >> GRACIAS <<
2

2 respuestas

Respuesta
1
Gaub: Solucioné en parte tu pregunta ya que no utilizo TextBox sino la celda B2 para meter los datos y luego click en el Botón.
Primero:
Definir el siguiente rango: DatosIngresados que se refiere a: =DESREF(Hoja1!$A$1,0,0,CONTARA(Hoja1!$A:$A)+1,1)
Segundo:
En un módulo, escribir la siguiente macro:
Sub IngresarDatos()
Dim AllCells As Range, Cell As Range
Set AllCells = ActiveSheet.Range("DatosIngresados")
On Error Resume Next
Range("A1").Select
For Each Cell In AllCells
If Cell.Value <> "" Then
ActiveCell.Offset(1, 0).Range("A1").Select
If WorksheetFunction.CountA(AllCells) = 0 Then
ActiveCell.Offset(1, 0).Cell.Select
End If
If ActiveCell.Value = Range("B1").Value Then
MsgBox "Dato ya esta ingresado"
Range("B1").Select
Exit Sub
End If
End If
Next Cell
ActiveCell.Value = Range("B1").Value
Range("B1").Select
Range("B1").Value = ""
End Sub
Tercero:
Dibujar un control Botón de la barra de herramientas Formularios y asignarle la macro.
Eso es todo. Pruébalo y si tienes dudas, preguntas nomas.
Respuesta
1
Debe haber varias formas de resolverlo. Esta es una que, adaptada a tu formulario, debería serte útil. Yo la probé y funciona:
Private Sub CommandButton1_Click()
Dim Range2luk As Range
LastCell = Application.WorksheetFunction.Count(Range(Cells(1, 1), Cells(500, 1)))
Set Range2luk = Range(Cells(1, 1), Cells(LastCell, 1))
ValueIN = Val(TextBox1)
If Range2luk.Find(ValueIN) Is Nothing Then
ActiveSheet.Cells(LastCell + 1, 1).FormulaR1C1 = ValueIN
LastCell = LastCell + 1
Set Range2luk = Range(Cells(1, 1), Cells(LastCell, 1))
Else
MsgBox Str(ValueIN) & " es un valor YA INGRESADO", vbInformation, ">>>ESE YA ESTA.."
End If
TextBox1 = ""
Load UserForm1
TextBox1.SetFocus
End Sub
Pruébalo tu y coméntame.
Si funciona, ya sabes qué hacer... ;)
Que tengas un gran fin de semana!
Fernando
Pd. Disculpa la demora pero estoy medio tapado de trabajo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas