domingo

Listas desplegables dinamicas sin Desref y con Indice

Hola amigos
Pues bien se sabe que las listas desplegables dinamicas se han elaborado con la funcion DESREF y otras como CONTAR, he logrado una forma de hacerlas sin estas funciones, ya que DESREF es volatil (ralentiza la PC cuando la utilizamos mucho), y una de nuestras aliadas para lograrlo se llama INDICE, con esto evitaremos el recalculo y ganamos mas recurso en nuestra PC

Adjunto el archivo para que se den una idea y a lo mejor lo necesitan en un futuro

Cualquier mejora o aporte es bienvenido

Visiten este tema en ayudaexcel para que despejen aun mas alguna duda: Validacion dinamica sin DESREF

Ahh este ejemplo que veran no es unico, ya que se pueden armar las formulas segun la necesidad del caso



Saludos y que esten bien

Copiar hoja con INPUTBOX

Hola de nuevo!
En una ocacion en un foro, de los cuales frecuento, me encontre con un tema, en el cual un usuario necesitaba ir creando hojas de acuerdo a los meses del año, y que este a su vez eliminara de la hoja a copiar, ciertas filas con frases especificas.

Pues bien le subi una macro sencilla, pero lo que llama la atencion es como se vuelve util el cuadro de dialogo o Application.InputBox, ya que con este no necesitamos ninguna celda o algun espacio dentro de una hoja para darle informacion a nuestras macros, tambien se vuelve util cuando queremos referenciar un rango, ingresar texto o numeros...etc

Pegarla en un modulo y luego crear un boton para la misma

Sub copiarh()
    
    Dim hj As Worksheet, ulfi As Integer
    
    Application.ScreenUpdating = False
    
    hoj = Application.InputBox("Nombre de la hoja", "Copiar hoja", Type:=2)
    
    ActiveSheet.Copy After:=Sheets(Sheets.Count)
    With ActiveSheet
        .Name = hoj
        .Shapes(1).Delete
    End With
    
    ulfi = Cells(Rows.Count, 1).End(xlUp).Row
    For x = ulfi To 18 Step -1
        If Cells(x, 2) = "B" Then Rows(x).Delete
        If Cells(x, 2) = "M/S" Then Rows(x).Delete
    Next
    
    Range(Cells(18, 2), Cells(ulfi, 2)).ClearContents
    Range("A1").Select
    
    Application.ScreenUpdating = True
        
End Sub


Adjunto tambien el archivo para pruebas

Espero le sirva a mas de uno y cualquier comentario hacerlo saber


Saludos desde Honduras