Home > Foro de Excel >

Debates de Excel > Codigo que permita anular un registro desde un userform

Grupo de Excel
Foro de Excel
18157 Debates | 2013 Documentos | 1 Vídeo | 1 Test | 1 Blog | 675 Imágenes | 16734 Miembros

Codigo que permita anular un registro desde un userform

Escrito por Jairo Alonso Contreras el 22 de Octubre | Nivel Medio

Abraham

buenos dias

Le Agradeszco si me puede ayudar con este codigo

Como pruedo hacer para que un userform por medio de un CommandButton busque un numero (que yo pogo en un textbox) lo busque en la columna (A) llamada (No de registro) y ponga en la columna (D) llamada (Anuladas) la palabra "Anulada " tantas veces como registros encuentre con el mismo numero en la columna (A) , Teniendo en cuenta que en la columna (No de registro) pueden existir mas de un registro con el mismo numero.

¿Que codigo podria usar?

Este seria un ejemplo con la estructura que tendria:

No REGISTRO TIPO DE GERISTRO VALOR ANULADA
1 PRESUPUESTO 5273 ANULADA
1 ADICIONAL 5800 ANULADA
1 VARIABLES 327982 ANULADA
2 PRESUPUESTO 289937
2 ADICIONAL 28994
2 VARIABLES 31893

Muchas gracias por la atencion prestada

Att:

Jairo Contreras


Ver mensaje      

Jairo Alonso Contreras
Bogotá, Colombia
Escrito por Jairo Alonso Contreras el 22 de Octubre | Nivel Medio

Gracias


Ver mensaje     

Enrique
Escrito por Enrique el 22 de Octubre | Nivel Medio

Hola Jairo, en la ayuda de Excel viene el siguiente ejemplo usando FindNext, sólo le modifiqué unas cuantas palabra para que te sirva:

Private Sub CommandButton1_Click()
With Worksheets(1). Range("a1:a500")
Set c =. Find(TextBox1, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c. Address
Do
c. Offset(0, 3). Value = "ANULADA"
Set c =. FindNext(c)
Loop While Not c Is Nothing And c. Address <> firstAddress
End If
End With
End Sub

Saludos,,,

No olvides cambiar la hoja si no coincide con esto>>> Worksheet(1)


Ver mensaje     

Jairo Alonso Contreras
Bogotá, Colombia
Escrito por Jairo Alonso Contreras el 22 de Octubre | Nivel Medio

Enrique R

buena tarde

Muchas gracias por tu respuesta pero..


Cuando intento ejecutar el codigo me aparece un (Error de copilacion) en la secuencia

Set c =. Find(TextBox1, LookIn:=xlValues)

Y pone en amarillo la letra c=

Reitero, muchas gracias por tu respuesta

Att:

Jairo A


Ver mensaje     

Enrique
Escrito por Enrique el 22 de Octubre | Nivel Medio

Ok, seguramente el problema está en TextBox1, así le puse a manera general al TexBox donde escribes el dato que es el que se busca en la columna A, obviamente tu debes cambiarlo por el que tengas, no sé como se llame tu TextBox pero ahí debes colocar su nombre.

saludos,,


Ver mensaje     

Jairo Alonso Contreras
Bogotá, Colombia
Escrito por Jairo Alonso Contreras el 22 de Octubre | Nivel Medio

Monte de nuevo un archivo con parametros basicos para ejecutar el codigo en donde solo tengo un TextBox con el nombre de (TextBox1)y un CommandButton con el nombre (CommandButton1) con el fin de probar el codigo y no.. No me funciona, el queda en el codigo

Set c =. Find(TextBox1, LookIn:=xlValues)

Y pone de nuevo en amarillo la letra c=

no se que pueda hacer

tengo el archivo guardado y queria adjuntarlo para que lo pudieras ver.. Pero no encuentro la opcion.

Reitero, muchas gracias por tu respuesta

Att;

Jairo A


Ver mensaje     

Jairo Alonso Contreras
Bogotá, Colombia
Escrito por Jairo Alonso Contreras el 22 de Octubre | Nivel Medio

Http://cid-338d6b5f1335eba3.skydrive.live. Com/browse. Aspx/. Public? Uc=1&lc=22538

Envio ubicacion del archivo de Ejemplo para que lo mires y me cuentes que podria tener mal

gracias

Att:


Jairo A


Ver mensaje     

Enrique
Escrito por Enrique el 22 de Octubre | Nivel Medio

El problema es que tienes Option Explicit y no tienes dimensionada la variable c

Dim c as range

saludos,,,


Ver mensaje     

Jairo Alonso Contreras
Bogotá, Colombia
Escrito por Jairo Alonso Contreras el 22 de Octubre | Nivel Medio

Disculpa

No he podido entender la ultima respuesta, ya jugue con el codigo y no e podido ejecutarlo

gracias


Ver mensaje     

Enrique
Escrito por Enrique el 22 de Octubre | Nivel Medio

Option explicit
Private Sub CommandButton1_Click()
Dim c as range
With Worksheets(1). Range("a1:a500")
Set c =. Find(TextBox1, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c. Address
Do
c. Offset(0, 3). Value = "ANULADA"
Set c =. FindNext(c)
Loop While Not c Is Nothing And c. Address <> firstAddress
End If
End With
End Sub


Ver mensaje     

Jairo Alonso Contreras
Bogotá, Colombia
Escrito por Jairo Alonso Contreras el 22 de Octubre | Nivel Medio

Muchas gracias Enrique y que pena las molestias

el codigo es justo lo que necesito

muchas gracias


Ver mensaje     
 
Páginas internacionales: España  |  Italia  |  Francia  |  México  |  Alemania  |  Reino Unido  |  Argentina  |  Chile  |  Colombia  |  USA

Búsquedas frecuentes: como hacer inventario bilirrubina indirecta como incluir videos de youtube en tu swf de flash juegos de psicomotricidad tiene cura la leucemia

Emagister cumple la Ley Orgánica 15/1999 de 13 de diciembre, de Protección de datos de Carácter Personal, y posee el código de inscripción nº 2002010053 del Registro General de la Agencia de Protección de Datos. Copyright © 1999/2000 - Grupo Intercom - Todos los derechos