Sub qui s'arrête au milieu de son éxécution

Bonjour,

J'ai un soucis avec le code que j'ai écris ce matin (il n'a jamais marché encore), je suis encore novice en vba donc c'est peut être quelque chose de bête mais bon.

J'ai écris une macro qui extrait des données en fonction des entrées utilisateurs et j'ai un problème lorsque j'essaye de formater celles-ci.

Lorsque j’exécute le code en mode débogage, il s’arrête sur ma première ligne de modification du fichier (Commentaire marqué numéro 2) et reprend sur la ligne avec un commentaire marqué numéro 1 comme s'il y avait eu un goto au lieu de la concaténation.

Je n'ai pas d'erreur de la part d'excel

Qu'est ce qu'il se passe dans mon code ? J'ai déjà eu un soucis semblable et avait été incapable d'en déterminer la cause.

Si vous avez besoin de plus d'informations n'hésitez pas !

Merci d'avance !

Sub generateFiles()
    ' ... Beaucoup de lignes de traitements ...

    createCsv

    Workbooks(FichierOùCopier).Activate    '<========================== Ligne 1
    Application.DisplayAlerts = True
End Sub

Sub createCsv()
'
' CreateCsv Macro
'
    Dim i As Integer, j As Integer, str As String, numRows As Integer

    FormatLines

    numRows = Last(1, Range("A1", "C65536"))
    i = 0
    While (i <= numRows)
        j = i
        While (j > 0 And StrComp(Cells(j, 8), Cells(i, 8)) = 0)
            j = j - 1
        Wend
        If (i = j) Then
            Cells(i, 9) = Cells(i, 13)
        Else
            Cells(i, 9) = Cells(j, 9) & " / " & Cells(j, 13)
            Rows(i).Delete
        End If
        Cells(i, 13) = ""
    Wend
End Sub

Sub FormatLines()
    Dim i As Integer, numRows As Integer

    Sheets(1).Activate
    i = 0
    numRows = Last(1, Range("A1", "C65536"))
    With Sheets(1)
        While (i <= numRows)
           .Cells(i, 8).Value = .Cells(i, 3).Value & .Cells.Value(i, 4)   '<===================================================== Ligne 2
            .Cells(i, 13) = Format(.Cells(i, 6), "dddd") & " " & Format(.Cells(i, 1), "hhmm") & " " & Format(.Cells(i, 2), "hhmm")
            .Cells(i, 11) = 1724
            .Cells(i, 12) = "things...."
            If (i < Rows.count / 3) Then
                .Cells(i, 1) = "ADE"
            ElseIf (i < Rows.count / 3 * 2) Then
                .Cells(i, 1) = "CRI"
            Else
                .Cells(i, 1) = "DER"
            End If
            i = i + 1
        Wend
    End With
End Sub

Bon, pour ceux qui viennent d'autres langages et qui se auraient ce genre de problème.

Le problème était tout bête mais excel ne prévient pas des out of bound, je tapais en dehors de la feuille et donc il sortais de la procédure (par contre je ne sais pas pourquoi il n'éxecutais pas une partie du code dans la procédure qui l'appellait).

Bonjour,

Tu peux avoir le nombre de lignes dans ton fichier autrement :

numRows = Rows.Count

Si c'est la dernière ligne remplie que tu veux, ce sera par exemple :

numRows = Range("A" & Rows.Count).end(xlUp).Row
Rechercher des sujets similaires à "sub qui arrete milieu execution"