Suppression de tout jusqu’à une séquence de caractères (Microsoft Excel)
Steven a une feuille de calcul qui contient beaucoup de texte. Dans les cellules de la colonne A, il souhaite supprimer tout ce qui peut se produire avant une séquence de caractères donnée, comme tout ce qui précède = XX =. Il peut y avoir plusieurs instances de ces caractères dans chaque cellule, mais Steven veut seulement tout supprimer avant la première occurrence.
Une façon de faire est d’utiliser une formule. Par exemple, la formule suivante évaluera tout ce qui se trouve dans la cellule A1 et renverra simplement tout jusqu’aux caractères = XX =. Si les caractères ne sont pas trouvés dans la cellule, alors la cellule entière est renvoyée:
=RIGHT(A1,IF(ISERROR(FIND("=XX=",A1,1)), LEN(A1),LEN(A1)-FIND("=XX=",A1,1)+1))
Si vous voulez, à la place, ne pas renvoyer la première occurrence de = XX =, tout ce que vous avez à faire est de changer le +1 vers la fin de la formule en -3.
Si vous préférez une solution basée sur des macros, vous pouvez utiliser une routine comme celle-ci. Il examine toutes les cellules actuellement sélectionnées, puis supprime tout avant la séquence = XX =.
Sub DeleteToSequence() Dim rCell As Range Dim sSeq As String Dim x As Long sSeq = "=XX=" For Each rCell In Selection x = InStr(rCell.Value, sSeq) If x > 0 Then rCell.Value = Mid(rCell, x) End If Next Set rCell = Nothing End Sub
Vous devez être conscient que cette macro peut provoquer des erreurs, en particulier lorsque ce que vous recherchez commence par un signe égal (comme dans = XX =).
Lorsqu’une chaîne commençant par un signe égal est réinsérée dans la cellule, vous obtenez un #NAME? erreur car Excel tente d’analyser la cellule comme si elle contenait une formule.
Si vous voulez tout supprimer jusqu’à la séquence de caractères, utilisez cette ligne au milieu de la routine:
rCell.Value = Mid(rCell, x + Len(sSeq))
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (7696) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Deleting_Everything_Up_to_a_Character_Sequence [Suppression de tout jusqu’à une séquence de caractères]
.