Macro qui ne fonctionne plus du jour au lendemain

Bonjour,

Il y a quelque temps grâce à votre aide, j'avais réussis à réaliser exactement la macro dont j'avais besoin.

C'est à dire qu'elle devait récupérer les commentaires uniquement des cellules contenant "NC" pour les recopier dans une autre feuille du classeur.

Le problème c'est que depuis que nous avons changé d'année (je ne sais pas si le problème vient de la), la macro ne fonctionne plus. Mais on ne me détecte aucune erreur, il ne se passe juste plus rien...

Voici la macro :

    Sub Commentaire()

    For Each c In Worksheets("Enregistrements").Range("E7:BQ5828") 'On cherche dans la feuille enregistrement sur la plage E7 à BQ5828

    If Not c.Comment Is Nothing Then  'Test s'il y a un commentaire dans la cellule.
    If InStr(c.Comment.Text, "NC") <> 0 Then    ' Test si la cellule avec commentaire contient "NC"

    Worksheets("NON-CONFORME").Cells(i + 3, 2) = c.Comment.Text 'Si elle contient NC, on recopie le commentaire dans la feuille NON-CONFORME
    i = i + 1                                                   ' Ligne 3 et colonne 2 puis on ajoute au suivant de l'autre
    End If
    End If

    Next c
    Worksheets("NON-CONFORME").Cells.WrapText = False

    Application.Goto Reference:="Commentaire"

    End Sub

Avez-vous une idée du problème ?

Merci beaucoup pour votre aide, et bonne année !

Bonjour,

En fin de macro:

MsgBox i

Et médites sur le résultat

Cdlt.

Bonjour,

J'obtiens une message box vide, je suppose donc que ma macro ne fait rien.. qu'il n'y a pas spécialement d'erreurs mais qu'elle "tourne" dans le vide. Mais mon niveau en VBA est très faible et donc je ne vois pas très bien comment résoudre le problème surtout que tout fonctionnait très bien avant et que je n'ai rien changé...

Merci beaucoup

Bonjour,

A tester

Voir fichier. Ctrl + w pour lancer la procédure.

Cdlt

Option Explicit
Option Private Module
Public Sub Commentaire()
' Ctrl+w pour lancer la procédure
Dim Wss As Worksheet, Wsd As Worksheet
Dim Plage As Range, c As Range
Dim i As Long
    Application.ScreenUpdating = False
    Set Wss = Worksheets("Enregistrements")
    Set Wsd = Worksheets("NON CONFORME")
    Set Plage = Wss.Range("E7:BQ5828")
    Wsd.Cells.Clear
    ' On cherche dans la feuille enregistrements dans rng
    For Each c In Plage
        ' Test s'il y a un commentaire dans la cellule.
        If Not c.Comment Is Nothing Then
            ' Test si la cellule avec commentaire contient "NC"
            If InStr(c.Comment.Text, "NC") <> 0 Then
                ' Si elle contient NC, on recopie le commentaire dans la feuille NON-CONFORME
                With Wsd.Cells(i + 3, 2)
                    .Value = c.Address(False, False) & ":  " & c.Comment.Text
                    .WrapText = False
                End With
                ' Ligne 3 et colonne 2 puis on ajoute au suivant de l'autre
                i = i + 1
            End If
        End If
    Next c
    'Application.Goto Reference:="Commentaire"
    Set Wss = Nothing: Set Wsd = Nothing: Set Plage = Nothing
End Sub

Merci beaucoup pour ta réponse !

Bonjour,

Merci de clore le sujet.

Cdlt

Rechercher des sujets similaires à "macro qui fonctionne jour lendemain"