Jump to content
biostec

recorrer celda

Recommended Posts

buen día, es la primera vez que hago una consulta, he seguido al foro que me a servido y ayudado mucho, alguien que me pueda dar luz en este macro, les cuentos, tengo una lista numerada con x registros, requiero de su apreciable ayuda para que recorra estas filas numeradas y que cuando encuentra el cambio de número se detenga en la última fila de esa serie, para que apartir de ahí realice la ejecución de otra macro, cuando se ejecte esta macro, que siga el recorrido de las filas y se detenga nuevamente en la última fila de esa serie.. algo como esto

         columna 

fila1       1

fila2       1  aguí se ejecutaría una macro

fila3       2

fila4       2

fila5       2

fila6       2 aquí se ejecutaría una macro

fila7       3    

fila8       3 aquí se ejecutaría una macro

fila9       4

fila10     4 aquí se ejecutaría una macro

etc

he intentado con este código pero no logro hacer que funcione, 

Sub Desplaza2()

Do Until Not ActiveCell.Value <> ""
  
   If ActiveCell <> ActiveCell.Offset(1, 0).Select Then
   ActiveCell.Offset(1, 0).Select
   MsgBox "proceso terminado"
   End If
 
  If ActiveCell.Activate = ActiveCell.Offset(1, 0).Select Then
  ActiveCell.Offset(1, 0).Select
  End If
 Loop
End Sub

 

por sus atenciones, mil gracias

saludos

 

 

bucle2.xlsm

Share this post


Link to post
Share on other sites

Hola @biostec

Usa la siguiente macro y comenta si es lo que necesitas 

Public Sub DesplazaDato()

    uF = Range("A2", Range("A1048576").End(xlUp)).Rows.Count

    For X = 2 To uF
        If Cells(X, "A") <> Cells(X + 1, "A") Then 'AQUI PEGA EL CALL DE TU OTRA MACRO
    DoEvents
    Next
    
End Sub

NOTA IMPORTANTE : Pon una cabecero a tu serie de datos, porque estoy leyendo desde la celda A2

Mucha Suerte !!!

Saludos

Share this post


Link to post
Share on other sites

Hola BiosTec!!!

De dejo una guía del codigó como ejemplo

Saludos!!

Sub Desplaza2()


Do Until ActiveCell.Value = ""

            If ActiveCell.Value <> ActiveCell.Offset(1, 0).Value Then
            ActiveCell.Offset(1, 0).Select
                If ActiveCell.Value = "" Then
                Exit Sub
                End If
                
            MsgBox "si se puede"
            
            Else
            ActiveCell.Offset(1, 0).Select
            End If

Loop
End Sub

Share this post


Link to post
Share on other sites

Saludos a todos

@biostec he visto tu archivo, para comenzar debes crear tus macros en módulos standar, no en el modulo de la hoja (en ellas es recomendable usar solo las macros de eventos)

Decirte que me queda la sensación que lo tuyo puede resolverse con formulas, me refiero a la otra macro que ejecutas, que hace esa macro exactamente?

Bien no me hagas tanto caso, es solo una curiosidad de mi parte!

Share this post


Link to post
Share on other sites

Prueba este codigo 

Sub ejecuta()
Dim unicos As New Collection
Set NUMEROS = Range("a1").CurrentRegion

For i = 1 To NUMEROS.Rows.Count
    numer = NUMEROS.Cells(i, 1)
    On Error Resume Next
    unicos.Add numer, CStr(numer)
    On Error GoTo 0
Next i

For J = 1 To unicos.Count
    
    num = unicos.Item(J)
    CUENTA = WorksheetFunction.CountIf(NUMEROS.Columns(1), num)
    
    With NUMEROS
        Set BUSCA = .Find(num)
    End With
    CELDA = BUSCA.Address
    
    If J = 1 Then
        Set AREA = Range(CELDA).Offset(-1, 0).Resize(CUENTA, NUMEROS.Columns.Count)
    Else
        Set AREA = Range(CELDA).Resize(CUENTA, NUMEROS.Columns.Count)
    End If
    
    AREA.Cells(AREA.Rows.Count, 1).Select
    MsgBox ("EJECUTANDO MACRO")
Next J
End Sub

Share this post


Link to post
Share on other sites

Dr Hyde, 

agradezco mucho por el interés y la pronta respuesta a los miembros de este foro

este es lo que buscaba

excelentes aportaciones

saludos y muchas gracias

cierro este tema

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png