Thanks Thanks:  0
Likes Likes:  0
Results 1 to 2 of 2

Thread: Necesito ayuda para actualizar un código

  1. #1
    New Member
    Join Date
    Apr 2018
    Posts
    1
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default Necesito ayuda para actualizar un código

    De antemano gracias por acudir a mi llamada de ayuda.
    Tengo el siguiente código en la hoja8 de un libro de Excel en la que tengo una base de datos de artículos. En la columna J de esta hoja tengo el dato “Precio de compra del artículo”. Lo que realiza la macro que adjunto es, si se modifica el precio de compra de cualquier artículo en la columna J, lo actualiza en todas las hojas de escandallos en las que ese artículo participa. Estas hojas de escandallos se denominan todas iniciando con “E.” seguido del número de escandallo. Luego realiza unos cálculos y los actualiza en otra hoja denominada “ART_VTA”
    Lo que necesito es adaptar la macro para que se ejecute y actúe sobre todos los artículos que forman parte de esa base de datos (HOJA8, que es donde está ubicado el código) y no solamente en aquel artículo en el que haya realizado una modificación en el campo de la columna J (precio de compra). Quisiera tener la posibilidad de que se ejecute para todos los artículos que componen el art_comp (hoja8), independientemente de que el precio haya sido modificado o no, y recalcule en art_vta (como ya hace) el consumo, margen bruto, precio teorico y coste unitario.
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    '
        'Actualiza precio de compra en los escandallos cuando se modifica la columna J
       
        If Not Intersect(Target, Columns("J")) Is Nothing Then
            If Target.Count > 1 Then Exit Sub
            If Target.Row = 1 Then Exit Sub
            res = MsgBox("Ha modifica un precio de compra, desea modificar los escandallos", _
                vbQuestion + vbYesNo, "MODIFICAR PRECIO DE COMPRA")
            If res = vbNo Then Exit Sub
            '
            Application.ScreenUpdating = False
            Application.StatusBar = False
            'descripcion articulo en factura
            des_fra = Cells(Target.Row, "E")
            pre_uni = Cells(Target.Row, "H")
            For Each h In Sheets
                Application.StatusBar = "Revisando hoja : " & h.Index & " de : " & Sheets.Count
                If Left(h.Name, 2) = "E." Then
                    Set b = h.Columns("A").Find(des_fra, lookat:=xlWhole)
                    If Not b Is Nothing Then
                        fila = b.Row
                        'modifica precio unitario
                        h.Cells(fila, "E") = pre_uni
                        'modifica coste total
                        h.Cells(fila, "F") = pre_uni * h.Cells(fila, "B")
                        'Coste total x pax
                        h.Cells(fila, "G") = h.Cells(fila, "F") / h.Range("B5")    'raciones
                        '
                        '% coste total x pasx
                        u = h.Range("A" & Rows.Count).End(xlUp).Row
                        With h.Range("H7:H" & u)
                            .FormulaR1C1 = "=IF(RC[-1]="""","""",RC[-1]/R7C18)"
                            .Value = .Value
                        End With
                        'Actualizar Art_vta
                        art_vta = h.Range("A3").Value
                        Set hvta = Sheets("ART_VTA.")
                        Set c = hvta.Columns("A").Find(art_vta, lookat:=xlWhole)
                        If Not c Is Nothing Then
                            '
                            hvta.Cells(c.Row, "F") = h.Range("N12") 'consumo
                            hvta.Cells(c.Row, "G") = h.Range("N13") 'margen bruto
                            hvta.Cells(c.Row, "H") = h.Range("M9") 'coste unit
                            hvta.Cells(c.Row, "I") = h.Range("M11") 'precio teorico
                        End If
                    End If
                End If
            Next
        End If
    Last edited by RoryA; Apr 25th, 2018 at 06:14 AM. Reason: Code tags

  2. #2
    Board Regular
    Join Date
    Mar 2016
    Posts
    87
    Post Thanks / Like
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    Default Re: Necesito ayuda para actualizar un código

    Hola Valentin. Quiero entender mejor lo que estás pidiendo. Veo dos maneras de adaptar la macro.

    1) Cuando el precio de uno de los artículos se cambie, que todos los articulos (incluyendo el que se cambió y los demás) se recalculasen
    2) Que solo el artículo que haya cambiado se recalculase, pero que se ejecute cuando haya sido modificado el precio u otro dato del artículo (otro dato en otra columna que no sea J)

    ¿Es una de estos o lo he entendido mal?

Some videos you may like

User Tag List

Tags for this Thread

Like this thread? Share it with others

Like this thread? Share it with others

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •