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 -
A voir également:
- Oter des caractères dans une cellule en VBA
- Caractères ascii - Guide
- Aller à la ligne dans une cellule excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Caractères spéciaux - Guide
- Excel cellule couleur si condition texte - Guide
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
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 22
uniquement parce que j'avais fait quelque chose
Eriicà toi de jouer
J'allais poser la m^meme question qu'Eriic (bonjour) !!!
pour tester 22
If 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 :
Sélectionner la plage concernée et lancer la macro
exemple
eric
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
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...
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...