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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Luis Enriquez
23/12/2009 - 08:24 | Informe spam
quedo perfectamente ,no tuve que modificar nada
muchas gracias!! hector, ya tenia dias tratando este problema


"Héctor Miguel" escribió:

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 ...



Modificaciones prueba con + / - Como LAS SIGUIENTES:

Sub actualizar_stok ()


Dim Fila As Integer
Con hojas de cálculo ( "Productos"). Range ( "A5: A505")
Para Fila = 5 a 15
Con. Cells.Find (What: =. Parent.Range ( "m" & Fila). Valor, LookIn: = xlFormulas). Offset (, 9)
. Value =. Value -. Parent.Range ( "L" & Fila). Relación
End With
Siguiente
End With


End Sub

Saludos,
Hector.

El Codigo Expuesto __ __
Sub actualizar_stok ()
Sheets ( "Productos"). Seleccione
Range ( "A5: A505"). Seleccione
Selection.Find (lo: = [M5]. Valor, LookIn: = xlFormulas). Activar
ActiveCell.Offset (0, 9). Seleccione
ActiveCell.Value = ActiveCell.Value - [L5]. Relación
Range ( "A5: A505"). Seleccione
Selection.Find (lo: = [M6]. Valor, LookIn: = xlFormulas). Activar
ActiveCell.Offset (0, 9). Seleccione
ActiveCell.Value = ActiveCell.Value - [L6]. Relación
Range ( "A5: A505"). Seleccione
Selection.Find (lo: = [M7]. Valor, LookIn: = xlFormulas). Activar
ActiveCell.Offset (0, 9). Seleccione
ActiveCell.Value = ActiveCell.Value - [L7]. Relación
Range ( "A5: A505"). Seleccione
Selection.Find (lo: = [M8]. Valor, LookIn: = xlFormulas). Activar
ActiveCell.Offset (0, 9). Seleccione
ActiveCell.Value = ActiveCell.Value - [L8]. Relación
Range ( "A5: A505"). Seleccione
Selection.Find (lo: = [M9]. Valor, LookIn: = xlFormulas). Activar
ActiveCell.Offset (0, 9). Seleccione
ActiveCell.Value = ActiveCell.Value - [L9]. Relación
Range ( "A5: A505"). Seleccione
Selection.Find (lo: = [M10]. Valor, LookIn: = xlFormulas). Activar
ActiveCell.Offset (0, 9). Seleccione
ActiveCell.Value = ActiveCell.Value - [L10]. Relación
Range ( "A5: A505"). Seleccione
Selection.Find (lo: = [M11]. Valor, LookIn: = xlFormulas). Activar
ActiveCell.Offset (0, 9). Seleccione
ActiveCell.Value = ActiveCell.Value - [L11]. Relación
Range ( "A5: A505"). Seleccione
Selection.Find (lo: = [M12]. Valor, LookIn: = xlFormulas). Activar
ActiveCell.Offset (0, 9). Seleccione
ActiveCell.Value = ActiveCell.Value - [L12]. Relación
Range ( "A5: A505"). Seleccione
Selection.Find (lo: = [M13]. Valor, LookIn: = xlFormulas). Activar
ActiveCell.Offset (0, 9). Seleccione
ActiveCell.Value = ActiveCell.Value - [L13]. Relación
Range ( "A5: A505"). Seleccione
Selection.Find (lo: = [M14]. Valor, LookIn: = xlFormulas). Activar
ActiveCell.Offset (0, 9). Seleccione
ActiveCell.Value = ActiveCell.Value - [L14]. Relación
Range ( "A5: A505"). Seleccione
Selection.Find (lo: = [M15]. Valor, LookIn: = xlFormulas). Activar
ActiveCell.Offset (0, 9). Seleccione
ActiveCell.Value = ActiveCell.Value - [L15]. Relación
End Sub




.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida