Voici une variante (avec le "Y" en plus ;) ):
Option Explicit
Private Sub Command1_Click()
Const CHARC = "BCDFGHJKLMNPQRSTVWXZ"
Const CHARV = "AEIOUY"
Dim Char As String * 1
Dim Tbl(2) As String
Dim Temp As String
Dim i As Long
Temp = Text1.Text
For i = 1 To Len(Temp)
Char = UCase$(Mid$(Temp, i, 1))
If InStr(1, CHARV, Char) Then
Tbl(0) = Tbl(0) & Char
ElseIf InStr(1, CHARC, Char) Then
Tbl(1) = Tbl(1) & Char
Else
Tbl(2) = Tbl(2) & Char
End If
Next
MsgBox "Voyelles : " & Tbl(0) & vbCrLf & _
"Consonnes : " & Tbl(1) & vbCrLf & _
"Autres :" & Tbl(2), vbInformation
End Sub
@+
E.B.