XL 2010 Résolu par Marcel : souci de code

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 :confused:" 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

  • Test sms.xlsm
    25.4 KB · Affichages: 25
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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

  • Test sms.xlsm
    24.6 KB · Affichages: 24

TooFatBoy

XLDnaute Barbatruc
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
 

TooFatBoy

XLDnaute Barbatruc
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
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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 :confused:
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

  • Test sms.xlsm
    24.5 KB · Affichages: 32

TooFatBoy

XLDnaute Barbatruc
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.
 

TooFatBoy

XLDnaute Barbatruc
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. ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 797
Messages
2 092 212
Membres
105 286
dernier inscrit
SoCa