Saltar al contenido

Recommended Posts

publicado

Hola todos

agradezco de antemano cualquier gestión / ayuda

tengo dos pestañas

BBDD                                    listado exportado de la ERP donde pueden cambiar los importes 

USUARIO                           listado histórico de BDD 

El código tiene que detectar por la columna del nº factura ( columna J ) y cuando detecte el mismo nº de factura que

actualice los importes de acuerdo a la exportación ( BBDD ).....que mal me explico. Lo siento.

Sub CORREGIRIMPORTES2()

   Dim i, j As Integer
     j  = 3               ' DONDE EMPIEZA A ESCRIBIR       
    For i = 3 To 10000  ' DONDE EMPIEZA A BUSCAR
           
    
    If Range("BBDD!J" & i) = Range("USUARIO!J" & j) Then
        Range("BBDD!K" & i).Value = Range("USUARIO!K" & j).Value
                     
        j = j + 1
        
    End If
    
    Next   
    
       While Range("USUARIO!a" & j) <> ""
    
            Range("USUARIO!a" & j) = ""
            Range("USUARIO!b" & j) = ""
            Range("USUARIO!c" & j) = ""
            Range("USUARIO!d" & j) = ""
            Range("USUARIO!e" & j) = ""
            Range("USUARIO!f" & j) = ""
            Range("USUARIO!g" & j) = ""
            Range("USUARIO!h" & j) = ""
            Range("USUARIO!i" & j) = ""
            Range("USUARIO!j" & j) = ""
            Range("USUARIO!k" & j) = ""
            Range("USUARIO!L" & j) = ""
            Range("USUARIO!M" & j) = ""
            Range("USUARIO!N" & j) = ""
            Range("USUARIO!O" & j) = ""
            Range("USUARIO!P" & j) = ""
            Range("USUARIO!Q" & j) = ""
            
        j = j + 1
        
        Wend       
    
        
    End Sub

 

 

 

 

 

 

 

 

 

publicado (editado)

Hola! No te preocupes, si mandas un libro con el ejemplo tu explicación quedaría más clara. Te escribo lo que entiendo, ¿quieres actualizar los importes en la hoja “BBDD” basándote en los datos de la hoja “USUARIO” cuando los números de factura coincidan? Además, ¿quieres limpiar las filas en la hoja “USUARIO” después de la actualización? Como las deducciones no son buenas consejeras lo único que aportare a tu tema sera modificar tu código en base a eso.

Sub CORREGIRIMPORTES2()
    Dim i As Long, j As Long
    Dim lastRowBBDD As Long, lastRowUSUARIO As Long
    
    ' Encuentra la última fila con datos en ambas hojas
    lastRowBBDD = Sheets("BBDD").Cells(Sheets("BBDD").Rows.Count, "J").End(xlUp).Row
    lastRowUSUARIO = Sheets("USUARIO").Cells(Sheets("USUARIO").Rows.Count, "J").End(xlUp).Row
    
    j = 3 ' DONDE EMPIEZA A ESCRIBIR
    
    For i = 3 To lastRowBBDD ' DONDE EMPIEZA A BUSCAR
        If Sheets("BBDD").Range("J" & i).Value = Sheets("USUARIO").Range("J" & j).Value Then
            Sheets("BBDD").Range("K" & i).Value = Sheets("USUARIO").Range("K" & j).Value
            j = j + 1
        End If
    Next i
    
    ' Limpia las filas en la hoja USUARIO después de la actualización
    For j = 3 To lastRowUSUARIO
        If Sheets("USUARIO").Range("A" & j).Value <> "" Then
            Sheets("USUARIO").Range("A" & j & ":Q" & j).ClearContents
        End If
    Next j
End Sub

Que hice:

1 Encontrar la última fila con datos, eso asegura que el código no procese filas vacías innecesariamente.

2 Uso de Sheets para especificar la hoja, así haces que el código sea más claro.

3 Limpiar la filas, utiliza ClearContents para limpiar todas las celdas de la fila de una sola vez.

Si no es así, trata de mejorar la consulta así podrías recibir mejor ayuda.

Editado el por Israel Cassales
publicado

Gracias, Israel

No me está funcionando....

 

esto se lo he cambiado....

Limpia las filas en la hoja USUARIO después de la actualización

If Sheets("USUARIO").Range("A" & j).Value <> "" Then

por ► If Sheets("USUARIO").Range("A" & j) = "" Then

que si no, me borraba todo....

el tema es que tengo una diferencia en los importes en dos de las lineas y no me las está corrigiendo-....a ver si mañana puedo detectarlo yo solo y si no, te remito fichero para detectar el problema.....Mil gracias....

 

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.