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 : )
Respuesta de patanrisitas
1
1
patanrisitas, Tengo experiencia en macros, funciones avanzadas y algo de...
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.