Jump to content

Jose BN

Members
  • Content Count

    209
  • Joined

  • Last visited

  • Days Won

    8

Posts posted by Jose BN

  1. Hace 8 horas, howling dijo:

    hola antoni gracias por estar atento a mi consulta claro que tratare de explicar, quisiera empezar preguntando si una imagen puede tener la funcion de boton  en un userform, es decir, insertar una imagen con el cuadro de herramientas de vba de excel y esa imagen que cumpla cumpla la funcion de boton de comando y al darle click que comience la macro

    dejo un archivo para saber si me pude explicar bien se agradece de ante amano  cualquier ayuda o comentario  

    Libro1.xlsm 270.25 kB · 0 descargas

    howling

    Solo debes dar clic sobre este mismo, ahí escribes el código de la macro y todo debe andar bien.

    Saludos

  2. Hace 1 hora, Leonardo Briceño dijo:

    Hola @Haplox @Antoni, pues vean que esa propuesta de ejecutar la macro directamente me gusta bastante, me parece genial. Pues el usuario no tiene que estar pendiente de hacer click en un botón (y en este caso lo elimino de la hoja). Mi idea era justamente recordar eso al usuario. De todas maneras será posible incluir en el código un msgbox que le pregunte al usuario si está seguro de que la información cargada es la correcta, de manera que tenga una oportunidad de revisar antes de ejecutar la macro…..si está seguro se ejecuta la macro y si no, no ejecutar la macro y dejar la celda correspondiente de la columna E en blanco para que luego se inicie nuevamente.

    Gracias!!

    A ver si es lo que buscas:

    Dim Resp As Byte
    Resp = MsgBox("La información suministrada es correcta? Deseas continuar con la ejecución ?", _
        vbQuestion + vbYesNo, "ExcelJB")
    If Resp = vbYes Then
        MsgBox "Se eligió continuar...", vbExclamation, " ExcelJB "
        'Aquí se ejecutaría el código
    MsgBox "Proceso realizado de forma exitosa!", , "Administrador"
    Else
        MsgBox "Se eligió cancelar...", vbCritical, " ExcelJB "
    End If

    Saludos

    J

  3. Silvia 

    Creo que itz tiene razón en parte de no funcionar lo que le indicas, esto porque ella debe notar que la forma como se visualizan los datos no es la misma como esta definido en la celda, lo que significa que lo que se busca no es exactamente lo mismo (en cuanto a los datos con los que se cuenta), p.e esto puede ser algun espacio o caracter no visible a simple vista. Esto puede suceder cuando se extraen datos desde la web, esta es una posible razón para que una busqueda o las funciones de busquedad no encuentren el dato.

    Por ejemplo si buscas 5/1/2020 se posicionará donde encontró  la coincidencia

    :image.thumb.png.0106d2a1d065b4ff2d32e241d301231b.png

    Pero si digitas 05/01/2020 te saltará el error:

    image.thumb.png.8dcd8b08baba05dee86bdb700189ff16.png

     

    image.thumb.png.504b7da0b7541b0cc910a168e48a0de3.png

  4. Hace 7 horas, paikerr dijo:

    Hola compañeros del foro,

     

    Me gustaría que al seleccionar una hoja, no se pueda seleccionar ninguna celda de la hoja.

    Para ello, estoy probando con el método "ActiveSheet.EnableSelection = xlNoSelection", pero no me funciona.

    En cambio si protegemos la hoja, entonces si que funciona correctamente:

    
    ...  
          With ActiveSheet
             .Protect Password:=contraseña, _
                      DrawingObjects:=True, _
                      Contents:=True
             .EnableSelection = xlNoSelection
          End With
    ...

    Pero yo no quiero proteger la hoja, simplemente quiero que no se pueda seleccionar ninguna celda (si es que se puede hacer eso...).

    Agradezco cualquier tipo de ayuda. Un saludo.

    Te podrá ayuda en algo:

    http://www.cpearson.com/excel/unselect.aspx

  5. Hace 9 horas, Gerson Pineda dijo:

    Hola a todos

    No pasa nada, solo usa tus lentes y ya :D

    Otra opción es usar el evento Layout del formulario, tal que:

    
    Private Sub UserForm_Layout()
    
    With UserForm1
        .Left = 100
        .Top = 300
        '.Width
        '.Height
    End With
    
    End Sub

     

    Saludos! 

    Siempre tienes un truco bajo la manga! al carajo  los lentes que pase a comprar entonces....

    Saludos

    J

  6. Buenos días,

     

    Amigos de foro quisiera solicitar la colaboración de ustedes para resolver lo siguiente, estoy intentando aplicar un filtro a listbox en un form(Userform5), en el cual los criterios del filtro se definen en: mes(combobox1) y día(combobox2), esto sin recurrir al uso de un  botón, respetando el encabezado de cada columna y que los valores de ambos combobox sean valores únicos.

    Hace pocos días JSDJSD me dío un ejemplo de este tipo de filtro por medio de un combobox pero he sido incapaz de agregar el segundo, adjunto el archivo por si pueden colaborar.

     

    Saludos

    J

     

    Consulta filtro combobox.xlsb

  7. Sub nomuestra()
    Application.DisplayFormulaBar = False
    ExecuteExcel4Macro ("show.toolbar(""ribbon"",0)")
    With ActiveWindow
    .DisplayHeadings = False
    .DisplayHorizontalScrollBar = False
    .DisplayVerticalScrollBar = False
    .DisplayWorkbookTabs = False
    .DisplayGridlines = False
    End With
    End Sub

    Por si te puede aportar algo.

    Sub nomuestra()

    ExecuteExcel4Macro ("show.toolbar(""ribbon"",0)")

    End Sub

  8. En 19/7/2020 at 1:04 , JSDJSD dijo:

    No olvides agradecer a quien te ayuda o intenta ayudar, y en este foro es mediante el corazoncito que hay en la parte inferior derecha

     

    JSDJSD intentand adaptar tu aporte a una necesidad

    Private Sub ComboBox1_Change()
    Dim Filas, i, ii As Integer
    
    With Hoja2
        Filas = .Range("C" & Rows.Count).End(xlUp).Row
        ListBox1.RowSource = ""
        If ComboBox1.Value = "" Then Exit Sub
        ListBox1.AddItem
        For i = 6 To Filas
            If .Cells(i, 6) = ComboBox1 Then
                Me.ListBox1.AddItem .Cells(i, 1)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = .Cells(i, 1).Offset(0, 1) ' Aqui hay que configurar la columa (Columna 2)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = .Cells(i, 1).Offset(0, 2)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = .Cells(i, 1).Offset(0, 3)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = .Cells(i, 1).Offset(0, 4)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = .Cells(i, 1).Offset(0, 5)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = .Cells(i, 1).Offset(0, 6)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = .Cells(i, 1).Offset(0, 7)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = .Cells(i, 1).Offset(0, 8)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = .Cells(i, 1).Offset(0, 9)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 10) = .Cells(i, 1).Offset(0, 10)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 11) = .Cells(i, 1).Offset(0, 11)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 12) = .Cells(i, 1).Offset(0, 12)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 13) = .Cells(i, 1).Offset(0, 13)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 14) = .Cells(i, 1).Offset(0, 14)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 15) = .Cells(i, 1).Offset(0, 15)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 16) = .Cells(i, 1).Offset(0, 16)
            Else
            'No hacer nada
            End If
        Next i
    
        For ii = 0 To 4
            ListBox1.List(0, ii) = .Cells(1, ii + 1)
        Next ii
    
    End With
    
    End Sub
    
    
    Private Sub UserForm_Initialize()
    
    
    With Me.ListBox1
        .ColumnCount = 16
        .ColumnWidths = "20 pt; 120 pt; 50 pt; 60 pt"
        .RowSource = "'" & Hoja2.Name & "'!A5:P" & Hoja2.Range("A" & Rows.Count).End(xlUp).Row
    End With
    
     ComboBox1.RowSource = "'" & Hoja2.Name & "'!C5:C" & Hoja2.Range("C" & Rows.Count).End(xlUp).Row
    
    
    
    End Sub
    

    No he sido capaz de comprender esta parte:

    For ii = 0 To 4
            ListBox1.List(0, ii) = .Cells(1, ii + 1)
        Next ii

    Podrías corregir mis errores.

     

    Saludos

    JB

  9. Hace 56 minutos , DiegoLG dijo:

    Checa el archivo:

    
    Sub Copia()
    Application.ScreenUpdating = False
    Dim Uf As String
    Dim Ul As Long
    
        Ul = Hoja2.Range("G" & Rows.Count).End(xlUp).Row + 2
                Uf = Hoja1.Range("G" & Rows.Count).End(xlUp).Row
                    Hoja1.Range("A2:N" & Uf).AutoFilter Field:=7, Criteria1:=">0"
                        Hoja1.Range("A3:N10000").SpecialCells(xlCellTypeVisible).Copy Destination:=Hoja2.Cells(Ul, 1)
    
    Hoja1.Range("A3:N" & Uf).EntireRow.Delete
    Hoja1.Range("A2:N" & Uf).AutoFilter
    
    Application.ScreenUpdating = True
    End Sub

    Diego igual muchas gracias! 

    Copia de Consulta copiado.xlsm 39.44 kB · 2 descargas

     

  10. Buenos días!

     

    Amigos del foro quisiera solicitarles el apoyo para resolver el siguiente problema, necesito una macro que me permita copiar de una hoja a otra si se cumplen los siguientes criterios:

    • Si el valor en la columna G de la hoja Diario es mayor que cero, se copien los datos de Diario(hasta la ultima celda con datos) a la hoja BD pegando los datos en la ultima celda vacía de BD.
    • Al copiar aquellos valores mayores a cero en la hoja BD quitarlos de la hoja Diario, solamente dejando los datos que contengan cero o se encuentren vacios en la columna G de la hoja Diario.

    Lo estuve intentando de la siguiente manera:

    Sub copiar2()
    
        Set J1 = Sheets("Diario")
        Set J2 = Sheets("BD")
        j = J2.Range("A" & Rows.Count).End(xlUp).Row + 1
        For i = 3 To 79
            If J1.Cells(i, "G") > 0 Then
                J2.Cells(i, "A") = J1.Cells(i, "A")
                J2.Cells(i, "B") = J1.Cells(i, "B")
                J2.Cells(i, "C") = J1.Cells(i, "C")
                J2.Cells(i, "D") = J1.Cells(i, "D")
                J2.Cells(i, "E") = J1.Cells(i, "E")
                J2.Cells(i, "F") = J1.Cells(i, "F")
                J2.Cells(i, "G") = J1.Cells(i, "G")
                J2.Cells(i, "H") = J1.Cells(i, "H")
                J2.Cells(i, "I") = J1.Cells(i, "I")
                J2.Cells(i, "J") = J1.Cells(i, "J")
                J2.Cells(i, "K") = J1.Cells(i, "K")
                J2.Cells(i, "L") = J1.Cells(i, "L")
                J2.Cells(i, "M") = J1.Cells(i, "M")
                J2.Cells(i, "N") = J1.Cells(i, "N")
            End If
        Next
        MsgBox "Valores copiados"
    End Sub

    Saludos

    JB

    Consulta copiado.xlsm

  11. Hace 3 minutos , JSDJSD dijo:

    Prueba el adjunto y comentaGIF.thumb.gif.b881a6362b1223f65182b2bafde720b7.gif

    Prueba Ribbon.xlsm 30.03 kB · 0 descargas

    JSDJSD entonces solamente es identificar (MacroBoton1,2,3,4,5) y asignar la macro o el userform.show, cierto?

    Una ultima consulta como agregó un combobox ? actualmente los tengo incrustados en la hoja, es posible meterlos en el Ribbon?

    image.png.00bfa3ea6a5784b80e7b3906d12d5d00.png

    Estos tiene la siguiente función:

    Sub CargarCombos()
        Dim j As Integer
        Hoja3.ComboBox1.Clear
        Hoja3.ComboBox2.Clear
        'Recupera dados de coluna A. ..
        For j = 8 To Hoja1.Range("A65536").End(xlUp).Row
            Hoja3.ComboBox1 = Hoja1.Range("A" & j)
            Hoja3.ComboBox2 = Hoja1.Range("A" & j)
            '...e filtrar duplicados
            If Hoja3.ComboBox1.ListIndex = -1 Then Hoja3.ComboBox1.AddItem Hoja1.Range("A" & j)
            If Hoja3.ComboBox2.ListIndex = -1 Then Hoja3.ComboBox2.AddItem Hoja1.Range("A" & j)
        Next j
        Hoja3.ComboBox1.ListIndex = -1
        Hoja3.ComboBox2.ListIndex = -1
    End Sub

    Saludos

  12. Hace 21 horas, JSDJSD dijo:

    Sube tu archivo y te lo implemento, debes crear un módulo y desde este llamar tu macro, como por ejemplo para llamar 

    dentro de dicho módulo debes poner los siguiente:

    Public Sub MacroBoton1(Control As IRibbonControl)
    Formulario.Show
    End Sub

    Agradezco JSDJSD tu apoyo adjunto el fichero, no contiene ninguna macro especifica. De momento estoy aprendido a conocer la herramienta y como comentaba. Tengo ciertas dudas sobre la posibilidad de agregar controles como actualmente se realiza en vba. Por mi parte continuaré estudiando.

    Saludos

    JB

    Prueba Ribbon.xlsm

×
×
  • Create New...

Important Information

Privacy Policy