Bonjour tout le monde,

J'ai un petit problème au niveau d'un bout de code qui compte le nombre de ligne que j'ai dans une feuille. La feuille en question est "BDD", dans ce fichier j'ai approximativement 350 lignes, seulement, la variable où je stocke le nombre de ligne m'indique 16 555. Dans ce même classeur, j'ai une feuille "Salarie" où je compte aussi les lignes mais la le problème n'apparait pas et me donne bien le bon nombre de ligne.

Code en question :
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
Dim nbLigne_bdd As Long
    Dim nbLigne_salarie As Integer
    Dim plage_salarie As Range
    Dim plage_bdd As Range
 
    nbLigne_bdd = 0
 
    nbLigne_bdd = Worksheets("BDD").UsedRange.Rows.Count
    nbLigne_salarie = Worksheets("Salarie").UsedRange.Rows.Count
 
    Set plage_salarie = Worksheets("Salarie").Range(Worksheets("Salarie").Cells(1, 1), Worksheets("Salarie").Range("A1").End(xlDown).Offset(1, 0))
    Set plage_bdd = Worksheets("BDD").Range(Worksheets("BDD").Cells(1, 1), Worksheets("BDD").Range("A1").End(xlDown).Offset(1, 0))
 
    tab_salarie() = Application.Transpose(plage_salarie.Value)
 
 
    tab_bdd() = Application.Transpose(plage_bdd.Value)
A savoir que les données sont importées depuis un fichier Xml à partir de ce code :

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
Private Sub Import_Click()
 
 
 
    Application.ScreenUpdating = False
 
 
 
    If Worksheets("BDD").Range("A1") = void And PDCA <> False Then
        With ActiveSheet.QueryTables.Add(Connection:="FINDER;" & PDCA, Destination:=Range("A1"))
                .Name = "PDCA"
                .FieldNames = True
                .RowNumbers = False
                .FillAdjacentFormulas = False
                .PreserveFormatting = True
                .RefreshOnFileOpen = False
                .BackgroundQuery = True
                .RefreshStyle = xlInsertDeleteCells
                .SavePassword = False
                .SaveData = True
                .AdjustColumnWidth = True
                .RefreshPeriod = 0
                .WebSelectionType = xlAllTables
                .WebFormatting = xlWebFormattingNone
                .WebPreFormattedTextToColumns = True
                .WebConsecutiveDelimitersAsOne = True
                .WebSingleBlockTextImport = False
                .WebDisableDateRecognition = False
                .WebDisableRedirections = False
                .Refresh BackgroundQuery:=False
            End With
 
            Unload Me
        Else
 
        If PDCA <> False Then
            With ActiveSheet.QueryTables.Add(Connection:="FINDER;" & PDCA, Destination:=Worksheets("BDD").Range("A1").End(xlDown).Offset(1, 0))
                .Name = "PDCA"
                .FieldNames = True
                .RowNumbers = False
                .FillAdjacentFormulas = False
                .PreserveFormatting = False
                .RefreshOnFileOpen = True
                .BackgroundQuery = True
                .RefreshStyle = xlInsertDeleteCells
                .SavePassword = False
                .SaveData = True
                .AdjustColumnWidth = True
                .RefreshPeriod = 0
                .WebSelectionType = xlAllTables
                .WebFormatting = xlWebFormattingNone
                .WebPreFormattedTextToColumns = True
                .WebConsecutiveDelimitersAsOne = True
                .WebSingleBlockTextImport = False
                .WebDisableDateRecognition = False
                .WebDisableRedirections = False
                .Refresh BackgroundQuery:=False
             End With
 
 
            Cells(derlig, 1).EntireRow.Delete
 
            Call nouveau_salarie
 
            Unload Me
        Else
            Dim retour As Long
            retour = MsgBox(prompt:="Aucun fichier sélectionner", Buttons:=vbOKOnly)
 
        End If
    End If
 
 
End Sub

Hypothèses :

- Les paramètres données pour mon code important le fichier Xml ne met pas à jour lorsque des lignes sont supprimées manuellement.

- Le problème vient du type utilisé pour stocker la variable, le type est un long puisque cette feuille contiendra un nombre conséquent de données

- Problème au niveau de la mémoire qui attribue à la variable une valeur qui ne lui ai pas destiné ( peu probable mais bon, j'ai pris en compte toutes les hypothèses ^^)

Voila, si quelqu'un peut m'éclairer sur la nature de cette erreur.

Merci,

Thomas