XL 2016 Problème avec fonction VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Bonjour,

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.
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 ???
 
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 :

1662239389323.png


Cordialement.

Michel
 

Pièces jointes

  • 1662239414679.png
    1662239414679.png
    18.8 KB · Affichages: 19
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
242
Réponses
2
Affichages
422
Retour