XL 2010 Résolu par Marcel : souci de code

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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Toujours sur mon fichier déjà super grâce à vous, me revoilà devant vous pour 2 soucis LOL

Pour préparer automatiquement l'envoi d'un sms, dans le classeur joint, j'ai besoin de :
1 - remplacer PART ou ART ou RT ou T ... PLACE UNIQUEMENT en début du texte,

j'y planche depuis ce matin et malgré mes recherches, rien à faire, je ne trouve pas.
j'ai fait aussi une panoplie d'essais sans succès.
je ne sais plus que faire 🙁
J'va virer "barjot 😕" ou quelque chose comme ça.

Auriez-vous la solution ?
je ne sais vraiment comment dire Merci alors, tout simplement Merci à toutes et à tous,
Amicalement,
Lionel,
 

Pièces jointes

Dernière édition:
Re à toutes et à tous,

J'ai continué mes essais et j'ai pensé qu'avec une condition, ça fonctionnerait.
Je pense que c'est la bonne solution faute de mieux.
mais mon code bute sur cette ligne : If [LEFT(RC[-26],4)] = "part" Then
Je n'arrive pas à le corriger.
je joins le classeur modifié,
Merci à vous tous,
Amicalement,
Lionel,
 

Pièces jointes

Bonjour,

Si j'ai bien compris, en fait tu veux supprimer (et non "remplacer") tout ce qui précède le numéro du département ?

Si c'est bien ça, je te propose ce bout de code :
VB:
TexteEnCours = ActiveCell.Value
While Left(TexteEnCours, 1) > "9" Or Left(TexteEnCours, 1) < "0"
    TexteEnCours = Right(TexteEnCours, Len(TexteEnCours) - 1)
Wend
 
Ta macro Macro2 devient ceci (j'ai laissé ton code [devenu inutile si je ne me trompe pas] en commentaire) :

VB:
Sub Macro2()
'
Dim TexteEnCours As String

    TexteEnCours = ActiveCell.Value
   While Left(TexteEnCours, 1) > "9" Or Left(TexteEnCours, 1) < "0"
      TexteEnCours = Right(TexteEnCours, Len(TexteEnCours) - 1)
   Wend
   ActiveCell.Offset(0, 26).Select
   ActiveCell.Value = TexteEnCours

'   ActiveCell.Copy
'   ActiveCell.Offset(0, 26).Select
'   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
'      :=False, Transpose:=False
'   On Error Resume Next
'   ActiveCell.Replace What:="part", Replacement:="", LookAt:=xlPart, _
'      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
'      ReplaceFormat:=False
'   On Error Resume Next
'   ActiveCell.Replace What:="art", Replacement:="", LookAt:=xlPart, _
'      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
'      ReplaceFormat:=False
'
'   ActiveCell.Offset(0, 0).Select
'   Application.CutCopyMode = False
   Selection.TextToColumns Destination:=ActiveCell, DataType:=xlFixedWidth, _
      FieldInfo:=Array(Array(0, 1), Array(13, 1), Array(18, 1), Array(22, 1), Array(26, 1), _
   Array(30, 1)), TrailingMinusNumbers:=True
   ActiveCell.Offset(0, -26).Select
   ActiveCell.FormulaR1C1 = _
   "=CONCATENATE(RC[26],""P."","" "",""Avez-vous vendu ?"","" "",""Voici mon n° tel :"",""0111111111"","", "",""Cordlt"")"
   Selection.Copy
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
   :=False, Transpose:=False
   ActiveCell.Offset(0, 26).Select
   Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 6)).Select
   Selection.ClearContents
   ActiveCell.Offset(0, -26).Select
End Sub
 
Re Marcel,

Bon sang, ça marche nickel mais je ne comprends pas ton code.
Je vais voir pour le comprendre.
Merci Marcel pour ton aide décisive.
LOL : je ne te dis pas depuis combien de temps je cherche 😕
Le concaténer me sert à préparer le sms mais c'est bon, ça marche aussi.
Je remets le fichier.
Amicalement,
Lionel,
 

Pièces jointes

Je comprends bien que ça sert à préparer ton SMS, mais je ne pige pas pourquoi tu ne le fais pas dans le code, et si tu le fais dans une formule pourquoi utiliser CONCATENER plutôt que simplement =Q6 & "P..." ?

PS : je peux bien sûr me tromper, mais je ne crois pas qu'on puisse utiliser "ActiveCell" dans une formule.
 
Bon sang, ça marche nickel mais je ne comprends pas ton code.
C'est hyper simple : je mets la chaîne de caractères dans une variable, et tant que le premier caractère de la chaîne de caractères contenue dans cette variable n'est pas un chiffre (donc un caractère entre "0" et "9"), je raccourci la chaîne de caractères contenue dans cette variable en supprimant le premier caractère. 😉
 
- 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

Réponses
7
Affichages
953
Retour