[Excel 2016] Archivando una fila según condición
ouska36
Mensajes publicados
3
Estado
Miembro
-
michel_m Mensajes publicados 18903 Fecha de registro Estado Colaborador Última intervención -
michel_m Mensajes publicados 18903 Fecha de registro Estado Colaborador Última intervención -
Bonjour à tous,
He recorrido el foro en busca de una solución para copiar/pegar una fila de la pestaña "Dashboard" a la pestaña "Archivos" cuando el valor de la columna "AD" es igual a "COMPLETE" (Excel 2016). La macro termina eliminando la fila archivada de la pestaña "Dashboard".
La solución que he encontrado (gracias a los contribuyentes) hace el trabajo hasta el pegado... la macro me pega la fila en la parte superior y sobrescribe la que fue archivada anteriormente...
Lo que deseo es un pegado que ingrese en la tabla "Archivos" a partir de la línea número 7 y que no sobrescriba las filas ya archivadas (posibilidad de archivar varias filas al mismo tiempo): Ya sea añadiendo las filas una debajo de la otra o, si no es complicado, insertar las nuevas filas archivadas en la parte superior de la tabla y desplazar las antiguas hacia abajo.
¿Pueden ayudarme, por favor, a corregir "mi" macro (no soy para nada un iniciado, estoy aprendiendo sobre la marcha):
Código:
Gracias por su ayuda.
Atentamente
He recorrido el foro en busca de una solución para copiar/pegar una fila de la pestaña "Dashboard" a la pestaña "Archivos" cuando el valor de la columna "AD" es igual a "COMPLETE" (Excel 2016). La macro termina eliminando la fila archivada de la pestaña "Dashboard".
La solución que he encontrado (gracias a los contribuyentes) hace el trabajo hasta el pegado... la macro me pega la fila en la parte superior y sobrescribe la que fue archivada anteriormente...
Lo que deseo es un pegado que ingrese en la tabla "Archivos" a partir de la línea número 7 y que no sobrescriba las filas ya archivadas (posibilidad de archivar varias filas al mismo tiempo): Ya sea añadiendo las filas una debajo de la otra o, si no es complicado, insertar las nuevas filas archivadas en la parte superior de la tabla y desplazar las antiguas hacia abajo.
¿Pueden ayudarme, por favor, a corregir "mi" macro (no soy para nada un iniciado, estoy aprendiendo sobre la marcha):
Código:
Sub Grupo13_Cliquer()
A = Worksheets("Dashboard").Cells(Rows.Count, 2).End(xlUp).Row
For i = A To 2 Step -1
If Worksheets("Dashboard").Cells(i, 30).Value = "COMPLETE" Then
Worksheets("Dashboard").Rows(i).copy Worksheets("Archives").Cells(Rows.Count, 1).End(xlUp)
Worksheets("Dashboard").Rows(i).EntireRow.Delete
End If
Next
End Sub
Gracias por su ayuda.
Atentamente
3 respuestas
-
Hola michel_m, hola ccm81,
Gracias por su ayuda.
Me propusieron en otro foro la siguiente solución que funciona muy bien:
Sub Grupo13_Cliquer()
Dim DashRow As Long
Dim ArchiveRow As Long
Dim i As Long
Dim plage As Range
DashRow = Worksheets("Dashboard").Cells(Rows.Count, 2).End(xlUp).Row
For i = DashRow To 7 Step -1
If Worksheets("Dashboard").Cells(i, 30).Value = "COMPLETE" Then
Set plage = Worksheets("Archives").Range("B6:B" & Cells(Rows.Count, 2).End(xlUp).Row)
ArchiveRow = plage.SpecialCells(xlCellTypeBlanks).Cells(1, 1).Row ' Permite verificar el número de fila objetivo
Worksheets("Dashboard").Rows(i).Copy
Worksheets("Archives").Cells(ArchiveRow, 1).PasteSpecial
Worksheets("Dashboard").Rows(i).EntireRow.Delete
End If
Next
End Sub
El único problema ahora es que la copia de las celdas se realiza fuera de la tabla cuando la tabla está llena:
-
Hola
Prueba estoSub Grupo13_Cliquer() A = Worksheets("Dashboard").Cells(Rows.Count, 2).End(xlUp).Row For i = A To 2 Step -1 If Worksheets("Dashboard").Cells(i, 30).Value = "COMPLETE" Then Worksheets("Dashboard").Rows(i).Copy Worksheets("Archives").Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) Worksheets("Dashboard").Rows(i).EntireRow.Delete End If Next End Sub
Cdlmnt -
Hola a todos,
¿Cómo estás CCM81? ;o)
Copiar toda una línea es inútil: ¿cuál es la última columna utilizada en "dashboard"?
¿Hay varios "completos" para transferir a la vez o solo uno?
--
Michel