Oter des caractères dans une cellule en VBA
Résolu
ST31000
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
> ST31000 -
> ST31000 -
Bonjour à tous,
j'ai besoin de votre aide!
j'ai besoin de faire une macro me permettant de retraiter des cellules de type :
:22:1009010901KL333HHHRH
Je souhaite pouvoir dire : pour toute les cellule commençant par les caractères ":22:" enlever certains caractères à l'intérieur de la chaine de caractères.
Merci bcp pour votre aide dont j'ai bien besoin!!
a très vite j'espère
j'ai besoin de votre aide!
j'ai besoin de faire une macro me permettant de retraiter des cellules de type :
:22:1009010901KL333HHHRH
Je souhaite pouvoir dire : pour toute les cellule commençant par les caractères ":22:" enlever certains caractères à l'intérieur de la chaine de caractères.
Merci bcp pour votre aide dont j'ai bien besoin!!
a très vite j'espère
6 réponses
-
Bonjour,
enlever certains caractères
Ben oui mais lesquels et qu'est-ce qui les caractérise ?
Et c'est faisable sous forme de macro (tu sélectionnes une plage et tu lances le traitement, le résultat peut être mis dans une colonne à coté ou écraser l'original) ou sous forme de fonction personnalisée (tu saisis une formule dans une cellule qui te retourne le résultat en dynamique), précise ton besoin.
eric -
bonjour
J'allais poser la m^meme question qu'Eriic (bonjour) !!!
pour tester 22If Mid(lachaine, 2, 2) = "22" Then
...
uniquement parce que j'avais fait quelque chose
Eriicà toi de jouer -
Salut michel,
Tu pouvais répondre tu sais :-) Tu t'es pas foulé... ;-)
ST31000 : c'est plus la position des caractères qui t'interesse j'ai l'impression.
Teste :Sub MiseEnForme() Dim c As Range For Each c In Selection If Left(c, 4) = ":22:" Then c = Left(c, 10) & Mid(c, 15, 1) & Right(c, 8) End If Next c End Sub
Sélectionner la plage concernée et lancer la macro
exemple
eric -
Messieurs je reviens vers vous car le retraitement que je souhaite faire sur les lignes commençant pr :22:, avec mes codes actuels (ci-dessous) s'applique en faites à toutes les lignes.....Alors que je ne veux ce retraitement (qui marche bien d'ailleurs, sur les bons caractères...) que pour les lignes commençant pr :22
Pouvez vous me dire ce qui ne va pas
un grd merci d'avance...
Sub essai()
'Déclaration des variables
Dim c As Range
'Ouverture du ficher .txt
Workbooks.OpenText Filename:= _
"C:\Users\ST31000\fichier.txt" _
, Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
Array(0, 1), TrailingMinusNumbers:=True
Columns("A:A").EntireColumn.AutoFit
'Retraitement des 4 caractères MMDD des lignes commençant par :22:
For Each c In Range([A1], [A10000])
If (Left(c, 4) = ":22:" And (Mid(c, 16, 1) = N Or Mid(c, 16, 1) = P Or Mid(c, 16, 1) = R)) Then
c = Left(c, 10) & Mid(c, 15, 1) & Mid(c, 17, 100)
End If
Next c
'Etape 2 : Retraitement des lettres N,P,R après D ou C des lignes commençant par :22:
If (Left(c, 4) = ":61:" And (Mid(c, 16, 1) = N Or Mid(c, 16, 1) = P Or Mid(c, 16, 1) = R)) Then
c = Left(c, 10) & Mid(c, 15, 1) & Mid(c, 17, 100)
ElseIf (Mid(c, 16, 1) <> N And Mid(c, 16, 1) <> P And Mid(c, 16, 1) <> R) Then
c = Left(c, 10) & Mid(c, 15, 1) & Mid(c, 17, 100)
End If
Next c
'Enregistrement_du_fichier Macro
Windows("MT940 Valeo.txt").Activate
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\ST31000\fichier corrigé.xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
End Sub -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour Eric,
Merci pour ta réponse
de ma chaine ":22:1009010901KL333HHHRH" j'ai besoin d'enlever les 4 caractères avant la lettre K (0901) et la lettre L après K afin d'avoir une chaine de caractère respectant le format suivant :
:22:YYMMDDK(ou une autre lettre)XXX(montant)RRRRR
J'aimerais pouvoir écraser la colonne originale....
Merci bcp de ton aide... -
Super!ça marche!
Merci Eric et Michel pour vos indications!