Rechercher 2 caractères dans une réf (cellule / colonne)

Bonjour,

J’y suis sur ce fichier depuis maintenant 4 jours, et je bloque toujours,
j’appelle donc « au secoure » pour avancer.

Dans une onglet comportant une liste de 3 colonnes,
je dois mettre en surbrillance (couleur 4), les cellules A à C d’une ligne
en fonction de la présence (ou non) de 2 caractères en cellule A.

Explications :

0- via un bouton de recherche,

1- Rechercher dans les matricules (A:A),
ceux qui contiennent :
en 1er caractère, la lettre indiquée en F2
en 1er chiffre après le tirer, le nombre indiqué en F3

2- Mettre en surbrillance les cellules de(s) ligne(s) concernées
ColorIndex = 4

3- Message Box m’indiquant le nombre de ligne (agents) concernées.

Le point 2 ne se produit pas, rien n’est surligné,
et de façon cohérente, le point 3 m’indique 0.

Donc mon code expliquant ce qui doit être trouvé, n’est pas bon :
Niveau = Cells(2, 6).Value
Secteur = Cells(3, 6).Value
ID = Niveau & « # » & « #- » & Secteur & « ### »

Je vous joins le fichier et le module codé accompagné des mes réflexions de recherches.

Affectation_vtest.xlsm (23,9 Ko)

Dans l’attente de vous lire, je vous remercie par avance de votre aide.
Bien cordialement
JaGAF

Bonjour,
Remplace la ligne de recherche des indicies par celle-ci

If VBA.Left(Range("A" & i + 1), 1) = Niveau And Mid(Range("A" & i + 1), 4, 1) * 1 = Secteur Then
1 « J'aime »

Oh super ! ça fonctionne enfin !
MERCI MERCI

par contre, pour ma culture personnelle, que je comprenne,
qu’est ce que VBA dans « If VBA.Left (Range(… » ?

Il semble que cela fonctionne sans le VBA…

Re,
Ne sachant pas la version d’Excel utilisée, je l’ai placé sans aucun disfonctionnement pour les différentes fonctions. Sur une version 2007, cela créé un « BUG » si il n’est pas utilisé.

1 « J'aime »

c’est peut-être plus facile d’utiliser la fonction « like »
à savoir : il fait la distinction entre majuscule et miniscules et un chiffre est #, un charactère est ? et * est une chaine

For i = 1 To nr
    b = UCase(Range("A" & i + 1)) Like UCase(Niveau & "#*-" & Secteur & "*") 'commence avec niveau & chiffre & eventuellement ... &  "-" & Secteur  & ...
    If b Then x = x + 1
   Range("A" & i + 1 & ":C" & i + 1).Interior.ColorIndex = IIf(b, 4, xlNone)
         
   'MsgBox "Ligne Suivante"
Next i

https://loufab.developpez.com/tutoriels/access/operateurlike/
Affectation_vtest.xlsm (27,9 Ko)

1 « J'aime »

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.