Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Unir contenido de Celdas

| 1 comentario

Esta aplicación es básica y práctica cuando necesitas unir los valores de muchas celdas, si bien es cierto la función concatenar cumple con este cometido resulta engorroso usarla cuando tienes mas de 5 contenidos de celdas por unir. Con esta función creada en macros ahorraras tiempo, solo necesitas seleccionar las celdas a unir y la función realiza lo demás.

Por ejemplo si manejas una base de datos personales, que contiene nombre, apellidos, DNI, edad, distrito, y por algún motivo requieres que estos datos sean generados en una sola línea  y no separados por celdas, usas la función CONCATENARTODO, luego procedes a seleccionar los datos y listo!. Esta nueva celda con los datos unidos podrías copiarla a una hoja  Word y tendrás un listado de personas!.

Esta función es práctica y puedes usarla en distintos casos. Solo cambia el contenido de los datos y acomódalo a tu necesidad.

Pruébalo!

Ana Ibáñez.

UNIR DATOS

Un comentario

  1. tengo este macro para actulizar datos.
    no puedo resolver detalle importante y me di cuenta tarde.
    cuando actulizo un dato los demas datos se vulven numeros enteros alguien me puede ayudar x favor, nesecito que los datos no se vulvan numeros enteros gracias y saludos para el foro.

    Public control As Integer
    Public filalibre As Integer
    Public ubica As String

    Private Sub CommandButton1_Click()
    Sheets("hoja1").Select
    If control > 0 Then
    'actulizar datos
    Range(ubica).Value = TextBox1
    Range(ubica).Offset(0, 1).Value = TextBox2
    Range(ubica).Offset(0, 2).Value = Val(TextBox3)
    Range(ubica).Offset(0, 3).Value = Val(TextBox4)
    Range(ubica).Offset(0, 4).Value = Val(TextBox5)
    Range(ubica).Offset(0, 6).Value = Val(TextBox6)
    Range(ubica).Offset(0, 8).Value = Val(TextBox7)
    Range(ubica).Offset(0, 10).Value = Val(TextBox8)
    Range(ubica).Offset(0, 12).Value = Val(TextBox9)
    Range(ubica).Offset(0, 18).Value = Val(TextBox10)
    Range(ubica).Offset(0, 16).Value = Val(TextBox11)
    Range(ubica).Offset(0, 14).Value = Val(TextBox12)
    Range(ubica).Offset(0, 20).Value = Val(TextBox13)
    Range(ubica).Offset(0, 22).Value = Val(TextBox14)
    Range(ubica).Offset(0, 24).Value = Val(TextBox15)
    Range(ubica).Offset(0, 27).Value = Val(TextBox16)
    Range(ubica).Offset(0, 26).Value = Val(TextBox17)
    Range(ubica).Offset(0, 29).Value = Val(TextBox18)

    Range(ubica).Offset(0, 7).Value = Val(TextBox19)
    Range(ubica).Offset(0, 9).Value = Val(TextBox20)
    Range(ubica).Offset(0, 11).Value = Val(TextBox21)
    Range(ubica).Offset(0, 13).Value = Val(TextBox22)
    Range(ubica).Offset(0, 15).Value = Val(TextBox23)
    Range(ubica).Offset(0, 17).Value = Val(TextBox24)
    Range(ubica).Offset(0, 19).Value = Val(TextBox25)
    Range(ubica).Offset(0, 28).Value = Val(TextBox26)
    Range(ubica).Offset(0, 21).Value = Val(TextBox27)
    Range(ubica).Offset(0, 23).Value = Val(TextBox28)
    Range(ubica).Offset(0, 25).Value = Val(TextBox29)
    Range(ubica).Offset(0, 5).Value = Val(TextBox30)
    control = 0
    Else
    ' crear nuevos datos
    Cells(filalibre, 1).Value = TextBox1
    Cells(filalibre, 2).Value = TextBox2
    Cells(filalibre, 3).Value = CCur(TextBox3)
    Cells(filalibre, 4).Value = CCur(TextBox4)
    Cells(filalibre, 5).Value = Val(TextBox5)
    Cells(filalibre, 7).Value = Val(TextBox6)
    Cells(filalibre, 9).Value = Val(TextBox7)
    Cells(filalibre, 11).Value = Val(TextBox8)
    Cells(filalibre, 13).Value = Val(TextBox9)
    Cells(filalibre, 19).Value = Val(TextBox10)
    Cells(filalibre, 17).Value = Val(TextBox11)
    Cells(filalibre, 15).Value = Val(TextBox12)
    Cells(filalibre, 21).Value = Val(TextBox13)
    Cells(filalibre, 23).Value = Val(TextBox14)
    Cells(filalibre, 25).Value = Val(TextBox15)
    Cells(filalibre, 28).Value = Val(TextBox16)
    Cells(filalibre, 27).Value = Val(TextBox17)
    Cells(filalibre, 30).Value = Val(TextBox18)

    Cells(filalibre, 8).Value = Val(TextBox19)
    Cells(filalibre, 10).Value = Val(TextBox20)
    Cells(filalibre, 12).Value = Val(TextBox21)
    Cells(filalibre, 14).Value = Val(TextBox22)
    Cells(filalibre, 16).Value = Val(TextBox23)
    Cells(filalibre, 18).Value = Val(TextBox24)
    Cells(filalibre, 20).Value = Val(TextBox25)
    Cells(filalibre, 29).Value = Val(TextBox26)
    Cells(filalibre, 22).Value = Val(TextBox27)
    Cells(filalibre, 24).Value = Val(TextBox28)
    Cells(filalibre, 26).Value = Val(TextBox29)
    Cells(filalibre, 6).Value = Val(TextBox30)

    End If
    TextBox1 = Empty
    TextBox2 = Empty
    TextBox3 = Empty
    TextBox4 = Empty
    TextBox5 = Empty
    TextBox6 = Empty
    TextBox7 = Empty
    TextBox8 = Empty
    TextBox9 = Empty
    TextBox10 = Empty
    TextBox11 = Empty
    TextBox12 = Empty
    TextBox13 = Empty
    TextBox14 = Empty
    TextBox15 = Empty
    TextBox16 = Empty
    TextBox17 = Empty
    TextBox18 = Empty
    TextBox1.SetFocus
    End Sub

    Private Sub CommandButton2_Click()
    Unload UserForm1
    End Sub

    Private Sub CommandButton3_Click()
    TextBox1 = Empty
    TextBox2 = Empty
    TextBox3 = Empty
    TextBox4 = Empty
    TextBox5 = Empty
    TextBox6 = Empty
    TextBox7 = Empty
    TextBox8 = Empty
    TextBox9 = Empty
    TextBox10 = Empty
    TextBox11 = Empty
    TextBox12 = Empty
    TextBox13 = Empty
    TextBox14 = Empty
    TextBox15 = Empty
    TextBox16 = Empty
    TextBox17 = Empty
    TextBox18 = Empty
    TextBox19 = Empty
    TextBox20 = Empty
    TextBox21 = Empty
    TextBox22 = Empty
    TextBox23 = Empty
    TextBox24 = Empty
    TextBox25 = Empty
    TextBox26 = Empty
    TextBox27 = Empty
    TextBox28 = Empty
    TextBox29 = Empty
    TextBox30 = Empty

    TextBox1.SetFocus
    End Sub

    Private Sub TextBox1_AfterUpdate()
    Sheets("hoja1").Select
    filalibre = Range("a5").End(xlDown).Offset(1, 0).Row
    ' la variable filalibre guarda el nro, de la primer celda vacia.
    control = 0
    dato = TextBox1
    rango = "a5:a" & filalibre
    Set midato = ActiveSheet.Range(rango).Find(dato, LookIn:=xlValues, lookat:=xlWhole)
    If (midato) Is Nothing Then
    MsgBox "NO EXISTE LA FUNDACION"
    Else
    ubica = midato.Address(False, False)
    TextBox2.Value = Range(ubica).Offset(0, 1).Value
    TextBox3.Value = Range(ubica).Offset(0, 2).Value
    TextBox4.Value = Range(ubica).Offset(0, 3).Value
    TextBox5.Value = Range(ubica).Offset(0, 4).Value
    TextBox6.Value = Range(ubica).Offset(0, 6).Value
    TextBox7.Value = Range(ubica).Offset(0, 8).Value
    TextBox8.Value = Range(ubica).Offset(0, 10).Value
    TextBox9.Value = Range(ubica).Offset(0, 12).Value
    TextBox10.Value = Range(ubica).Offset(0, 18).Value
    TextBox11.Value = Range(ubica).Offset(0, 16).Value
    TextBox12.Value = Range(ubica).Offset(0, 14).Value
    TextBox13.Value = Range(ubica).Offset(0, 20).Value
    TextBox14.Value = Range(ubica).Offset(0, 22).Value
    TextBox15.Value = Range(ubica).Offset(0, 24).Value
    TextBox16.Value = Range(ubica).Offset(0, 27).Value
    TextBox17.Value = Range(ubica).Offset(0, 26).Value
    TextBox18.Value = Range(ubica).Offset(0, 29).Value

    TextBox19.Value = Range(ubica).Offset(0, 7).Value
    TextBox20.Value = Range(ubica).Offset(0, 9).Value
    TextBox21.Value = Range(ubica).Offset(0, 11).Value
    TextBox22.Value = Range(ubica).Offset(0, 13).Value
    TextBox23.Value = Range(ubica).Offset(0, 15).Value
    TextBox24.Value = Range(ubica).Offset(0, 17).Value
    TextBox25.Value = Range(ubica).Offset(0, 19).Value
    TextBox26.Value = Range(ubica).Offset(0, 28).Value
    TextBox27.Value = Range(ubica).Offset(0, 21).Value
    TextBox28.Value = Range(ubica).Offset(0, 23).Value
    TextBox29.Value = Range(ubica).Offset(0, 25).Value
    TextBox30.Value = Range(ubica).Offset(0, 5).Value

    control = 1
    MsgBox "CARGANDO"
    End If
    Set midato = Nothing

    End Sub

Deja una respuesta

Los campos requeridos estan marcados con *.