Bonjour,

Je développe un programme pour ma boîte sur le logiciel Visual Basic 2008 Express.

Je bloque sur un problème de détection du nombre de ligne dans un fichier ini.

Mon fichier Ini s'appelle Cassio.ini, il contient :
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
[NomEmployésService1]
Employé1=xxxxxxxx
Employé2=xxxxxxxx
Employé3=xxxxxxxx
Employé4=xxxxxxxx
Employé5=xxxxxxxx
Employé6=xxxxxxxx
Employé7=xxxxxxxx
Employé8=xxxxxxxx
 
[NomEmployésService2]
Employé1=xxxxxxxx
Employé2=xxxxxxxx
Employé3=xxxxxxxx
Employé4=xxxxxxxx
Employé5=xxxxxxxx
Employé6=xxxxxxxx
Employé7=xxxxxxxx
Employé8=xxxxxxxx
 
[FichierExcel]
Stat_Flux=c:\xxxxxxx.xls
Planning_Congés=c:\xxxxxxx.xls
Le but étant d'aller chercher les lignes du tableau de congé du service correspondant au nom des employés du fichier ini.
La connexion avec le fichier Excel est impeccable, j'ai fais l'incrémentation des colonnes, je detecte tout ce qu'il faut dans les cellules.

Il ne me reste plus qu'a obtenir le nombre d'employés du service pour effectuer quelque chose du genre :

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
 
For i = 0 To 120
     For j = 1 To NbrSection
            If (x2WorkSheet.Cells("B" & i).Value = LireINI("[NomEmployésService1]", "Employé" & j)) Then
                'Ma boucle de test sur les cellules de la ligne 
            End If
      Next j
Next i
For i = 0 To 120
      For j = 1 To NbrSection
 
            If (x2WorkSheet.Cells("B" & i).Value = LireINI("[NomEmployésService2]", "Employé" & j)) Then
                'Ma boucle de test sur les cellules de la ligne 
            End If
      Next j
Next i
Mais avec

Et la je bloque.


Pour l'instant mon module contient la 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
Module MyModule
 
    Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As System.Text.StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
 
    Function LireINI(ByVal Entete As String, ByVal Variable As String) As String
        Dim file = Application.StartupPath & "Cassio.ini"
        Dim Deff As String = ""
        Try
            Dim StrBuild As New System.Text.StringBuilder(90)
            Dim Ret As Integer = GetPrivateProfileString(Entete, Variable, Deff, StrBuild, 90, file)
            Return StrBuild.ToString
        Catch
            Return Deff
        End Try
    End Function
 
    Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer

J'arrive donc a lire une valeur d'une section mais aucune idée pour detecter le nombre de ligne d'une section.
Ce qui me permettrait de chercher des lignes Excel contenant chaque nom d'employé d'un service.

Un algo de ce que je voudrait faire serait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Debut
 
    Lire Fichier ini
    NbrLigne = 0
    Pour valeur[1] de Section1 jusqua valeur[max] de Section 1 Faire
         NbrLigne += 1
    FPour
Fin
J'ai eu beau chercher sur les tutos et autres, très peu parle de fichier ini et encore moins du problème en question.

Pouvez-vous m'aider ?