Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: DIOrain en 15 Abril 2015, 16:04 pm



Título: Dividir Numero en partes proporcionales
Publicado por: DIOrain en 15 Abril 2015, 16:04 pm

Necesito dividir un número en partes proporcionales dependiendo de un múltiplo dado por un contenido, por ejemplo:

Una caja debe contener 100 piezas. Se fabricaron 480 piezas. Necesito mandar a imprimir 4 etiquetas para cada caja y dejar el sobrante de 80 solo como registro, sin imprimir.

Básicamente quiero que una MACRO se registren estas piezas y se envien a imprimir las etiquetas necesarias dependiendo del numero de piezas registradas y la cantidad que debe de llevar la caja.

A alguien se le ocurre un código para hacer esto?

Agradeceré mucho cualquier ayuda.

Saludos


Título: Re: Dividir Numero en partes proporcionales
Publicado por: engel lex en 15 Abril 2015, 16:12 pm
operación de resto o solo trabajar numero enteros

es decir

Código:
maximo = 480
lote = 100
sobran = maximo mod lote
(aqui resto vale 80)
cajas = entero(maximo/lote)
(aquí cajas vale 4)

es cosa que apliques ahora eso al lenguaje que trabajes


Título: Re: Dividir Numero en partes proporcionales
Publicado por: DIOrain en 15 Abril 2015, 16:51 pm
Muchas gracias!
Podrías, si no es demasiado, poner un ejemplo en visual basic para excel?
Lo que pasa es que soy algo nuevo en estos menesteres...

Muchas gracias de cualquier modo por la respuesta, ya tengo una idea, ahora mi problema es la ignorancia del lenguaje.

Saludos


Título: Re: Dividir Numero en partes proporcionales
Publicado por: engel lex en 15 Abril 2015, 16:59 pm
te deje los nombres para que lo buscaras en google... no manejo VB


Título: Re: Dividir Numero en partes proporcionales
Publicado por: DIOrain en 15 Abril 2015, 17:01 pm
Entiendo, muchas gracias engel lex, así lo haré


Saludos


Título: Re: Dividir Numero en partes proporcionales
Publicado por: Shell Root en 15 Abril 2015, 17:38 pm
Así por simple, podrías hacer algo como esto:

Linea 8: Me redondea el valor, lo hice a lo cavernicola y lo converti a string, tomo el primer valor y despúes converti a entero.
Código
  1. Public Sub Init()
  2.    Call PrintSticker(480, 100)
  3. End Sub
  4.  
  5. Public Sub PrintSticker(CantMAX As Integer, CantLote As Integer)
  6.    Dim CantRest As Integer
  7.    Dim Box As Integer
  8.    Box = CInt(Left(CStr(CantMAX / CantLote), 1))
  9.    CantRest = CantMAX Mod CantLote
  10.  
  11.    MsgBox "Numero de cajas: " & Box & ". Residuo: " & CantRest
  12. End Sub
  13. ' Numero de cajas: 4. Residuo: 80

Esperad los magos del VB que te den otra más optimizada.