découper un mot et mettre lettres dans case

Alguiche

XLDnaute Junior
Bonjour à tous,

D'abord un grand merci à tous ceux qui contribuent au forum dans lequel je puise beaucoup et qui m'a fait apprendre plein de choses. J'ai toutefois un problème que je n'arrive pas à résoudre et appelle à l'aide.

A l'aide de deux textbox d'un userform je saisi un nom et un prénom que je dois placer dans un formulaire à imprimer. Mon problème est que je dois placer chaque lettre de ces deux éléments réunis dans les cases d'un tableau de deux lignes sur dix colonnes. Donc comment découper ces deux éléments et les introduire dans chaque case de cette grille horizontalement et que si le total nom+espace+prénom fait plus de 20 caractères n'écrire que l'initiale du prénom, tout cela en majuscule. Je devine qu'il faudrait utiliser des commandes tel len left count et faire une boucle, mais là je rame complètement. Merci d'avance au valeureux excellien qui pourra me donner un coup de main.
 

Hervé

XLDnaute Barbatruc
Bonsoir alguiche, creepy, le forum

en attendant la pièce jointe, une proposition.

ayant la flemme de faire un userform ( :) ) j'ai simulé les textbox par les cellules k1 et L1.

Ceci est renvoyé de a1 à j10
Sub Bouton1_QuandClic()
Dim prenom As String
Dim nom As String
Dim texte As String
Dim i As Byte, j As Byte, l As Byte

prenom = Range('K1')
nom = Range('L1')

If Len(prenom) + Len(nom) < 20 Then
&nbsp; &nbsp; texte = prenom & ' ' & nom
Else
&nbsp; &nbsp; texte = Left(prenom, 1) & ' ' & nom
End If
&nbsp; &nbsp; j = 1
Do While j < 3
&nbsp; &nbsp; i = i + 1
&nbsp; &nbsp; l = l + 1
&nbsp; &nbsp; Cells(j, i) = UCase(Mid(texte, l, 1))
&nbsp; &nbsp;
If i = 10 Then j = j + 1: i = 0
Loop
End Sub

salut
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir, Alguiche, Creepy, Hervé, bonsoir le Forum,

En pièce jointe une porposition qui devrait correspondre à ton problème.
[file name=Alguiche.zip size=15538]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Alguiche.zip[/file]
 

Pièces jointes

  • Alguiche.zip
    15.2 KB · Affichages: 79

andré

XLDnaute Barbatruc
Salut Alguiche, Hervé, Creepy, Robert, ... et les autres,

Pour ceux qu'une solution au moyen d'une seule formule pourrait intéresser (à copier vers la droite et vers le bas).

Ândré. [file name=Alguiche_V1.zip size=2368]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Alguiche_V1.zip[/file]
 

Tibo

XLDnaute Barbatruc
Salut André, le forum,

Plus court encore :

En A1 : le mot à décomposer

En B1, C1,etc... : =STXT($A1;COLONNE()-1;1)

La fonction STXT ne renvoie rien au dela de la longueur maxi du mot.


Voila André

Une petite Duvell à ta santé (c'est l'heure) ;)

Bon WE.
 

andré

XLDnaute Barbatruc
Salut Tibo et les autres,

Bien vu !

Je n'avais pas encore remarqué que la fonction STXT ne renvoyait pas de message d'erreur au cas où ... maintenant je le sais.

A force de prudence, on oublie de faire des économies (lol).

J'ai bien fait de me lever aujourd'hui, j'ai à nouveau appris quielque chose de plus !

Merci.
Âne (non, uniquement les économies là où cela se justifie : Ândré).
 

Alguiche

XLDnaute Junior
Salut Hervé Creepy , Robert et André,

Merci à tous pour vos contributions. Je vais voir quelle est la solution que je vais pouvoir le mieux, le plus facilement surtout, adapter à mon programme.

Bonne fin de week end à tous et au plaisir
Alguiche
 
A

Alguiche

Guest
Salut Robert,

Finalement j'ai retenu ta solution pour ce petit problème et je te remercie encore.
J'ai essayé de rajouter une condition mais malheureusement mes notions sont trop limitées et je m'en remets à toi.

Pour des raisons esthétique je voudrais que si Nom =<10 et Prénom =<10 alors Nom s'affiche sur la première ligne et Prénom sur la seconde.

Merci pour ton aide
Al
 
A

Alguiche

Guest
Salut le forum et Hervé,

Je reviens sur le petit bout de code que tu m'avais concocté. Je ne l'ai pas utilisé car je cherche désespérement où et comment indiqué dans quelle case mettre la première lettre du découpage. Tu mets que cela commence en a1 mais je voudrais que ça commence ailleurs.

Merci pour ton aide
Al
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p