** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Bucles For
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoBucles For

 Responder Responder
Autor
Mensaje
naubp Ver desplegable
Nuevo
Nuevo


Unido: 30/Noviembre/2013
Localización: Barcelona
Estado: Sin conexión
Puntos: 4
Enlace directo a este mensaje Tema: Bucles For
    Enviado: 30/Noviembre/2013 a las 13:22
Buenas, estoy intentando hacer un programa VBA el qual me coja un valor ya establecido aleario, por ejemplo en "A1" y este colocarlo dentro de una formula: valor(C1)=A1*B1 con tambien B1 conocido,para que me de el valor en C1.
El problema que tengo es que dentro de la formula quiero que B1 me varie hasta B100... valor(C2)=A1*B2.. etc y una vez tengo los 100 valores que me salte a la siguiente celda A2 y repita la operacion: valor(C101)=A2*B1. Hasta A1000.... tendre C100000 celdas.

Con macros no se como utilizar la funcion For dentro de ellas.
Y hay algun problema si uso C(1000*10000)=C(10000000) me lo va aceptar Excel?
MUchas gracias
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5458
Enlace directo a este mensaje Enviado: 01/Febrero/2014 a las 00:54
 

No habia visto esta consulta.

 
Aunque no creo que naubp le esté haciendo seguimiento  (no ha vuelto a entrar desde el 11 de diciembre); solo porque no quede sin respuesta aporto 2 soluciones:
 
 

1.- Con las funciones integradas en Excel (no hace falta VBA).

       [C1]  =A1*B1

       [C2]   =DESREF($A$1;ENTERO(FILA(A1)/100);0)*DESREF($B$1;RESIDUO(FILA(A1);100);0)

 
       Copia/Pega C2 hasta C100000.
 
 
2.- Con código VBA  (no recomendado. ¡Podria tardar más de 2 horas!).

Sub Productos()

  Dim filaA As Double, filaB As Double, filaC As Double

  Application.ScreenUpdating = False

  For filaA = 1 To 1000

    For filaB = 1 To 100

      filaC = filaC + 1

      Cells(filaC, 4).Value = Cells(filaA, 1).Value * Cells(filaB, 2).Value

    Next filaB

  Next filaA

  Application.ScreenUpdating = True

End Sub

 
 
Ante la ausencia de naubp; cierro el hilo.
 
 
Aprendemos viendo respuestas de otros, también intentando resolver dudas (intenta ayudar cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable