Hola amig@s:
Uso el siguiente código que lo adecue con la ayuda de tod@s ustedes :
Private Sub CommandButton1_Click(): On Error GoTo HayErrores 'registrodeboleto
If Len(Trim(TextBox1)) = 0 Or _
Len(Trim(ComboBox1)) = 0 Then
GoTo HayErrores ' sale de la sub rutina antes de guardar
End If
x = Hoja3.Range("A" & Rows.Count).End(xlUp).Row + 1
Hoja3.Cells(x, 1).Value = CDbl(Label29) 'nº
Hoja3.Cells(x, 2).Value = CDate(TextBox1.Text) 'fecha
Hoja3.Cells(x, 3).Value = ComboBox1.Text 'fp
Hoja3.Cells(x, 4).Value = ComboBox3.Text 'cclt
Hoja3.Cells(x, 5).Value = ComboBox2.Text 'cte1
Hoja3.Cells(x, 6).Value = TextBox19.Text ' clt2
Hoja3.Cells(x, 7).Value = ComboBox4.Text 'recibo
Hoja3.Cells(x, 8).Value = CDbl(TextBox10.Text) 'Bs
Hoja3.Cells(x, 9).Value = CDbl(TextBox20.Text) 'Usd
Hoja3.Cells(x, 10).Value = TextBox21.Text 'obs
Hoja3.Cells(x, 11).Value = TextBox18.Text 'tc
ComboBox1.SetFocus
Exit Sub
HayErrores: MsgBox "Revisar FECHA , FORMA DE PAGO y TIPO DE CAMBIO por favor.." Exit Sub
Mi consulta es como evitar que se registre 2 veces el mismo recibo en la hoja seleccionada?
Hoja3.Cells(x, 7).Value = ComboBox4.Text 'recibo
Gracias
Jesús
Excel acepta cualquier valor, no es como una base de datos que puede impedir la introducción de datos duplicados en un campo.
Así que tendrás que realizar una comprobación en tu columna 7 para ver si ya existe un recibo igual
se me ocurre realizar un bucle justo después de calcular el valor de tu X y antes de empezar a poner los valores en la hoja, algo así:
...
x = Hoja3.Range("A" & Rows.Count).End(xlUp).Row + 1
'inicio comprobación duplicado
For contador = 1 To x
If Hoja3.Cells(contador, 7).Value = ComboBox4.Text Then
MsgBox "Recibo repetido. Proceso cancelado"
Exit Sub
End If
Next
'fin comprobación duplicado
Hoja3.Cells(x, 1).Value = CDbl(Label29) 'nº
...
------
Ya sé Excel, pero necesito más.
Estimado Pacomegia
Me sale el siguiente mensaje: " Error de compilación: Se esperaba Funcion o una variable " y me muestra le texto resaltado contador , exactamente en
For contador = 1 to x
Espero tú ayuda
Gracias
Jesús
Jesus Martinez Plantarosa
a lo mejor se utiliza ese nombre contador en otra parte del código.
Declara la variable dentro del procedimiento.
escribe la siguiente línea delante del bucle
Dim contador As Integer
------
Ya sé Excel, pero necesito más.