Macro Contador de números

Hola buen día quisiera saber si me podrían ayudar con una macro. Lo que yo busco hacer es por ej. Teniendo en las celdas "A1" el numero (1) y en "B1" el numero (2) este valor se incremente de 1 en 1 hasta llegar a 5 y que cuando sea el valor sea 5 en la columna "A" recién se incremente un numero más para empezar de nuevo en la columna "B" con el numero mayor que la columna "A" y finalizar con los números 4 y 5 lo que quedaría así más o menos

       a    b    c

1     1     2

2     1     3

3     1     4

4     1     5

5     2     3

6     2     4

7     2     5

8     3     4 

9     3     5

10   4     5

Espero haber sido claro con mi explicación desde ya gracias y espero me puedan ayudar

1

1 respuesta

Respuesta
1

Pablo Rivero!

Vamos a aprovechar para hacer una macro que no solo sirva para 5 sino para cualquier otro número, cuesta poco. Veo que lo que estás calculando son las combinaciones de 5 elementos tomados de 2 en 2. Luego haremos una macro que sirva para calcular las combinaciones de n elementos tomadas de 2 en 2.

Primero te adjunto una versisón para ejecutar directamente por menu pinchando en la macro

Sub Combinaciones_de_n_tomadas_de_2_en_2()
'ValeroASM
Dim i, f, j, n As Integer
n = 5
If n < 2 Then Exit Sub
i = 1
f = -1
For i = 1 To n - 1
    For j = i + 1 To n
       Cells(f + j, 1) = f + j
       Cells(f + j, 2) = i
       Cells(f + j, 3) = j
    Next
    f = f + n - i - 1
Next
End Sub

Simplemente cambiando la línea

n=5

por otro número, te servirá para ese otro número.

Y ahora la versión de macro para ser lanzada por otra que le suministre el valor de n

Sub Combinaciones_de_n_tomadas_de_2_en_2(n)
'ValeroASM
Dim i, f, j, n As Integer
If n < 2 Then Exit Sub
i = 1
f = -1
For i = 1 To n - 1
    For j = i + 1 To n
       Cells(f + j, 1) = f + j
       Cells(f + j, 2) = i
       Cells(f + j, 3) = j
    Next
    f = f + n - i - 1
Next
End Sub

Y eso es todo, esepro que te sirva y lo hayas entendido.  Si no es así pregúntame.  Y si ya está bien, no olvides puntuar.

Perdón, no hice todos los cambios necesarios para que funcione la macro con parámetro. Ahora mismo te la mando si me deja la página que está sufriendo graves problemas.

Sub Combinaciones_de_n_tomadas_de_2_en_2(n As Integer)
'ValeroASM
Dim i, f, j As Integer
If n < 2 Then Exit Sub
i = 1
f = -1
For i = 1 To n - 1
    For j = i + 1 To n
       Cells(f + j, 1) = f + j
       Cells(f + j, 2) = i
       Cells(f + j, 3) = j
    Next
    f = f + n - i - 1
Next
End Sub

Nota:  Puedes ponerle un nombre mucho más corto a la subrutina si vas a tener que escribir a mano bastantes llamadas a ella, llámala

Sub Combi2(n As Integer)

Por ejemplo.

Y eso es todo, no olvides puntuar.

¡Gracias!  Valero Angel Serrano Mercadal con la primer SUB ya me las arreglo, excelente tu colaboración y mucho mejor la rapidez de la respuesta 

Hola amigo! Valero Angel Serrano Mercadal soy yo de nuevo primero par agradecerte por la colaboración sobre la macro. Ahora mi duda es saber como puedo hacer para trabajar con planillas de excel demasiados grandes (más de 250 Mb por ej) sin que la pc se ponga lenta.

Pablo Rivero!

Cada consulta distinta nueva debe ir en una pregunta nueva.

Además si haces la pregunta en una nueva animarás a más expertos para contestarte.

A primera vista si me dices que la hoja tiene más de 250 Mb es normal que vaya lento el ordenador, y más si no es de última generación.

Y también depende de lo que haya en la hoja, supón que todas las celdas sean fórmulas complicadas que tiene que recalcular, eso no va a funcionar ni a tiros. Y si lo que va lento son las macros hay que saber que hay macros que se pueden hacer bien, mal o muy mal. Sería cuestión de estudiar el caso siempre que al menos pueda abrirse una vez sin que le cueste media hora. Recuerdo un libro que me mandaron una vez que solo para abrirse necesitaba 10 minutos o más por la cantidada de basura y datos innecesarios que había.

Pero como te decía arriba, cada consulta en su pregunta.

¡Gracias!  perfecto amigo, la verdad que soy nuevo en esto de preguntar y en este foro también, pero sí, tienes, razón debería de hacer una nueva pregunta. igual  para ser breve te comento que mi netbook no es muy nueva ni tampoco muy viejita jajaja. Y el libro de excel al que me refiero fue justamente creado con esta macro y tiene puros números nada de formulas ni nada que deba re-calcularse constantemente, pero lo cierto es que demora mas de diez minutos en abrir y unas ves abierto se me hace difícil  trabajar con ella. Pero como dijiste voy a abrir de nuevo mi pregunta. Saludos!!!

Es que 250 MB son una barbaridad. Fíjate que incluso para que nos llegue a los expertos el fichero tendrías que subirlo a una platraforma de intercambio porque por correo normal no te lo van a dejar mandar.

Si es verdad, justamente intente mandarlo por correo y me resulto imposible hasta que lo comprimí y fragmente con winrar recien entonces pude.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas