Como considerar los últimos dos números y ya no todo el rango en el siguiente código VBa

Primero:

He obtenido el código gracias a Dante realmente muy agradecido funciona perfectamente el cual modifique para las necesidades que voy encontrando.

Sin embargo obtengo los códigos de un rango que va aumentando constantemente y el desarrollo del mismo se va demorando mas, voy por 400 datos en la columna B

Imagen 1:

Ahora voy por los 400 datos

Ingreso nuevos datos al final de la columna B con el siguiente código:

Dim Fila As Integer
                     Dim Final As Integer
                     Dim Registro As Integer
                         For Fila = 1 To 5500
                          If Sheets("REPETIDOS").Cells(Fila, 2) = "" Then
                               Final = Fila                       
                              Exit For                
                          End If
                       Next            
                                 Sheets("REPETIDOS").Cells(Fila, 2) = Sheets("INTRO").Range("G5")

Y eso se ejecuta dentro de una seria de macros y códigos

luego aplico el siguiente código

' LIMPIAR CONTENIDO DE REPETIDOS
    Sheets("REPETIDOS").Select
    Range("H3:JD39").Select
    Selection.ClearContents
    Range("A1").Select
' RELIZAR MACRO DE DANTE para REPETIDOS
            Dim c As Range
            Dim i As Long
  'para cada valor en la columna B, empezando en B7 y hasta el último valor de B
                For Each c In Range("B7", Range("B" & Rows.Count).End(3))
                        i = c.Value + 3                                               'número de fila que le corresponde en la matriz
                          Cells(i, Columns.Count).End(1)(1, 2).Value = c.Offset(1).Value  'pone el valor en la matriz
            Next

Lo que realiza es limpiar las celdas para luego desarrollar el código y reconoce todos los números de la columna B (bueno a partir de b7 no se por que cuando pongo a partir de b4 se des configura el código bueno pero es otro tema)

Lo que busco es ya no limpiar las celdas en el rango h3:jd39, para que el codigo se aplique sobre ya las existencias anteriores y asi se ejecute sin demoras

QUE SE APLIQUE SOBRE LOS DOS ULTIMOS REGISTROS DE LA COLUMA B EL ULTIMO Y EL ANTERIOR, ya que va incrementado .

Segundo:

(Y una consulta aparte, ya que me gustaría aplicar esto en otro hoja otra tabla de datos ¿Cómo puedo respetar el lugar de cada uno de los números de la Imagen1 y eliminar los repetidos)

Tercero:

Me parece que acces acepta mayores cantidades de datos, ¿Se puede aplicar estos códigos de VBa en Acces?

Respuesta
2

"Lo que busco es ya no limpiar las celdas en el rango h3:jd39"

Para eso, elimina estas líneas de la macro:

Range("H3:JD39").Select
    Selection. ClearContents

"QUE SE APLIQUE SOBRE LOS DOS ULTIMOS REGISTROS DE LA COLUMA B EL ULTIMO Y EL ANTERIOR"

Para eso, cambia esta línea:

For Each c In Range("B7", Range("B" & Rows.Count).End(3))

Por estas:

  Dim lr As Long
  lr = Range("B" & Rows.Count).End(3).Row
  For Each c In Range("B" & lr - 1 & ":B" & lr)

"Y una consulta aparte, ya que me gustaría aplicar esto en otro hoja otra tabla de datos"

Para eso crea una nueva pregunta y explica con detalle qué necesitas.


No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas