como hacer un bucle

23/12/2009 - 03:02 por Luis Enriquez | Informe spam
tengo una lista de productos en un stok, que tengo que
actualizar cada ves que utilizo algunos
y quisiera resumir el siguiente codigo en un bucle para no repetir lo mismo
10 veces
Sub actualizar_stok()

Sheets("productos").Select

range("A5:A505").Select

Selection.Find(what:=[m5].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L5].Value
range("A5:A505").Select

Selection.Find(what:=[m6].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L6].Value
range("A5:A505").Select

Selection.Find(what:=[m7].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L7].Value
range("A5:A505").Select

Selection.Find(what:=[m8].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L8].Value
range("A5:A505").Select

Selection.Find(what:=[m9].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L9].Value
range("A5:A505").Select

Selection.Find(what:=[m10].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L10].Value
range("A5:A505").Select

Selection.Find(what:=[m11].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L11].Value
range("A5:A505").Select

Selection.Find(what:=[m12].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L12].Value
range("A5:A505").Select

Selection.Find(what:=[m13].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L13].Value
range("A5:A505").Select

Selection.Find(what:=[m14].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L14].Value
range("A5:A505").Select

Selection.Find(what:=[m15].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L15].Value
End Sub
gracias
 

Leer las respuestas

#1 Héctor Miguel
23/12/2009 - 05:58 | Informe spam
hola, Luis !

tengo una lista de productos en un stok, que tengo que actualizar cada ves que utilizo algunos
y quisiera resumir el siguiente codigo en un bucle para no repetir lo mismo 10 veces ...



prueba con modificaciones +/- como las siguientes:

Sub actualizar_stok()
Dim Fila As Integer
With Worksheets("productos").Range("a5:a505")
For Fila = 5 To 15
With .Cells.Find(What:=.Parent.Range("m" & Fila).Value, LookIn:=xlFormulas).Offset(, 9)
.Value = .Value - .Parent.Range("l" & Fila).Value
End With
Next
End With
End Sub

saludos,
hector.

__ el codigo expuesto __
Sub actualizar_stok()
Sheets("productos").Select
range("A5:A505").Select
Selection.Find(what:=[m5].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L5].Value
range("A5:A505").Select
Selection.Find(what:=[m6].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L6].Value
range("A5:A505").Select
Selection.Find(what:=[m7].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L7].Value
range("A5:A505").Select
Selection.Find(what:=[m8].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L8].Value
range("A5:A505").Select
Selection.Find(what:=[m9].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L9].Value
range("A5:A505").Select
Selection.Find(what:=[m10].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L10].Value
range("A5:A505").Select
Selection.Find(what:=[m11].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L11].Value
range("A5:A505").Select
Selection.Find(what:=[m12].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L12].Value
range("A5:A505").Select
Selection.Find(what:=[m13].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L13].Value
range("A5:A505").Select
Selection.Find(what:=[m14].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L14].Value
range("A5:A505").Select
Selection.Find(what:=[m15].Value, LookIn:=xlFormulas).Activate
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = ActiveCell.Value - [L15].Value
End Sub

Preguntas similares