Puede descargar el archivo con el código VBA: eratostenes.xlsm
En nuestro ejemplo vamos a obtener los números primos anteriores a 200, que son:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199.
Option Explicit
Sub cribado()
Dim A(200) As Integer
Dim i As Integer, j As Integer
Dim color
Range("B4:K23").Interior.Pattern = xlNone
For i = 2 To 200
A(i) = i
Next i
For i = 2 To 200
If A(i) <> 0 Then
color = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
For j = i + 1 To 200
If j Mod i = 0 Then
Call colorines(A(j), color)
A(j) = 0
End If
Next j
End If
Next i
End Sub
Sub colorines(n, color)
Dim fila As Integer, columna As Integer
For fila = 4 To 23
For columna = 2 To 11
If Cells(fila, columna).Value = n And n <> 0 Then
Cells(fila, columna).Interior.color = color
End If
Next columna
Next fila
End Sub
Se van coloreando los múltiplos de los diferentes primos que nos encontramos. Finalmente, los números que quedan sin colorear son los números primos.
Hola. Agradecería me ayudaran para saber cómo proceder para crear lista de compra de ingredientes para recetas. Tengo recetas con el listado de ingredientes y cantidad necesaria. Para realizar la compra, debo poner cuántas recetas haré y estaría bien que me calculara el total de ingredientes a sumar (teniendo en cuenta que un mismo ingrediente puese estar en más de una receta). Lo he intentado de varias formas y no me sale. Sé que no tiene nada que ver con este tema. Muchas gracias. Gran trabajo el suyo.
ResponderEliminarCon sumar.si creo que te sirviera
Eliminar