Problème pour compter les lignes
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:
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:
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