Bonjour,

je suis nouveau à VBA et je suis à compléter un fichier qui utilise de multiples macros.
J'ai appris plusieurs trucs et astuces en faisant des recherches ces dernières semaines à mesure que j'avance dans la programmation de mon fichier.

Tout fonctionne A1 sauf une partie de mon code. Et ça ne devrait pas être compliqué pourtant...
À différents endroits, j'utilise "InStr" pour trouver la position de certains chiffres dans les phrases affichées et je mets ces chiffres en gras et bleu pour mettre en évidence.

J'ai ce code à plusieurs endroits pour différentes phrases et ça fonctionne bien partout sauf pour une phrase et je n'arrive pas à savoir pourquoi !

Voici la partie de code fautive...Désolé si c'est long...

Toute aide ou conseil serait grandement apprécié.

Philippe

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
 
'Déclarer variable
Dim NOMBRE_RAD As Integer
Dim NOMBRE_OBS As Integer
Dim TOTAL_JOURN_POSSIBLE As Integer
Dim TOTAL_SATISFAISANT As Integer
 
'Insérer valeur de nombre de RAD et d'observations dans la bonne cellule de la feuille Stats
    Worksheets("Stats").Range("B63").Formula = "=COUNTIF('Sommaire journalisation'!C8:L22,""*RAD*"")"
    Worksheets("Stats").Range("B64").Formula = "=COUNTIF('Sommaire journalisation'!C8:L22,""*Observation*"")"
 
'Donner les valeurs aux variables
    NOMBRE_RAD = Sheets("Stats").Range("B63").Value
    NOMBRE_OBS = Sheets("Stats").Range("B64").Value
    TOTAL_JOURN_POSSIBLE = Sheets("Stats").Range("B67").Value
    TOTAL_SATISFAISANT = Sheets("Stats").Range("B69").Value
 
'Déterminer longueur des chiffres à donner
 
    'Déterminer longueur du nombre de RAD
    Dim LONGUEUR_NOMBRE_RAD As Long
    LONGUEUR_NOMBRE_RAD = Len(NOMBRE_RAD)
 
    'Déterminer longueur du nombre d'observations
    Dim LONGUEUR_NOMBRE_OBS As Long
    LONGUEUR_NOMBRE_OBS = Len(NOMBRE_OBS)
 
    'Déterminer longueur du nombre de journaux total possible
    Dim LONGUEUR_TOTAL_JOURN_POSSIBLE As Long
    LONGUEUR_TOTAL_JOURN_POSSIBLE = Len(TOTAL_JOURN_POSSIBLE)
 
    'Déterminer longueur du nbre de conclusions positives
    Dim LONGUEUR_TOTAL_SATISFAISANT As Long
    LONGUEUR_TOTAL_SATISFAISANT = Len(TOTAL_SATISFAISANT)
 
'Déterminer position des chiffres à donner
 
    'Déterminer position du nombre total de journaux possible
    Dim P_J_POSSIBLE As Long
    P_J_POSSIBLE = InStr("Sur une possibilité totale de " & TOTAL_JOURN_POSSIBLE & " journaux, " & TOTAL_SATISFAISANT & " journaux correspondent à nos attentes ainsi que " & NOMBRE_OBS & " points d'observation potentiels et " & NOMBRE_RAD & " points de RAD potentiels.", TOTAL_JOURN_POSSIBLE)
 
    'Déterminer position du nombre de conclusions positives
    Dim P_SAT As Long
    P_SAT = InStr("Sur une possibilité totale de " & TOTAL_JOURN_POSSIBLE & " journaux, " & TOTAL_SATISFAISANT & " journaux correspondent à nos attentes ainsi que " & NOMBRE_OBS & " points d'observation potentiels et " & NOMBRE_RAD & " points de RAD potentiels.", TOTAL_SATISFAISANT)
 
    'Déterminer position du nombre d'observations
    Dim P_OBS As Long
    P_OBS = InStr("Sur une possibilité totale de " & TOTAL_JOURN_POSSIBLE & " journaux, " & TOTAL_SATISFAISANT & " journaux correspondent à nos attentes ainsi que " & NOMBRE_OBS & " points d'observation potentiels et " & NOMBRE_RAD & " points de RAD potentiels.", NOMBRE_OBS)
 
    'Déterminer position du nombre de RAD
    Dim P_RAD As Long
    P_RAD = InStr("Sur une possibilité totale de " & TOTAL_JOURN_POSSIBLE & " journaux, " & TOTAL_SATISFAISANT & " journaux correspondent à nos attentes ainsi que " & NOMBRE_OBS & " points d'observation potentiels et " & NOMBRE_RAD & " points de RAD potentiels.", NOMBRE_RAD)
 
 
    'Pour fins de tests, afficher positions des chiffres
    Range("A19").Value = P_J_POSSIBLE
    Range("B19").Value = P_SAT
    Range("C19").Value = P_OBS
    Range("D19").Value = P_RAD
 
'Écrire phrase explicative finale
    Range("A18").Value = "Sur une possibilité totale de " & TOTAL_JOURN_POSSIBLE & " journaux, " & TOTAL_SATISFAISANT & " journaux correspondent à nos attentes ainsi que " & NOMBRE_OBS & " points d'observation potentiels et " & NOMBRE_RAD & " points de RAD potentiels."
 
'Mettre en évidence les chiffres (bleu et gras)
 
    Range("A18").Characters(P_J_POSSIBLE, LONGUEUR_TOTAL_JOURN_POSSIBLE).Font.Bold = True
    Range("A18").Characters(P_J_POSSIBLE, LONGUEUR_TOTAL_JOURN_POSSIBLE).Font.Color = RGB(0, 0, 255)
 
    Range("A18").Characters(P_SAT, LONGUEUR_TOTAL_SATISFAISANT).Font.Bold = True
    Range("A18").Characters(P_SAT, LONGUEUR_TOTAL_SATISFAISANT).Font.Color = RGB(0, 0, 255)
 
    Range("A18").Characters(P_OBS, LONGUEUR_NOMBRE_OBS).Font.Bold = True
    Range("A18").Characters(P_OBS, LONGUEUR_NOMBRE_OBS).Font.Color = RGB(0, 0, 255)
 
    Range("A18").Characters(P_RAD, LONGUEUR_NOMBRE_RAD).Font.Bold = True
    Range("A18").Characters(P_RAD, LONGUEUR_NOMBRE_RAD).Font.Color = RGB(0, 0, 255)