Procédure ne s’exécute qu'en mode pas à pas
Bonsoir à tous,
J'ai beau me creuser la tête je ne trouve pas la raison qui fait qu'une partie de ma macro ne s'exécute que lorsque je la lance depuis l'éditeur de macro.
Voici la partie de mon code où intervient mon problème, ligne 6 où j’appelle une Sub nommée "Delete_lines"
Code:
1 2 3 4 5 6 7
| With Sheets("Data")
NbLine1 = .Cells(.Rows.Count, 2).End(xlUp).Row ' define the number of line
End With
If NbLine1 > 5 Then
Delete_lines
End If |
Et voici le code de la Sub
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
| Sub Delete_lines()
Dim Main As Worksheet
Dim Data As Worksheet
Dim WBS As Worksheet
Dim MSLine As Range
Dim WBSLine As Range
Dim Phs As String
Dim i As Integer
Dim NbLine1 As Integer
Set Main = ThisWorkbook.Sheets("Main")
Set Data = ThisWorkbook.Sheets("Data")
Set MSLine = Data.Range("A1")
MSLine = MSLine.Offset(0)
Set WBSLine = Main.Range("B6")
WBSLine = WBSLine.Offset(0)
With Sheets("Data")
NbLine1 = .Cells(.Rows.Count, 2).End(xlUp).Row ' define the number of line
End With
For i = 0 To NbLine1
If MSLine.Offset(i, 1) = "" Then
Rows(i + 1 & ":" & i + 1).Delete Shift:=xlUp ' Delete all empty lines
End If
Next i
i = 0
Do While MSLine.Offset(i, 1) <> ""
If i > 1 And MSLine.Offset(i, 1) = WBSLine.Offset(0, 0) Then
Rows(i + 1 & ":" & i + 1).Delete Shift:=xlUp ' Delete all lines with Phase Name to keep only one activity with the Phase name
End If
i = i + 1
Loop
End Sub |
Ce qui doit se passer avant l'appel de la Sub Delete_lines s'effectue normalement ainsi que ce qui doit être traité après, mais lorsque je vérifie le résultat après avoir lancé ma macro depuis un bouton je vois que la partie qu'aurait du réaliser la sub n'a pas été réalisée.
En lançant la macro avec la touche F5 depuis l'éditeur de macro, je n'ai pas ce problème.
Quelqu'un a-t-il une idée de ce qui m'échappe?
Merci pour votre aide
Eric