Modificar formulario al crear columna código

He creado una nueva columna de nombre "CODIGO" con el que voy a identificar cada título y su información (creo que es mejor que identificar por número de fila). La voy a poner como columna "A" y los títulos que estaban en la columna "A" pasarán a la columna "B".

Comento esto porque ahora todo donde hacíamos referencia al número de fila ahora indicará el valor de la columna "CODIGO".

Necesitaría actualizar el vba del userform (las 2 macros, la del commandbutton1 y la del listbox1) para que en cada línea de código donde se haga referencia al número de fila ahora se haga referencia a la colmna "A" de nombre "CODIGO" y los títulos pasan a "B".

Envío correo a Dante Amor con archivo excel actualizado con la nueva columna.

1 Respuesta

Respuesta
1

H o l a:

Te anexo el código actualizado:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h1 = Sheets("titulos")
    titulo = UCase(TextBox1)
    If titulo = "" Then
        MsgBox "Introduce una palabra para buscar", vbExclamation, "BUSCAR"
        TextBox1.SetFocus
        Exit Sub
    End If
    '
    j = 2
    Set r = h1.Columns("B")
    Set b = r.Find(titulo, lookat:=xlPart)
    If Not b Is Nothing Then
        ncell = b.Address
        Do
            'detalle
            htit = UCase(h1.Cells(b.Row, "B"))
            If htit Like titulo Or _
               htit Like "* " & titulo Or _
               htit Like titulo & " *" Or _
               htit Like "* " & titulo & " *" Then
                ListBox1.AddItem h1.Cells(b.Row, "A")
                ListBox1.List(ListBox1.ListCount - 1, 1) = b.Value
                j = j + 1
            End If
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> ncell
    End If
End Sub
'
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    tit = ListBox1.List(ListBox1.ListIndex, 1)
    nuevo = InputBox("Escribe el nuevo nombre", "CAMBIAR NOMBRE", tit)
    If nuevo = "" Then Exit Sub
    cod = ListBox1.List(ListBox1.ListIndex, 0)
    Set h1 = Sheets("TITULOS")
    Set b = h1.Columns("A").Find(cod, lookat:=xlWhole)
    If Not b Is Nothing Then
        h1.Cells(b.Row, "B") = nuevo
    End If
    ListBox1.Clear
    CommandButton1_Click
    MsgBox "Actualización realizada", vbInformation, "ACTUALIZAR TÍTULO"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas