Concatener une chaine de caractères

Bonjour à tous,

Toujours dans mon dernier projet je voudrai ayant des noms et prénoms je voudrai sélectionner les 3 premiers caractères du Nom et les 2 premier caractères de chaque PR2NOM dans une cellule pour créer un code

Exp DUPONT François Narcisse Gilbert je voudrai que cela me donne" DUPFrNaGi"

Travaillant en USF je voudrai le transposer dans un Champ de mon Usf.

Si quelqu'un pouvait à réaliser ça se serait sympa.

Merci d'avance

Amicalement

Noel

Bonjour,

A mettre dans le module de ta Form. Je suppose ici que le nom est en A1 et les prénoms en B1, C1 et D1. Le résultat est afficher dans un TextBox nommé "TextBox1" :

Private Sub UserForm_Initialize()

    'nom en A1, prénoms en B1, C1 et D1, à adapter...
    TextBox1.Text = UCase(Left(Range("A1"), 3)) & _
                    UCase(Left(Range("B1"), 1)) & LCase(Mid(Range("B1"), 2, 1)) & _
                    UCase(Left(Range("C1"), 1)) & LCase(Mid(Range("C1"), 2, 1)) & _
                    UCase(Left(Range("D1"), 1)) & LCase(Mid(Range("D1"), 2, 1))

End Sub

Hervé.

Bonjour à tous

Bonjour Theze,

Je n'ai pas encore fait les essais. Je pense que ça fonctionne. Je sais qu'en fixant le résultat dans une colonne que je pourrai le récupérer dans un textbox de mon USF.

Est-ce que cette fonction peut-elle être calquer directement sur un textbox?

Je vais faire les essais je te tiendrai au courant.

Merci de ton aide

@+

Amicalement

Noel

Re Theze,

Je suis désolé. C'est pas tout à fait ce que je voulais.

Dans un USf j'ai un TextBox dans lequel je voudrai entrer Nom & Prénoms et je voudrai que dans un autre TextBox il me donne le résultat escompté.

Exp: Nom & Prénoms DUPONT André Lucien Philippe Jean

Exp résultat : DUPAnLuPhJe

Dans ta proposition il faut je crée une feuille avec Nom et Prénom en A1 et avoir en B1 "DUP" en C1 "An" etc... ça j'ai bien compris et de plus je donne la valeur de mon textbox le code que tu m'as fourni.

Merci de m'apporter ton aide.

@

Amicalement

Noel

Bonjour,

Ci-dessous fonction personnalisée à utiliser dans ton code.

A adapter avec tes TextBox

Option Explicit
Public Function Split_nom(Cel As String) As String
    Dim x
    Dim y As String
    Dim i As Byte
    If Cel = "" Then
        Split_nom = ""
        Exit Function
    End If
    x = Split(Cel, " ")
    y = Mid(x(0), 1, 3)
    For i = 1 To UBound(x)
        y = y + Mid(x(i), 1, 2)
    Next
    Split_nom = y
End Function

Bonjour,

Je n'avais pas bien compris, désolé !

Petite adaptation à ton cas (majuscules et minuscules) de la fonction de Jean-Eric :

Private Sub CommandButton1_Click()

    TextBox2.Text = Split_nom(TextBox1.Text)

End Sub

Public Function Split_nom(Texte As String) As String

    Dim x As String
    Dim y As String
    Dim i As Byte

    If Texte = "" Then

        Split_nom = ""
        Exit Function

    End If

    x = Split(Texte, " ")

    y = UCase(Mid(x(0), 1, 3))

    For i = 1 To UBound(x)

        y = y & UCase(Mid(x(i), 1, 1)) & LCase(Mid(x(i), 2, 1))

    Next

    Split_nom = y

End Function

Hervé.

Re,

Bonjour Hervé,

Pour info la fonction 'split' renvoie un tableau et doit être déclarée en variant, pas en string

Oups,

effectivement :

Dim x

et non :

Dim x As String

Hervé.

Bonjour à tous,

Bonjour Jean Eric,

Bonjour Theze,

Je vous remercie de l'aide que vous aviez bien voulu m'apporter.

J'ai testé ce bout de code ça fonctionne très bien

Encore un grand merci

@+

Amicalement

Noel

Rechercher des sujets similaires à "concatener chaine caracteres"