Excel - UNIR TRES MACROS EN UNA SOLA

 
Vista:

UNIR TRES MACROS EN UNA SOLA

Publicado por CARLINHOS (9 intervenciones) el 22/06/2018 16:42:40
BUENAS EXPERTOS AYUDA POR FAVOR., TENGO 3 MACROS:
1.- LA PRIMERA GUARDA DATOS DE UNA HOJA A OTRA
2.- LA SEGUNDA UBICA LOS DUPLICADOS EJEMPLOS SI HAY DOS CARLOS COLOCA COMO DUPLICAOD A LOS DOS CARLOS
3.- ELIMINA LOS QUE ETIQUETE COMO DUPLICADO...EH INTENTADO LLAMAR LA MACRO DUPLICADOS DESDE GUARDAR PERO NO FUNCIONA...QUIERO UNIR LAS TRES MACROS EN UNA SOLA PARA OPTIMIZAR AQUI ESTA MI CODIGO:

LAS TRES MACROS FUNCIONAN POR SEPARADO A LA PERFECCION:

1
2
3
4
5
6
7
8
9
10
11
12
13
Sub GuardarDatos()
 
 
filalibre = Sheets("HOJA2").Range("A1048576").End(xlUp).Row + 1
ActiveSheet.Range("A2").Select
fila = 2
While ActiveCell.Value <> ""
Sheets("HOJA2").Cells(filalibre, 1) = ActiveCell.Offset(0, 0) 'producto
 
filalibre = filalibre + 1
ActiveCell.Offset(1, 0).Select
Wend
End Sub

1
2
3
4
5
6
7
8
9
10
11
12
Sub DUPLICADO()
Dim B As Long
Dim numfilas As Long
numfilas = Hoja2.Cells(Rows.Count, 1).End(xlUp).Row
 
For B = numfilas To 1 Step -1
    If WorksheetFunction.CountIf(Hoja2.Range("A:A"), Cells(B, 1)) > 1 Then
         Hoja2.Range("B" & B).Value = "DUPLICADO"
    End If
Next B
 
End Sub

1
2
3
4
5
6
7
8
9
10
11
12
Sub ELIMINARDUPLICADOS()
Dim i As Integer, nFilas As Integer
nFilas = ActiveSheet.Cells(4, 1).CurrentRegion.Rows.Count
 
For i = nFilas To 2 Step -1
Cells(i, "B").Select
If Cells(i, "B") = "DUPLICADO" Then
    ActiveCell.EntireRow.Select
    Selection.Delete
End If
Next i
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

UNIR TRES MACROS EN UNA SOLA

Publicado por Antoni Masana (2477 intervenciones) el 25/06/2018 14:10:51
Las Macros y tres formas de ejecutarlas Juntas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub GuardarDatos()
    filalibre = Sheets("HOJA2").Range("A1048576").End(xlUp).Row + 1
    ActiveSheet.Range("A2").Select
    fila = 2
    While ActiveCell.Value <> ""
        Sheets("HOJA2").Cells(filalibre, 1) = ActiveCell.Offset(0, 0) 'producto
 
        filalibre = filalibre + 1
        ActiveCell.Offset(1, 0).Select
    Wend
End Sub
 
Sub DUPLICADO()
    Dim B As Long, numfilas As Long
    numfilas = Hoja2.Cells(Rows.Count, 1).End(xlUp).Row
    For B = numfilas To 1 Step -1
        If WorksheetFunction.CountIf(Hoja2.Range("A:A"), Cells(B, 1)) > 1 Then
             Hoja2.Range("B" & B).Value = "DUPLICADO"
        End If
    Next B
 
End Sub
 
Sub ELIMINARDUPLICADOS()
    Dim i As Integer, nFilas As Integer
    nFilas = ActiveSheet.Cells(4, 1).CurrentRegion.Rows.Count
    For i = nFilas To 2 Step -1
        Cells(i, "B").Select
        If Cells(i, "B") = "DUPLICADO" Then
            ActiveCell.EntireRow.Select
            Selection.Delete
        End If
    Next i
End Sub

OPCION - 1

1
2
3
4
5
6
7
8
9
10
11
12
13
Sub GuardarDatos()
    filalibre = Sheets("HOJA2").Range("A1048576").End(xlUp).Row + 1
    ActiveSheet.Range("A2").Select
    fila = 2
    While ActiveCell.Value <> ""
        Sheets("HOJA2").Cells(filalibre, 1) = ActiveCell.Offset(0, 0) 'producto
 
        filalibre = filalibre + 1
        ActiveCell.Offset(1, 0).Select
    Wend
    Call DUPLICADO
    Call ELIMINARDUPLICADOS
End Sub

OPCIÓN - 2

1
2
3
4
5
Sub Todas()
    Call GuardarDatos
    Call DUPLICADO
    Call ELIMINARDUPLICADOS
End Sub

OPCIÓN - 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub GuardarDatos()
    filalibre = Sheets("HOJA2").Range("A1048576").End(xlUp).Row + 1
    ActiveSheet.Range("A2").Select
    fila = 2
    While ActiveCell.Value <> ""
        Sheets("HOJA2").Cells(filalibre, 1) = ActiveCell.Offset(0, 0) 'producto
 
        filalibre = filalibre + 1
        ActiveCell.Offset(1, 0).Select
    Wend
 
    ' ---&--- DUPLICADO
 
    Dim B As Long, numfilas As Long
    numfilas = Hoja2.Cells(Rows.Count, 1).End(xlUp).Row
    For B = numfilas To 1 Step -1
        If WorksheetFunction.CountIf(Hoja2.Range("A:A"), Cells(B, 1)) > 1 Then
             Hoja2.Range("B" & B).Value = "DUPLICADO"
        End If
    Next B
 
    ' ---&--- ELIMINAR DUPLICADOS()
 
    Dim i As Integer, nFilas As Integer
    nFilas = ActiveSheet.Cells(4, 1).CurrentRegion.Rows.Count
    For i = nFilas To 2 Step -1
        Cells(i, "B").Select
        If Cells(i, "B") = "DUPLICADO" Then
            ActiveCell.EntireRow.Select
            Selection.Delete
        End If
    Next i
End Sub

De todas formas veo errores en las macros, la primera un error de lógica y la segunda de sintaxis y la tercera ya ni la he mirado.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar