Bonjour,

Je met en place, en tant que débutant, un petit prog de conjugaison, et j'utilise exclusivement, pour completer le radical des verbes, des instructions if - then et la boucle for-next.

Tous va bien pendant le déboguage, je trouve même cela très rapide, cepandant, vb 2005 express affiche des avertissements (variables soulignée en vert) ce qui n'empêche rien.

Par exemple, cette fonction :

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 Public Function Identifier_voy() As String
 
        Dim Tb_voy$(9)
        Dim verbe_nu$
        Dim verbeIP$ = TextBox1.Text
        Dim verbeII$ = TextBox1.Text
        Dim i As Integer
        Dim lettre As String
        Dim tmpvar$ 'variable temporaire: comparaison de la premiere lettre du verbe 
    ' avec les éléments du tableau. 
 
          
 
        'Gestion des verbe commençant par une voyelle (mm accentuée)
        Tb_voy$(0) = "a"
        Tb_voy$(1) = "e"
        Tb_voy$(2) = "é"
        Tb_voy$(3) = "è"
        Tb_voy$(4) = "ê"
        Tb_voy$(5) = "i"
        Tb_voy$(6) = "ï"
        Tb_voy$(7) = "o"
        Tb_voy$(8) = "u"
        Tb_voy$(9) = "y"
        '----------------------
        If verbeIP.Substring(0, 2) = "s'" Then 'si les 2 premiers char sont "s'"
            verbe_nu = verbeIP.Substring(2, 1) 'verbe_nu ne garde que la premiere lettre du verbe en ER.(pour function voy)
            lettre = verbe_nu.Substring(0, 1)
        Else
            lettre = verbeIP.Substring(0, 1) 'lettre ne garde que la premiere lettre du verbe en ER.
            lettre = verbeII.Substring(0, 1)
        End If
        '----------gestion des H aspirés------------------
 
        '-----------TAB J' pour verbes secs---------------
        For i = 0 To tab_jap.Length - 1
            If verbeIP.Substring(0, 2) = "s'" Then 'si il y a "s'" devant, on utilise tab_sap (S')
                Exit For
            End If
            If verbeIP = tab_jap(i) Then
                If RadioButton1.Checked Then 'btnRadio "présent"
                    Return conjuguer_voyIP()
                End If
                If RadioButton2.Checked Then 'btnRadio "passé simple"
                    Return conjuguer_voyIPS()
                End If
                If RadioButton5.Checked Then 'btnRadio "imparfait"
                    Return conjuguer_voyII()
                End If
            End If
        Next
        '----------TAB S' pour verbes en "s'....."
        For i = 0 To tab_sap.Length - 1
            If verbeIP = tab_sap(i) Then
                If RadioButton1.Checked Then 'btnRadio "présent"
                    Return conjuguer_voyIP()
                End If
                If RadioButton2.Checked Then 'btnRadio "passé simple"
                    Return conjuguer_voyIPS()
                End If
                If RadioButton5.Checked Then 'btnRadio "imparfait"
                    Return conjuguer_voyII()
                End If
            End If
        Next
 
        '**************************************************************************
        '     Comparatif du tab_voy avec la premiere lettre du verbe.             '
        '**************************************************************************
        '             le choix des fonctions se fait ici 
        For i = 0 To Tb_voy$.Length - 1
            tmpvar = Tb_voy$(i) 'Tb_voy(i).IndexOf(lettre)
            If tmpvar = lettre Then
                If RadioButton1.Checked Then 'btnRadio "présent"
                    Return conjuguer_voyIP()
                End If
                If RadioButton2.Checked Then 'btnRadio "passé simple"
                    Return conjuguer_voyIPS()
                End If
                If RadioButton5.Checked Then 'btnRadio "imparfait"
                    Return conjuguer_voyII()
                End If
            End If
        Next
        If tmpvar <> lettre Then
            If RadioButton1.Checked Then 'btnRadio "présent"
                Return Conjuguer_consonnesIP()
            End If
            If RadioButton2.Checked Then 'btnRadio "passé simple"
                Return Conjuguer_consonnesIPS()
            End If
            If RadioButton5.Checked Then 'btnRadio "imparfait"
                Return Conjuguer_consonnesII()
            End If
        End If
        Return ""
        '------------------------------------------------------------------------
    End Function


Cette variable tmpvar n'empèche en rien le prog de fonctionner mais sur le total de mes fonctions, j'ai une 50ene de ce type d'avertissement:
La variable tmpvar est utilisée avant qu'une valeur ne lui soit assignée.
J'ai bien vu que l'on peut désactiver les avertissements, mais la syntaxe que j'utilise doit certainement pouvoir être améliorée.

Est ce que ces avertissements ont une réelle importance ?
Comment pourrais je "optimiser" ma syntaxe ?