Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Traitement chaines de caractères vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chris4785478547

XLDnaute Junior
Bonsoir le fil,

A nouveau, Bonne Année à tous.
Je connais la syntaxe pour tronquer une chaine de caractères par la gauche (par exemple) à savoir:

VB:
 Left ("année",2)
qui renvoie: an
Mais peut on donner une variable à la place de la chaine explicite ?
Merci
 
Bonjour,
Essaye
VB:
Sub test()
    Dim MaVariable$
    MaVariable = "année"
    MsgBox Left(MaVariable, 2)
End Sub
Bonne Année
 
Bonsoir lefil

Juste pour dissiper les dernières effluves du réveillon 😉
VB:
Sub test()
Dim chaine As String
chaine = "année"
MsgBox TireSur(chaine, 1, 2)
MsgBox TireSur(chaine, 4, 2)
End Sub
Function TireSur(MonString As String, Pos&, nCar)
TireSur = Mid(MonString, Pos, nCar)
End Function
😉
 
@chris4785478547

lis d'abord mon post #4 précédent.

en PJ, un fichier exemple ; fais Ctrl e ➯ travail effectué

note bien que la 1ère ligne est inchangée ; ce n'est pas un bug :
c'est voulu, pour préserver une ligne d'en-têtes.

Alt F11 pour voir le code VBA, puis pour revenir sur Excel.


VB:
Sub Essai()
  Dim Tbl, n&: Application.ScreenUpdating = 0
  n = Cells(Rows.Count, 1).End(3).Row
  If n = 1 Then Exit Sub
  Dim chn$, i&: n = n - 1: Tbl = [A2].Resize(n)
  For i = 1 To n
    chn = Tbl(i, 1)
    If Len(chn) > 1 Then Tbl(i, 1) = RTrim$(Left$(Tbl(i, 1), 2))
  Next i
  [A2].Resize(n) = Tbl
End Sub



petite question subsidiaire : as-tu compris pourquoi
j'ai utilisé aussi RTrim$() ? 😉


soan
 

Pièces jointes

Dernière édition:
Bonjour le fil

=>chris
En attendant que mon thé refroidisse, je suis allé joué dans VBE 😉
VB:
Sub Extractions()
Dim mavariable As String, exemples(4)
mavariable = Application.UserName
exemples(0) = Left(mavariable, 2)
exemples(1) = Right(mavariable, 3)
exemples(2) = Mid(mavariable, 1, 4)
exemples(3) = Mid(StrReverse(mavariable), 1, 1)
[C1] = mavariable
[A1:A4] = Application.Transpose(exemples)
[C1].TextToColumns [A5], xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(1, 9))
End Sub
 
Salut le fil,

Bonjour les gars, et merci pour vos réponses, j'avais bien essayé la syntaxe : MsgBox Left(MaVariable, 2)
Mais j'avais fait une grosse bêtise par ailleurs, (j'avais oublié le End Sub) Bon j'arrête de picoler

=>Je n'ai rien compris à ton petit exercice !
 
Re

=>chris
=>Je n'ai rien compris à ton petit exercice !
Tu parles du code du message#6
Fais le test sur un classeur vierge
C'était juste un exemple de traitement d'une chaine de caractères avec les fonctions VBA: Left, Right et Mid
Et pour le gag StrReverse
Juste de quoi piquer ta curiosité. 😉
 
Re

Salut Staple,
J'ai encore merdé. Ton message était très clair, merci. Et bien sûr, ça marche.
J'ai juste oublié de mettre Soan en destinataire c'est son exercice que je n'ai pas compris.
Il faut que je m'achète une conduite, plus ça va et plus je manque de rigueur.
 
Re
=>Soan

Ton message #4 était très clair, et j'aurais aussi bien pu le classer "solution" que le post de Jacky.
Non c'est ton message #5 que je ne comprends pas bien, il semble que tu m'aies adressé un exercice mais je ne vois pas en quoi cela consiste ... et puis j'ai regardé ton code vba qui est assez complexe. Je vais prendre le temps de l'étudier afin de te poser des questions très prochainement...Merci en tout cas
 
@chris4785478547

exercice de mon post #5 : ce sont des phrases en colonne A ; pour toutes les phrases,
la macro prend uniquement les 2 premiers caractères de la cellule A, sauf pour la
1ère ligne d'en-têtes ; reste l'énigme que j'ai posée : pourquoi j'ai utilisé RTrim$() ?

nota bene : j'ai mis cet exo surtout pour te montrer un exemple de traitement sur plusieurs lignes.


soan
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…