Vous êtes sur la page 1sur 3

COMO HACER UN CICLO ANIDADO? Me seria de gran ayuda, si pudieras decirme como elaborar un ciclo anidado.

El problema es el siguiente: Tengo el nmero 5497, el cual se eleva al cuadrado y da como resultado 30217009. Del cual solo necesito los 4 nmeros de en medio, o sea el 2170. En caso de que el numero sea solo de 7 dgitos se le agregara un cero al inicio y se tomaran los 4 de en medio. Por ejemplo: 4708900=04708900, y se tomara el 7089. La idea que tengo es, al resultado, sea 30217009, restarle 1000000 hasta que quede del orden de miles; una vez en orden de miles, dividirlo entre 100, y as me quedaran los del medio. Es posible hacerlo sin tener que utilizar macros, ya que no estoy familiarizado con ellas. He intentado con el SI, pero el ciclo no se decrece.

Experto Hola, Primero que todo, disculpa la demora en contestar. Se me ocurre que puedes utilizar una funcin de excel para extraer estos nmeros de la celda. Es la funcin EXTRAE (en espaol) o MID (en ingls). Cmo no sabes cul es la longitud exacta de tu nmero original puedes agregar un IF al inicio, algo as: IF(LEN(A1)=8; MID(A1;3;4); MID(A1;2;4)) Te la envo en ingls pues la verdad estoy ms familiarizado con este, pero puedes cambiar las funciones a espaol (IF x SI, LEN x LARGO, MID x EXTRAE). ---------------------------------------------HOLA FORO Alguien me puede ayudar con el siguiente ciclo, lo que necesito es que me lea los primeros 7 caracteres y si dice - *Excel*-, en la columana 3 me ponga - Excel -. -lo estaba pensando hacer con la formula izquierda pero no supe como adaptarsela al ciclo. Sub marcar() For rwIndex = 1 To 1000 If (Cells(rwIndex, 2).Value) = "*Excel* aqui va otros textos" Then Cells(rwIndex, 3).Value = "Excel" End If Next rwIndex End Sub

Respuesta: prueba con... If Left(Cells(rwIndex, 2), 7) = "*Excel*" _ Then Cells(rwIndex, 3) = "Excel" saludos, hector. --------------------------------Necesitaria usar la funcin for en excel pero no se usar el visual basic. Hay alguna forma de hacerlo en excel 2003? "Diego" escribi en el mensaje news: Mostrar la cita

Excel cuenta con el VBA (Visual Basic para Aplicaciones), que es muy parecido al Visual Basic "normal". Ambos disponen de bucles For...Next.

Para entrar en el editor de VBA lo nico que tienes que hacer es pulsar Alt F11 Un saludo. Fernando Arroyo MS MVP Excel ------------------------------Hola a todos Soy programador intermedio pero de macros en excel s muy poco. Necesito hacer una tarea "n" veces. Si grabo una macro el me dice lo que debo hacer una vez. Que le debo poner para que quede dentro de un for o un do while o que se pone en excel ? Mil gracias de antemano Mauricio Urquijo: Pues depende de lo que estes haciendo. En vba tienes ciclos for next, for each next, do while, do until. "Mauricio Urquijo" escribi en el mensaje ---------------------------------------------

Mi problema es el siguiente: Tengo una subrutina, en la que despues de un "loop" con for..next, los resultados aparezcan en un rango de una columna. La rutina es la siguiente: Sub Converge() ' ' Converge Macro ' For I = 1 to 12 Range("B11").Select ActiveCell.FormulaR1C1 = I Range("K23").Select Selection.Copy Aqu, necesito que este loop, se pegue en la columna J, desde la 25, hasta la 36.. Range("J25" to "j36").Select Selection.PasteSpecial Paste:=xlPasteValues Por su respuesta, gracias anticipadas... Experto si el rango es fijo directamente puedes hacer Range("J25:J36").Select y si el rango puede variar (en general es lo que pasa en VBA) pods hacer Range(Cells(filaDesde,colDesde), Cells(filaHasta,colHasta)).Select donde filaDesde, filaHasta, colDesde, colHasta son variables numricas

en este ejemplo sera Range(Cells(25,10), Cells(36,10)).Select Saludos gfellay