MACRO PARA HACER CAMBIOS DE STATUS EN TABLA

28/10/2003 - 03:10 por Ing. Héctor Montero S. | Informe spam
Hola.
Quisiera me puedan orientar sobre el desarrollo de una macro que ejecute lo
siguiente:
Tengo una base da datos configurada de la siguiente forma, CON MÁS DE 3000
REGISTROS.
A B C D
orden status horas centrotrabajo
3456 pendiente 20 corte
3456 pendiente 15 soldadura
3456 pendiente 10 ensamble
3475 pendiente 5 soldadura
3475 pendiente 8 corte

Necesito desarrollar una macro que me pregunte "digite la orden de
producción", de forma que yo solamente digite el número de orden y que
automáticamente en el campo que aparece el STATUS, todos los espacios
cambien por la palabra CERRADA de la orden ya digitada.
Les agradezco toda la ayuda que me puedan facilitar

HMS
 

Leer las respuestas

#1 Héctor Miguel
28/10/2003 - 04:57 | Informe spam
Hola, 'tocayo' :)

... macro ... pregunte "digite la orden ... y que ... en el campo ... STATUS ... la palabra CERRADA [...]



prueba con la siguiente rutina [no estoy seguro si los numeros de orden son -solamente- 'valores']
'le puse' una 'salida' [Exit For] para NO 'tener que' recorrer todo el rango de registros.
la 'puedes correr' SIN 'necesidad' de tener 'activa' la hoja 'en cuestion'
supongo que la hoja se llama 'Hoja1' y el rango de registros [col 'a'] 'inicia' en 'a2' hasta ???
=Sub Cerrar_Orden()
Dim Orden, Rango As String, Registros As Integer, Celda As Range, Cerrada As Integer
Orden = Trim(InputBox("Digite el número de orden de producción", "Cerrar orden"))
If Orden = "" Then Exit Sub
If Not IsNumeric(Orden) Then Exit Sub Else Orden = Val(Orden)
With Worksheets("Hoja1")
Rango = Range(.Range("a2"), .Range("a65536").End(xlUp)).Address
Registros = Application.CountIf(.Range(Rango), Orden)
If Not Registros > 0 Then Exit Sub
For Each Celda In .Range(Rango)
If Celda = Orden Then
Celda.Offset(, 1) = "CERRADA"
Cerrada = Cerrada + 1
If Cerrada = Registros Then Exit For
End If
Next
End With
End Sub

Saludos,
Héctor.

Preguntas similares