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 :
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 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)
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
Partager