Jump to content
a


  • Crear macros Excel

  • Posts

    • Sub Eliminar_Filas_1() Dim Filas As Integer Application.ScreenUpdating = False Sheets("Resultados exportados").Select col = "A" texto = Array( _ "QHP Standard 1", _ "QHP Standard 2", _ "QHP Standard 3", _ "QHP Standard 4", _ "QHP Standard 5") Application.ScreenUpdating = False For i = Range(col & Rows.Count).End(xlUp).Row To 1 Step -1 For t = 0 To UBound(texto) If LCase(Cells(i, col)) = LCase(texto(t)) Then Filas = Filas + 1 Rows(i).Delete Exit For End If Next Next Application.ScreenUpdating = True MsgBox Filas & " Filas eliminadas", vbInformation, "DAM" End Sub  
    • Hola! Prueba: Workbooks("BOOK1.XLS").Close ThisWorkbook.Close Saludos
    • Hola Amigos de AE. Estoy usando APPLICATION.QUIT para cerrar un archivo pero se cierran todos los archivos excel que estén abiertos. Cual comando puedo sustituir la acción y que no cierre los demás archivos abiertos. Gracias
    • Buenas tardes, tengo una planilla en donde voy trayendo datos de otras planillas (copio y pego) una vez que ya tengo toda la información, necesito que mediante una macro/formula se eliminen todas las filas en donde el primer dato (ubicado en la columna A) tiene el siguiente texto: QHP Standard 1,QHP Standard 2, QHP Standard 3, QHP Standard 4 y QHP Standard 5. He aplicado la siguiente Macro, pero no se como unificar que evalúe las 5 variables, por lo que he tenido que hacer 5 macros, y después hacer una para unirlas a todas. Quisiera saber si existe la posibilidad de hacer solo una y que tome las 5 variables de texto posible   Sub Eliminar_Filas_1() Sheets("Resultados exportados").Select col = "A" texto = "QHP Standard 1" ' valor = texto If IsNumeric(texto) Then valor = Val(texto) If IsDate(texto) Then valor = CDate(texto) ' Application.ScreenUpdating = False For i = Range(col & Rows.Count).End(xlUp).Row To 1 Step -1 If LCase(Cells(i, "A")) = LCase(valor) Then Rows(i).Delete End If Next Application.ScreenUpdating = True MsgBox "Filas eliminadas", vbInformation, "DAM" End Sub   Desde ya muchas gracias
    • Basta con añadir una condición más a la macro: Sub Acumular() Application.ScreenUpdating = False ActiveSheet.Copy after:=ActiveSheet For x = Range("E" & Rows.Count).End(xlUp).Row To 3 Step -1 i1 = InStrRev(Range("B" & x), " ") i2 = InStrRev(Range("B" & x - 1), " ") If i1 = 0 Then i1 = Len(Range("B" & x)) If i2 = 0 Then i2 = Len(Range("B" & x - 1)) If Left(Range("B" & x), i1) = Left(Range("B" & x - 1), i2) And _ Range("C" & x) = Range("C" & x - 1) Then '<----- Condición añadida ----------- Range("B" & x - 1) = Left(Range("B" & x - 1), i2) Range("G" & x - 1) = Range("G" & x - 1) + Range("G" & x) Rows(x).Delete End If Next Range("A1").Select End Sub  
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy