Excel Avanzado

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

Excel Avanzado

Comparar textos usando funciones (trim, UCase, LCase, etc)

| 6 comentarios

FUNCIONES PARA MANIPULAR CADENAS

Estas funciones ayudan a manipular cadenas de caracteres.

Las funciones TRIM elimina espacios vacíos de la derecha como de la izquierda de una cadena, ejemplo a =“ HOLA COMO ESTAS ”, esta cadena tiene 17 caracteres, esto es, porque se está contando los espacios en banco de la derecha como de la izquierda, usando la función TRIM eliminamos los espacios vacíos, TRIM(a), ahora esta cadena contiene 15 caracteres.

La Función LTRIM, elimina los espacios vacios de la izquierda de la cadena

La función RTRIM, elimina los espacios vacios de la derecha de la cadena

La función UCASE, transforma los caracteres de una cadena en mayúsculas

La función LCASE, transforma los caracteres de una cadena en minúsculas

La función LEN, cuenta la cantidad de caracteres de una cadena, los espacios vacios son considerados como un carácter más.

Función InStr, ayuda a buscar una cadena dentro de otra cadena, y muestra la posición de la cadena buscada

InStr (comienzo, Cadena donde buscar , La Cadena a buscar)

Ejemplo

a= “El mundo es ancho y ajeno”

InStr (a, ancho)

La respuesta será el número 13

Si no se especifica el comienzo, la búsqueda empieza de la ubicación cero

Ejemplos del uso de todas las funciones

Dibujo1 300x168 Comparar textos usando funciones (trim, UCase, LCase, etc)

Dibujo2 300x250 Comparar textos usando funciones (trim, UCase, LCase, etc)

(Para mayor visualización de la imagen, hacer click en la misma)

 Elaborado por: Wily Chique

6 comentarios

  1. Hola:
    Primero Gracias por la buena guia que aqui se encuentra. Despues de investigar para facilitar mi tarea en excel referente a cambiar de minusculas a mayusculas y viceversa en las celdas seleccionadas , logré escribir el código abajo escrito.

    Sub Minusculas()
    Set rango = Selection
    For Each cell In rango
    cell.Value = LCase(cell.Value)
    Next
    End Sub
    Sub Mayusculas()
    Set rango = Selection
    For Each cell In rango
    cell.Value = UCase(cell.Value)
    Next
    End Sub

    Sub Titulo()
    Set rango = Selection
    For Each cell In rango
    cell.Value = StrConv(cell.Value)
    End Sub

    Sub Minusculas y Sub Mayusculas funcionan OK (hasta tiene su boton cada macro), no es el caso de Sub Titulo, supongo que mi falla está en la línea
    cell.Value = StrConv(cell.Value)
    El objetivo es que el texto de LA CELDA SELECCIONADA o la celda seleccionada o LA ceLDa selECCionadA se convierta en el texto de La Celda Seleccionada

    Hago la aclaración que de programación mis habilidades se aproximan a CERO

    Saludos

    Paul

    • Gracias Paul;

      Strconv puede usar un segundo parámetro en tu caso sería :

      cell.Value = StrConv (cell.Value, VbStrConv.vbProperCase)

      Saludos

      Fernando Santos

  2. BUENAS TARDES NECESITO CALCULAR LA CANTIDAD DE PERSONAS DE UNA PROFESION COMO LO HARIA?

  3. Buenos días.

    Y los puntos y las tíldes, el ucase no funciona en esos casos

    Gracias.

    • Perdón, estaba equivocado.
      gracias nuevamente.

  4. buenas tardes necesito conectar a la base de datos de sql desde excel para al momento de copiar y pegar un codigo o identificador dentro de excel me apareca el prodcuto su precio y permita modificar el precio de venta y guarde esos datos dentro la base sql server como lo haria tengo esto dentro del modulo de excel pero me da error y no se xq

    Option Explicit
    Public CN As ADODB.Connection
    Dim CodAlt As String, _
    Descripcion As String, _
    Valor As Currency, _
    Status As String

    Dim Fila As Integer, _
    Final As Integer
    Function Connect(Server As String, User As String, Pass As String, Database As String) As Boolean

    Set CN = New ADODB.Connection
    On Error Resume Next
    With CN
    .ConnectionString = "Provider=SQLOLEDB.1;" & _
    "Password=" & Pass & ";" & _
    "Persist Security Info=True;" & _
    "User ID=" & User & ";" & _
    "Initial Catalog=" & Database & ";" & _
    "Data Source=" & Server
    .Open
    End With
    If CN.State = 0 Then
    Connect = False
    Else
    Connect = True
    End If
    End Function
    Function Query()
    Debug.Print SQL
    Dim SQL As String
    Dim RS As ADODB.Recordset
    Dim Field As ADODB.Field
    Dim Col As Long, _
    NumReg As Integer

    Set RS = New ADODB.Recordset
    Final = GetUltimoR(Hoja1)

    For Fila = 8 To Final
    CodAlt = Hoja1.Cells(Fila, 1)
    Descripcion = Hoja1.Cells(Fila, 2)
    Valor = Hoja1.Cells(Fila, 3)

    SQL = "select count (*) from iys_items where scg_epr_codigo '01' and iys_itm_codigo_alt=';" & Trim(UCase(CodAlt)) & "'"
    RS.Open SQL, CN

    If RS.State Then
    NumReg = RS.Fields
    Debug.Print SQL
    If NumReg > 0 Then
    SQL = "update iys_items set iys_itm_ult_costo = " & iys_itm_ult_costo & " where scg_epr_codigo '01' and iys_itm_codigo_alt= ';" & Trim(UCase(CodAlt)) & "'"
    RS.Open SQL, CN
    If RS.State Then
    Hoja1.Cells(Fila, 4) = "Proceso Ok"
    Else
    Hoja1.Cells(Fila, 4) = "No Procesado"
    End If
    End If
    Else
    Hoja1.Cells(Fila, 4) = "No existe Codigo"
    End If
    smsError
    Next
    End Function
    Function Disconnect()
    CN.Close
    End Function
    Public Sub run()
    Dim SQL As String
    Dim Connected As Boolean
    Connected = Connect("CCRUZ\DESARROLLO", "sa", "1234", "db_finpac")
    If Connected Then
    Call Query
    Call Disconnect
    Else
    MsgBox "No podemos Conectarnos!"
    End If
    End Sub

    Public Function GetUltimoR(Hoja As Worksheet) As Integer
    GetUltimoR = GetNuevoR(Hoja) - 1
    End Function
    Public Function GetNuevoR(Hoja As Worksheet) As Integer
    Dim Fila As Integer
    Fila = 8
    Do While Hoja.Cells(Fila, 1) ""
    Fila = Fila + 1
    Loop
    GetNuevoR = Fila
    End Function

Deja una respuesta

Los campos requeridos estan marcados con *.