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

Microsoft 365 If <> like Then /// Si le contenu ne contient pas "#"

Fab117

XLDnaute Impliqué
Hello,
Dans ma macro je scanne les onglets du fichier actif sauf ceux dont le nom contient/commence par le caractère "#"

VB:
Dim F_Source As Worksheet
For Each F_Source In Worksheets
    If (F_Source.Name <> "#435") And (F_Source.Name <> "#herh") And (F_Source.Name <> "#erfhth") Then

    End If
Next F_Source

Je cherche à simplifier avec en combinant
  • Different de : <>
  • Et contient le caractère "#" => Like "*[#]*"

Soit quelque chose comme :
Code:
If F_Source.Name <> Like "*[#]*" Then

Quelqu'un saurait-il comment faire ça ?

Très bon après-midi

Fab
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Fab,
Pourquoi les [ ] ?
Pourquoi <> Like c'est l'un ou l'autre.

Le plus simple me semble être :
VB:
If Left(F_Source.Name, 1) <> "#" Then
Avec un Like, "#" ou "*#*" ne remonte rien de pertinent, # doit être considéré comme un caractère spécial.
 

mapomme

XLDnaute Barbatruc
# doit être considéré comme un caractère spécial.
Quand on utilise like, # représente un caractère chiffre de "0" à "9"dans la chaine modèle.
C'est pour ça que pour représenter le caractère "#" dans la chaine modèle, il faut l'entourer de crochets [ ], tout comme pour la recherche des caractères "*" ou "?" (et des crochets eux-mêmes aussi bien sûr)
 
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…