Erreur code 13 VBA

Résolu/Fermé
LuNatik - Modifié par crapoulou le 27/04/2016 à 09:45
 LuNatik - 27 avril 2016 à 10:47
Bonjour,

Je débute en VBA, et je me retrouve confronté au message de debogage code 13 sur mon fichier alors qu'il fonctionnait encore hier. Pouvez-vous m'aider à déterminer la cause du problème svp ?
Je link mon code, avec la ligne 38 en erreur (qui est surligné en jaune dans mon code): If Sheets("astreinte").Cells(lig, col).Value Like "AST" Then

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    'Modification de la semaine?
    If Target.Address = Sheets("recap_astreinte").Cells(2, 2).Address Then
    Dim col As Integer
    Dim nom As String
    
    'Effaçage des données du fichier recap_astreinte
    For k = 13 To 52
    Sheets("recap_astreinte").Cells(k, 3) = ""
    Sheets("recap_astreinte").Cells(k, 4) = ""
    Sheets("recap_astreinte").Cells(k, 5) = ""
    Next k
    
    'Effaçage des données du fichier recap_astreinte
    For k = 54 To 79
    Sheets("recap_astreinte").Cells(k, 3) = ""
    Sheets("recap_astreinte").Cells(k, 4) = ""
    Sheets("recap_astreinte").Cells(k, 5) = ""
    Next k
      
    'Récupération du numéro de la semaine
    semaine = Sheets("recap_astreinte").Cells(2, 2).Value
    'Calcul de l'indice de la colonne associée
    col = (semaine - 1) * 12 + 3
    
    'Indice de la colonne pour la semaine (n+1)
    colp = col + 12
    

          
    
    
    'Recherche des astreintes pour la semaine n
    For lig = 7 To 400
        
        'Si la Case contient "AST"
        If Sheets("astreinte").Cells(lig, col).Value Like "AST" Then
            'Récupération du nom et du numéro de téléphone
            nom = Sheets("astreinte").Cells(lig, 2)
            tel = Sheets("astreinte").Cells(lig, 3)
            'Récupération du secteur associé
            emplacement = lieu(lig)
            
            'Recherche du secteur dans le fichier recap_astreinte
            For j = 13 To 79
            
                a1 = Sheets("recap_astreinte").Cells(j, 1).Value
        
                'Si les secteurs coïncident
                If UCase(a1) Like emplacement Then
                    'Si aucun nom dans le secteur, on l'insère
                    If Sheets("recap_astreinte").Cells(j, 3) = "" Then
                    Sheets("recap_astreinte").Cells(j, 3) = nom
                    Else
                    'Sinon, tant que l'espace contient un nom, on décale d'une ligne
                    test = j + 1
                    While Sheets("recap_astreinte").Cells(test, 3) <> ""
                    test = test + 1
                    Wend
                    
                    'On place le nom dans la ligne disponible
                    Sheets("recap_astreinte").Cells(test, 3) = nom

                    End If
                    
                    'Idem pour le numéro de téléphone
                    If Sheets("recap_astreinte").Cells(j, 4) = "" Then
                    Sheets("recap_astreinte").Cells(j, 4) = tel
                    Else
                    test = j + 1
                    While Sheets("recap_astreinte").Cells(test, 4) <> ""
                    test = test + 1
                    Wend
                    
                    Sheets("recap_astreinte").Cells(test, 4) = tel

                    End If
                End If
            Next j
        End If
        
        'On réitère pour la semaine (n+1)
        If Sheets("astreinte").Cells(lig, colp).Value Like "AST" Then
            nomp = Sheets("astreinte").Cells(lig, 2)
            emplacementp = lieu(lig)
        
            For j = 13 To 79
                a1 = Sheets("recap_astreinte").Cells(j, 1).Value
        
                If UCase(a1) Like emplacementp Then
                    'On place le nom en 5ème colonne
                    If Sheets("recap_astreinte").Cells(j, 5) = "" Then
                    Sheets("recap_astreinte").Cells(j, 5) = nomp
                    Else
                    test = j + 1
                    While Sheets("recap_astreinte").Cells(test, 5) <> ""
                    test = test + 1
                    Wend
                    Sheets("recap_astreinte").Cells(test, 5) = nomp

    
                    End If
                End If
            Next j
        End If
        
    Next lig
    End If
    
End Sub


Merci d'avance !
Kévin

A voir également:

1 réponse

J'ai réussi à trouver le problème qui provenait d'une manipulation des exploitants sur les fichiers sources alimentant mon document et non un problème de VBA ! Merci quand même.
0