Excel con visual

Tengo una tabla como con 3000 datos y requiero que se eliminen toas las filas que tengan repetido el no. De control del alumno (de la columna G).
Quiero hacerlo con do While; pero se traba mi programa. Me ayudas pls. Gracias : )

1 Respuesta

Respuesta
1
Te tengo unas preguntas:
- ¿Los datos de las otras columnas si pueden ser diferentes?
Ejemplo:
Fila 2 Ana 20años 80ptos... (Columna G)>50
Fila 3 Ana 20años 65ptos... (Columna G)>50
- ¿A pesar de que hay una diferencia en una de las columnas, deseas que se elimine una de las filas?
- En esteb caso, ¿Cuál se queda y cual se elimina?
Hola, antes que nada una disculpa por no ser especifica; mira mi tabla se ve de la siguiente manera:
                          ============COLUMNAS============
                    A B C D E F
Fila 1 Articulo Descripción Color Cantidad Pedido Concatenado
Fila 2 G0509 Entretela Negro 1200 PY001 G0509NegroPY001
Fila 3         BT502     Boton            Rojo      10500     PY002      BT502RojoPY002
Fila 4        G0509     Entretela      Negro     1200      PY001      G0509NegroPY001
Como podrás observar el concatenado F2 se repite con el concatenado F4; lo que quiero es que solo quede uno y no los dos, para cuando pida mi material no lo pida repetido.
Muchas gracias por tu apoyo!
Bella Astrid, ¿cómo estas?
Te diseñe una macro para unos datos que ocupan desde la columna A hasta la F como en tu ejemplo!
Has lo siguiente:
- Abre una sesión de Visual basic (Pulsando ALT+F11)
- Abre un Módulo Nuevo (Menú Insertar luego Modulo)
- Allí vas a pegar el siguiente código:
Sub DelRep()
'
' DelRep Macro
' Macro grabada el 13/08/2008 por Richard Chacón
Range("H5").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("H1").Select
Selection.Delete Shift:=xlToLeft
Range("A5").Select
Selection.End(xlToRight).Select
Selection.Copy
Range("H1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A5:F8").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"H1:H2"), CopyToRange:=Range("H5"), Unique:=True
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveCell.Range("A1:F2").Select
Range("H6:M5000").Select
Selection.Copy
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 5).Range("A1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=+RC[-5]&RC[-3]&RC[-1]"
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.End(xlToLeft).Select
Range("H1").Select
Selection.ClearContents
Selection.End(xlDown).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveCell.Range("A1:F2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
ActiveCell.Offset(4, 0).Range("A1:F1").Select
Range(Selection, Selection.End(xlUp)).Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.LargeScroll ToRight:=-1
Range("A5").Select
End Sub

- Cierras Visual basic
- En el Menú Herramientas seleccionas Macro, luego Macros... (O con ALT+F8)
- Seleccionas Opciones y colocas la letra i
- Pulsas Aceptar
- Cierras el cuadro de diálogo en el cuadrito rojo con la equis (x)
- Listo, ahora puedes hacer las pruebas pulsando CTRL+i
Un beso bella Astrid, [Me avisas cualquier cosa]
RCh.
"Viva Chávez"
Hola Richard, eres muy lindo. Mil gracias por tu apoyo.
Solo que me produjo un error en esta parte:
Selection.Delete Shift:=xlToLeft
No sé por que.
Disculpa la molestia.
Saludos y linda tarde
=)
Hermosa Astrid, espero que estés bien,
El ejemplo que te envié se basa en una tabla de datos cuyos títulos van desde A5 a F5 y cuyos datos van desde A6 hasta F8.
Crea un libro de pruebas con esas características y le grabas el código que te mande en Visual Basic.
Lo pruebas y me avisas...
De todas formas dame un correo para enviarte un ejemplo.
[email protected]
Un besote,
RCh.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas