Richard aimerait pouvoir rechercher une apostrophe (‘) dans la position la plus à gauche dans une cellule, mais Excel ne le laissera pas faire. En d’autres termes, si une cellule contient «123 ou» a34tp, Richard aimerait pouvoir trouver cette apostrophe principale et, éventuellement, la remplacer par autre chose.

Faire ce que Richard veut faire nécessite quelques explications préliminaires.

Techniquement, c’est un abus de langage de se référer à l’apostrophe comme un « caractère principal » ou de mentionner qu’elle est dans la « position la plus à gauche » d’une cellule. Même si vous pouvez regarder la barre de formule et voir l’apostrophe au début de la formule, cette apostrophe ne fait pas vraiment partie du contenu de la cellule; c’est pourquoi vous ne pouvez pas utiliser Rechercher et remplacer pour le rechercher et le remplacer.

L’apostrophe est en fait considérée comme un « caractère préfixe » pour une cellule.

Les valeurs possibles du caractère de préfixe sont définies par le paramètre Touches de navigation de transition dans Excel et la valeur du paramètre est enregistrée classeur par classeur. Vous pouvez modifier ce paramètre à l’aide de l’onglet Transition de la boîte de dialogue Options.

Si le paramètre est désactivé (condition par défaut pour le paramètre), la valeur du caractère de préfixe pour chaque cellule peut être vide ou une apostrophe. Si la cellule contient du texte, le réglage du caractère de préfixe n’a pas vraiment beaucoup d’importance. Si le contenu de la cellule n’est pas du texte, la définition du caractère de préfixe sur une apostrophe force Excel à traiter le contenu de la cellule comme s’il s’agissait de texte. Ainsi, par exemple, le nombre 123 est traité comme du texte, et non comme un nombre, et apparaît dans la barre de formule comme «123.

Si le paramètre Touches de navigation de transition est sélectionné (la case à cocher comporte une coche), la valeur du caractère de préfixe pour chaque cellule peut avoir l’une des cinq valeurs différentes. Ces valeurs sont cohérentes avec les préfixes utilisés dans Lotus 1-2-3 et sont, curieusement, prises en charge dans Excel uniquement comme aide transitoire à l’utilisation régulière dans le programme.

Les valeurs possibles sont une apostrophe (justifiée à gauche), un guillemet (justifié à droite), un carat (centré), une barre oblique inverse (répétée) ou un blanc (élément non textuel).

Maintenant, revenons à la question initiale de Richard: comment rechercher et se débarrasser de cette apostrophe principale. Vous ne pouvez pas utiliser Rechercher et remplacer pour effectuer l’édition car l’apostrophe ne fait pas vraiment partie du contenu de la cellule.

Donc, vous devez faire le changement dans une macro. Le changement est relativement facile. Tout d’abord, vous devez vous assurer que le paramètre Clés de navigation de transition est désactivé dans le classeur. Pourquoi? Parce que vous ne voulez probablement pas gâcher le caractère de préfixe pour les cellules si le classeur pouvait être utilisé à un moment donné avec Lotus 1-2-3 à nouveau. Vous vous assurez que le réglage est correct, dans votre macro, avec la ligne suivante:

Application.TransitionNavigKeys = False

Vous pouvez ensuite parcourir une sélection de cellules et vérifier si le caractère de préfixe de chaque cellule est une apostrophe. Si c’est le cas, il vous suffit de demander à la macro de faire l’équivalent de retaper manuellement le contenu de la cellule, de la manière suivante:

For Each c In Selection     If c.PrefixCharacter = "'" Then         c.Value = c.Value     End If Next c

Notez que la macro vérifie le contenu de la propriété PrefixCharacter. Cette propriété peut être lue dans VBA, mais elle ne peut pas être modifiée directement. C’est pourquoi la macro doit utiliser la ligne apparemment simple pour attribuer la valeur de chaque cellule dans la cellule — essentiellement retaper le contenu.

Si vous préférez ne pas utiliser une macro pour vous débarrasser des caractères du préfixe d’apostrophe, vous pouvez profiter d’une étrange petite bizarrerie de Collage spécial. Suivez ces étapes générales:

  1. Sélectionnez une cellule vide et copiez-la dans le Presse-papiers (utilisez Ctrl + C).

  2. Sélectionnez la plage de cellules dont vous souhaitez supprimer le caractère de préfixe.

  3. Affichez la boîte de dialogue Collage spécial.

  4. Cliquez sur le bouton radio Ajouter.

  5. Cliquez sur OK.

Après « l’ajout » de la cellule vide à chacune des cellules cibles, le caractère de préfixe, le cas échéant, est supprimé.

_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 (3332) 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:

lien: / excelribbon-Searching_for_Leading_Apostrophes [Recherche des apostrophes principales].