Consulta Macros Excel - Asociar info

Quisiera si existe alguna macro para hacer lo siguiente:

Tengo un listado de links de imagen, que debo asignárselos a un producto el cual tiene varias variantes por código, como muestro en esta captura.

En resumen, tengo 3 links de fotos, a los cuales debo asignárselo a cada código del producto, quedando de la siguiente manera:

Quería saber si hay alguna forma de hacerlo masivamente, ya que tengo muchos links y muchos códigos de productos diferentes.

1 respuesta

Respuesta
3

Ya había visto con anterioridad esta consulta pero no la comprendí.

Si pudieras enviarme tu hoja con algunos de los contenidos de las col A:B y H:I sería lo ideal.

Mis correos aparecen en la sección Contactos de mi sitio que dejo al pie. Podés tomar el de cibersoft. Arg de gmail

Hola Elsa, como estas?

Te envié por mail la información

Muchas gracias!

Ya te estoy devolviendo el libro con la prueba revisada hasta la fila 68 ;)

Esta es la macro. Los comentarios te permitirán ajustar referencias como nombres de hoja o inicio de cada fila de datos que en este caso es 2 para todas las hojas.

Sub ResumenProductosLinks()
'x Elsamatilde
Dim hoP As Worksheet, hoL As Worksheet, hoF As Worksheet
Dim x As Integer, y As Integer, k As Integer, z As Integer
Dim codPro As String, idTalle As String, dato As String, indiProd As String
'hojas del proceso
Set hoP = Sheets("Productos y Ids")
Set hoL = Sheets("Link de fotos")
Set hoF = Sheets("Archivo Final")
x = 2                             '1ra fila hoja Productos
y = 2: k = y                      '1ra fila hoja Links
z = 2                             '1ra fila hoja final
idTalle = ""                         'ind de Talles
codPro = ""                           'cod Productos
indiProd = ""                         'nbreImagen c/indice
'recorre la col B de la hoja Productos
While hoP.Range("B" & x) <> ""
    'se vuelcan datos en col E y C
        hoF.Range("E" & z) = hoP.Range("A" & x)
        hoF.Range("C" & z) = "new product"
        'al cambiar de producto se inicia el índice para repetir las imágenes
        If codPro <> hoP.Range("B" & x) Then
            idTalle = ""
            If codPro = "" Then
                y = 2
            Else
                y = k + 1
            End If
            codPro = hoP.Range("B" & x)
        End If
        If idTalle <> hoP.Range("A" & x) Then
           hoF.Range("D" & z) = "main"
           idTalle = hoP.Range("A" & x)
           k = y
        Else
            k = k + 1
        End If
        hoF.Range("A" & z) = hoL.Range("A" & k)
        'armar cadena para el col B
        dato = hoL.Range("A" & k)
        'si el indice es 2 se coloca 'second'
        If Right(dato, 5) = "2.jpg" Then hoF.Range("D" & z) = "second"
        'se extrae parte del URL para la col B
        For A = Len(dato) To 1 Step -1
            If Mid(dato, A, 1) = "/" Then
                indiProd = Mid(dato, A + 1, Len(dato) - A)
                Exit For
            End If
        Next A
        hoF.Range("B" & z) = indiProd
        z = z + 1
    x = x + 1
Wend
MsgBox "Fin del proceso.", , "Información"
End Sub

Recibido tu 2do libro.

Me comentas que el primero ya está resuelto (ejecute la macro usando el primer archivo que te pase en esta cadena y ahí si me funciono todo ok. Todo se asoció bien.)

Entonces por favor valora y cierra esta consulta y con mucho gusto seguiremos en otra nueva que publiques a continuación.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas