For con 2 condiciones e if con 2 variables [Resuelto/Cerrado]

andresko 8 Publicaciones lunes, 15 de febrero de 2016Fecha de inscripción viernes, 19 de febrero de 2016 Última intervención - 15 feb 2016 a las 16:45 - Última respuesta: andresko 8 Publicaciones lunes, 15 de febrero de 2016Fecha de inscripción viernes, 19 de febrero de 2016 Última intervención
- 16 feb 2016 a las 00:16
Hola estoy programando macros en mi practica profesional y necesito ayuda para hacer correr este codigo, no se si es posible hacer funcionar un for o un if , con tantas condiciones pero si alguien me ayuda se lo agradeceria mucho. :D

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$B$1" Then

For k = 12 And i = 18 And j = 2 To 100

If Cells(k, i) = Cells(1, 2) Then
Cells(3, j) = Cells(k, 1)
Cells(4, j) = Cells(k, 9)
Cells(5, j) = Mid(Cells(10, i), 11, 2)
Cells(6, j) = Cells(k, 13)
Cells(7, j) = Cells(k, i + 2)
End If

Next
End If
End Sub
Ver más 

7 respuestas

Mejor respuesta
gili_sb_8712 18 Publicaciones jueves, 11 de febrero de 2016Fecha de inscripción lunes, 15 de febrero de 2016 Última intervención - 15 feb 2016 a las 18:29
1
Gracias
Buen día Andresko.
Veo que tu codigo tiene unos errores de sintaxis.

para hacer un for anidado debes seguir la siguiente sintaxis.

For i=1 to 100
For j=1 to 100

Aqui pones tu if que hara la comparacion y se hara un proceso deacuerdo al valor que regrese el if

IF condicion THEN
se cimple
ELSE
no se cumple
END IF

next j
next i

Seria bueno que pusieras que condiciones se deben cumplir para los procesos y para los ciclos.

Saludos.

Gracias, gili_sb_8712 1

ha ayudado a 12255 usuarios este mes

andresko 8 Publicaciones lunes, 15 de febrero de 2016Fecha de inscripción viernes, 19 de febrero de 2016 Última intervención - 15 feb 2016 a las 18:39
Hola gili_sb_8712, Gracias por tu ayuda arregle el codigo de esta manera:


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$B$1" Then
For k = 12 To 100
For i = 18 To 100
For j = 2 To 100
If Cells(k, i) = Cells(1, 2) Then
Cells(3, j) = Cells(k, 1)
Cells(4, j) = Cells(k, 9)
Cells(5, j) = Mid(Cells(10, i), 11, 2)
Cells(6, j) = Cells(k, 13)
Cells(7, j) = Cells(k, i + 2)
Else
End If
Next k
Next i
Next j
End If
End Sub

pero al correrlo me dice
error de compilación:
Referencia de variable de control next no valida
y me marca en azul la letra k
podrias guiarme un poco mas por favor
Mejor respuesta
gili_sb_8712 18 Publicaciones jueves, 11 de febrero de 2016Fecha de inscripción lunes, 15 de febrero de 2016 Última intervención - 15 feb 2016 a las 18:58
1
Gracias
El cierre de los bucles no son correctos.

Si empiezas con k,i y j debes cerrar con j, i y k.

Es decir donde pones Next k debe ir next j.
Donde pones next j debe ir next k.

Gracias, gili_sb_8712 1

ha ayudado a 12255 usuarios este mes

andresko 8 Publicaciones lunes, 15 de febrero de 2016Fecha de inscripción viernes, 19 de febrero de 2016 Última intervención - 15 feb 2016 a las 20:50
muchas gracias, de casualidad sabes como hacer que en este mismo codigo los datos se ingresen en la primera celda vacia que se encuentre, mi problema es que quiero que busque esta celdas de izquierda a derecha, te explico:

For i = 12 To 100
For j = 18 To 50
If Cells(i, j) = Cells(1, 2) Then
Cells(3, i - 10) = Cells(i, 1)
Cells(4, i - 10) = Cells(i, 9)
Cells(5, i - 10) = Mid(Cells(10, j), 11, 2)
Cells(6, i - 10) = Cells(i, 13)
Cells(7, i - 10) = Cells(i, j)
End If
Next j
Next i
End If

en este momento el codigo ingresa los datos en las celdas (i , el numero de la columna)
pero a medida que aumenta el i ingresa los datos pero deja columnas vacias entre medio, si me ayudas con esto estoy casi listo ajjaja muchas gracias por tu tiempo ojala puedas ayudarme
gili_sb_8712 > andresko 8 Publicaciones lunes, 15 de febrero de 2016Fecha de inscripción viernes, 19 de febrero de 2016 Última intervención - 15 feb 2016 a las 21:59
no entendi bien el comentrio pero seria mas facil si me envias en archivo
***@***

Con un ejemplo de como quieres que quede y como es el estado inicial del archivo.
gili_sb_8712 18 Publicaciones jueves, 11 de febrero de 2016Fecha de inscripción lunes, 15 de febrero de 2016 Última intervención - 15 feb 2016 a las 22:00
Podrias mandarme el ejemplo de tu archivo para ver como le podemos hacer.

gilbertomj87@gmail.com
andresko 8 Publicaciones lunes, 15 de febrero de 2016Fecha de inscripción viernes, 19 de febrero de 2016 Última intervención - 16 feb 2016 a las 00:16
Gracias gili te acabo de enviar un correo :D