Macro que modifique datos de una columna por otros actualizados

No se si sería posible crear algo así pero me sería de gran ayuda. Tengo una página web con productos de los cuales, en algunos se actualiza la cantidad disponible en el almacén a diario.

En resumen, tengo dos hojas de excel diferentes. En la primera (en la que se incluyen todos los pruductos de la tienda) tengo tres columnas, una con la referencia del producto (no todas tienen referencia), otra con el nombre y una tercera con las unidades disponibles hasta el momento.

En la segunda también tengo tres columnas (únicamente las que varían el stock ese día), una con la referencia del producto, otra con el nombre del producto y una tercera con las unidades disponibles actualizadas esa noche.

Mi intención sería crear una macro que identifique la referencia del producto de la hoja 2 y, en caso de que no tenga referencia que lo haga con el nombre, y sustituya las unidades disponibles de ese producto en la hoja 1.

¿Algo así sería posible?

Respuesta
1

H o l a: Podrías enviarme tu archivo con las 2 hojas y me explicas con un par de ejemplos lo que se tiene que hacer. Utiliza imágenes, colores y comentarios para explicar los ejemplos.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Míša Morávková” y el título de esta pregunta.

Dante Amor Hola :), ya te envié el archivo. Espero que me haya explicado con claridad.

Muchas gracias!!

H o l a : Te anexo la macro

Sub ActualizarUnidades()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    Set h3 = Sheets("Resultado")
    '
    h3.Range("A:C").Clear
    j = 2
    u = WorksheetFunction.Max(h1.Range("A" & Rows.Count).End(xlUp).Row, h1.Range("B" & Rows.Count).End(xlUp).Row)
    For i = 2 To u
        hoja = 1
        If h1.Cells(i, "B") <> "" Then
            Set b = h2.Columns("B").Find(h1.Cells(i, "B"), lookat:=xlWhole)
            If Not b Is Nothing Then hoja = 2
        Else
            Set b = h2.Columns("A").Find(h1.Cells(i, "A"), lookat:=xlWhole)
            If Not b Is Nothing Then hoja = 2
        End If
        '
        h3.Cells(j, "A") = h1.Cells(i, "A")
        h3.Cells(j, "B") = h1.Cells(i, "B")
        If hoja = 1 Then
            h3.Cells(j, "C") = h1.Cells(i, "C")
        Else
            h3.Cells(j, "C") = h2.Cells(b.Row, "C")
        End If
        j = j + 1
    Next
    MsgBox "Unidades Actualizadas", vbInformation
End Sub
'S aludos.

¡Muchas gracias! Funciona a la perfección :) 

Dante Amor Disculpa que te moleste de nuevo pero tendría otra pregunta.

¿Habría alguna forma de hacer que ciertos productos con alguna palabra en su interior (teniendo en cuenta que el título se compone de más palabras) se ignoren?

H o l a : Con mucho gusto te ayudo con todas tus peticiones.

Crea una nueva pregunta en Todoexpertos dentro del tema de microsoft excel. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas