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
(Para mayor visualización de la imagen, hacer click en la misma)
Elaborado por: Wily Chique
05/05/2012 a las 12:12 am
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
11/05/2012 a las 8:35 pm
Gracias Paul;
Strconv puede usar un segundo parámetro en tu caso sería :
cell.Value = StrConv (cell.Value, VbStrConv.vbProperCase)
Saludos
Fernando Santos
25/02/2018 a las 11:47 am
BUENAS TARDES NECESITO CALCULAR LA CANTIDAD DE PERSONAS DE UNA PROFESION COMO LO HARIA?
20/05/2018 a las 3:24 pm
Buenos días.
Y los puntos y las tíldes, el ucase no funciona en esos casos
Gracias.
20/05/2018 a las 3:30 pm
Perdón, estaba equivocado.
gracias nuevamente.
30/08/2019 a las 1:06 pm
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