Formulario Modificar VBA
Publicado por Gastón (1 intervención) el 07/01/2019 21:44:12
Buenas Tardes. Soy nuevo en el tema y bastante aficionado. Les cuento un poco mi inquietud. Estoy armando una planilla de Excel para un Inventario comercial, donde he creado Formulario para Alta, Baja, Búsqueda y Modificación de registros, pero hace 2 semanas que estoy estancado en el Formulario que he creado para Modificar los registros. En mi Hoja2 (Inventario) es donde se registran los datos, Alta, Baja y Búsqueda, no tengo problemas pero en el de Modificar solo me permite realizar esta acción en las primeras 5 columnas de la Hoja, pero tengo 18 columnas que quisiera editarlas con el formulario. Necesitaría me ayuden a encontrar el error. Adjunto el código VBA que estoy utilizando y una imagen del formato de la hoja. Cualquier dato que necesiten adicional, no hay problema de darlo. Todavia no me permite agregar archivos para adjuntar la Hoja de cálculo.
Saludos Cordiales...
Saludos Cordiales...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Private Sub box_Código_Change()
Dim Fila As Integer
Dim Final As Integer
Dim Inventario As Sheets
If box_Código.Value = "" Then 'Limpiar campos
Me.txt_Artículo.Text = ""
Me.box_Código = ""
Me.txt_Descripción.Text = ""
Me.txt_Marca.Text = ""
Me.box_Rubro = ""
Me.txt_Valor_de_lista.Text = ""
Me.box_Promo = ""
Me.box_Tipo = ""
Me.box_Estado = ""
Me.txt_Valor_Compra.Text = ""
Me.txt_Imágen.Text = ""
Me.txt_Fecha_Alta.Text = ""
End If
For Fila = 2 To 2001
If Hoja2.Cells(Fila, 1) = "" Then
Final = Final - 1
Exit For
End If
Next
For Fila = 2 To 2001
If box_Código = Hoja2.Cells(Fila, 2) Then
Me.txt_Artículo = Hoja2.Cells(Fila, 1)
Me.txt_Descripción = Hoja2.Cells(Fila, 3)
Me.txt_Marca = Hoja2.Cells(Fila, 4)
Me.txt_Valor_de_lista = Hoja2.Cells(Fila, 6)
Me.txt_Valor_Compra = Hoja2.Cells(Fila, 18)
Me.txt_Imágen = Hoja2.Cells(Fila, 10)
Me.txt_Fecha_Alta = Hoja2.Cells(Fila, 12)
Me.box_Rubro = Hoja2.Cells(Fila, 5)
Me.box_Tipo = Hoja2.Cells(Fila, 8)
Me.box_Estado = Hoja2.Cells(Fila, 9)
Me.box_Promo = Hoja2.Cells(Fila, 17)
Exit For
End If
Next
End Sub
Private Sub btn_Modificar_Click()
Dim Fila As Integer
Dim Final As Integer
Dim Inventario As Sheets
For Fila = 2 To 2001
If Hoja2.Cells(Fila, 1) = "" Then
Final = Final - 1
Exit For
End If
Next
For Fila = 2 To 2001
If Me.box_Código = Hoja2.Cells(Fila, 2) Then
Hoja2.Cells(Fila, 1) = Me.txt_Artículo.Value
Hoja2.Cells(Fila, 3) = Me.txt_Descripción.Value
Hoja2.Cells(Fila, 4) = Me.txt_Marca.Value
Hoja2.Cells(Fila, 5) = Me.box_Rubro.Value
Hoja2.Cells(Fila, 6) = Me.txt_Valor_de_lista.Value
Hoja2.Cells(Fila, 8) = Me.box_Tipo.Value
Hoja2.Cells(Fila, 9) = Me.box_Estado.Value
Hoja2.Cells(Fila, 10) = Me.txt_Imágen.Value
Hoja2.Cells(Fila, 12) = Me.txt_Fecha_Alta.Value
Hoja2.Cells(Fila, 17) = Me.box_Promo.Value
Hoja2.Cells(Fila, 18) = Me.txt_Valor_Compra.Value
End If
Next
End Sub
'Solo permite ingresar Numeros
Private Sub txt_Valor_de_lista_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
End If
End Sub
'Solo permite ingresar Numeros
Private Sub txt_Valor_Compra_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
End If
End Sub
Private Sub btn_Salir_Click()
Unload Me
End Sub
Valora esta pregunta
0