Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Problème avec fonction VBA

MCOTTEND

XLDnaute Nouveau
Bonsoir à Toutes et Tous,

Dans un feuille excel, je voudrai mettre en forme certaines expressions.

Le code VBA N°1 ci-dessous fonctionne parfaitement. Il me remplace bien "0000917222 PrestationsSante-" par "0000917222 PRESTATIONS SANTÉ".

A contrario, le code 2 ne fonctionne pas.. La commande " Set MaPlage = Sheets("BEC").UsedRange.Find("COTIS. SANTE")" renvoie "Nothing". Je précise que les cellulles contiennent une expression de la forme "20210715COTIS. SANTE 129446438-DC45BE40BAD44D1E94E281347574A378" De ce fait les remplacements ne s'effectuent pas.




Code 1
Set MaPlage = Sheets("BEC").UsedRange.Find("0000917222 PrestationsSante-")
If Not MaPlage Is Nothing Then
Cells.Select
Selection.Replace What:="0000917222 PrestationsSante-", Replacement:="0000917222 PRESTATIONS SANTÉ", LookAt:=xlWhole, SearchOrder:=xlByRows, _
MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False
Else
GoTo Suite:
End If


Code 2 :
Set MaPlage = Sheets("BEC").UsedRange.Find("COTIS. SANTE")
If Not MaPlage Is Nothing Then
Cells.Select
Selection.Replace What:="COTIS. SANTE", Replacement:="COTISISATION SANTÉ", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Else
GoTo Suite:
End If


Quelqu'un pourrait-il m'aider ?

Vous en remerciant par avance,

Cordialement.

Michel
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Chez moi le code 2 fonctionne sans problème.

Il y a une espace entre le "." et le "S" dans l'expression recherchée. Est-ce normal ? Y en a-t-il vraiment une dans l'expression dans laquelle effectuer la recherche comme c'est le cas dans ton exemple ???
 

MCOTTEND

XLDnaute Nouveau
Bonsoir TooFatBoy,
Merci pour votre réponse.
Il y a bien un espace entre le point et le S.
J'ai fait un copier coller du contenu de la cellule.
Je travaille, pour info, avec excel 2016 :



Cordialement.

Michel
 

Pièces jointes

  • 1662239414679.png
    18.8 KB · Affichages: 18

MCOTTEND

XLDnaute Nouveau
Bonsoir TooFatBoy et Cgendron,
Après une après-midi de test et recherche, je suis venu à bout de mon anomalie.
J'ai modifié mon code en

Set MaPlage = Sheets("BEC").UsedRange.Find("COTIS. SANTE", LookIn:=xlValues, LookAt:=xlPart)
If Not MaPlage Is Nothing Then
Cells.Select
Selection.Replace What:="COTIS. SANTE", Replacement:="COTISISATION SANTÉ", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Else
GoTo Suite_65:
End If


J'ai donc ajouté les arguments " LookIn:=xlValues" et "LookAt:=xlPart" à la fonction "Find" de ma première ligne de code et, maintenant tout fonctionne parfaitement.
J'ai absolument besoin de la fonction "if" avec "else" parce si je ne trouve pas le terme recherché dans mon fichier, le code de la première ligne me renvoie "Nothing" et je je peux pas continuer le déroulement de ma macro.

Merci à tous d'avoir essayer de m'apporter une solution.

Cette discution peut-être fermée.

Cordialement.

Michel
 

Discussions similaires

Réponses
1
Affichages
219
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…