By ttacco22@gmail.com el lunes 19 de marzo de 2018
Publicado en Excel
Respuestas 0
Likes 0
Vistas 5K
Votos 0
Hola, en el pasado usé VBA para hacer ciertas cosas en Office y he olvidado más de lo que recuerdo. Dicho esto, estoy usando Microsoft Windows 7 Home Premium con una versión anterior de Microsoft Office Excel (estoy pensando en 2003).

Tengo una hoja de cálculo que estoy usando para rastrear mi colección de medios de mp4 y demás. Al usar un comando dir en el cuadro de comando para generar un archivo txt que analizo para representar las celdas a con una ruta a los medios (principalmente mp4s) y el nombre de archivo real.mp4. en todo el rango A:I

Lo que estoy tratando de lograr es mover cada fila en un rango que tiene una celda con un nombre de archivo.mp4 a otra hoja.
Este es mi código hasta ahora:

SubmovimientoMp4()
'Private Sub Worksheet_Change (ByVal Target As Range) [[use esto como línea superior para ejecutar automáticamente si lo desea]]
Dim xRg como rango
Dim xCell como rango
Dim I tan largo
Dim J tan largo
Dim K tan largo
I = Hojas de cálculo ("Hoja1").UsedRange.Rows.Count
J = Hojas de cálculo ("Hoja2").UsedRange.Rows.Count
Si J = 1 Entonces
Si Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Entonces J = 0
Si terminar
Establecer xRg = Worksheets("Hoja1").Rango("A:I") '[[RANGO QUE CONTIENE NOMBRE DE ARCHIVO.MP4 CAMBIA DINÁMICAMENTE]]
On Error Resume Next
Application.ScreenUpdating = False
Para K = 1 Para xRg.Count
Si CStr(xRg(K).Valor) = ".mp4" Entonces
xRg(K).EntireRow.Copiar destino:=Hojas de trabajo("Hoja2").Rango("A" & J + 1)
xRg(K).EntireRow.Delete
Si CStr(xRg(K).Valor) = ".mp4" Entonces
k = k - 1
Si terminar
J = J + 1
Si terminar
Siguiente
Application.ScreenUpdating = True
End Sub

Nuevamente, el código anterior funciona si una sola celda en el rango A: I contiene .mp4, pero no moverá la fila si hay caracteres antes de .mp4 (como la mayoría de los nombres de archivo) ExcelVBAEjemplo2.jpg

Tal vez necesite buscar las celdas en el rango que cambia dinámicamente para la extensión .mp4 y, cuando la encuentre, mueva toda la fila a la Hoja 2. Sé que solía usar el comando a para buscar una cadena para ciertos caracteres y operar en ellos en consecuencia, sin embargo, No puedo recordar qué o cómo lo hice.

Disculpas por la extensión de la publicación, pero quería ser lo más claro posible sobre lo que deseo en lugar de ir y venir con explicaciones. He adjuntado un archivo adjunto de un ejemplo de lo que estoy trabajando.

Me gustaría decir que adapté el código de una publicación aquí:

https://www.extendoffice.com/documents/excel/3723-excel-move-row-to-another-sheet-based-on-cell-value.html?page_comment=1

Y finalmente, me gustaría agregar que ustedes están haciendo un gran servicio a la comunidad del mundo. ¡Gracias desde el fondo de mi corazón, alma y mente!
Ver publicación completa