Problème code (sa n'affiche rien)

Bonjour le forum

j'ai un petit problème sur mon code je voudrais que si le numéro du contrat de la feuille active = numéro de contrat de la feuilles TDB CT(c'est a dire colonne 2 de la feuille tdb = colonne 1 de la feuille active) alors effectuer les commandes d’après mais sa ne m'affiche rien

si quelqu’un pouvait m'aider merci beaucoup

voci mon code et un fichier

Sub NOMBRE_DE_SINISTRES_DECLARES()

    Dim Date_Souscription_Adhésion As Range, Date_Survenance As Range
    Dim DernLigne As Long
    Dim nblignes(1 To 12, 2013 To 2020) As Long
    Dim i, j, k, l As Integer
    Dim a, b, c, d, e As Integer

    With Worksheets("Sinistre")
        DernLigne = .Range("A" & .Rows.Count).End(xlUp).Row
        Set Date_Souscription_Adhésion = .Range("G2:G" & DernLigne)
        Set Date_Survenance = .Range("U2:U" & DernLigne)
    End With

    a = LBound(nblignes, 2)
    e = UBound(nblignes, 2)

    For i = 2 To DernLigne
       If a <= Year(Cells(i, 21).Value) And Year(Cells(i, 21).Value) <= e Then
            j = Month(Cells(i, 7).Value)
            k = Year(Cells(i, 7).Value)
            nblignes(j, k) = nblignes(j, k) + 1
        End If
    Next i

    'si le numero du contrat de la feuille active = numero de contrat de la feuilles TDB CT
    'alors effectuer les commandes d'apres
    'if sheets cellule 1 de la feuille active = cellule 2 de la feuille tdb alors
    For l = 3 To DernLigne
        If Sheets("TDB CT").Cells(l, 2) = Sheets("Sinistre").Cells(l, 1) Then
            For i = 1 To 12
                For k = a To e
                    Sheets("TDB CT").Cells(i + (k - 2013) * 12, 38).Value = nblignes(i, k)
                Next k
            Next i
        End If
    Next l

End Sub

Bonjour,

    Dim i, j, k, l As Integer
    Dim a, b, c, d, e As Integer

Ici l et e seulement sont de type Integer, les autres sont de type Variant...

Il me semble que l'on a déjà appelé ton attention sur ce point à plusieurs reprises !

Les variables se typent individuellement !!!

    With Worksheets("Sinistre")
        DernLigne = .Range("A" & .Rows.Count).End(xlUp).Row
        Set Date_Souscription_Adhésion = .Range("G2:G" & DernLigne)
        Set Date_Survenance = .Range("U2:U" & DernLigne)
    End With

A quoi servent les affectations de plages à des variables, puisque tu ne t'en sers pas !!!

    With Worksheets("Sinistre")
        DernLigne = .Range("A" & .Rows.Count).End(xlUp).Row
        Set Date_Souscription_Adhésion = .Range("G2:G" & DernLigne)
        Set Date_Survenance = .Range("U2:U" & DernLigne)
    End With

Cells n'est pas qualifiée... C'est jouer à la loterie...

   For l = 3 To DernLigne
        If Sheets("TDB CT").Cells(l, 2) = Sheets("Sinistre").Cells(l, 1) Then
            For i = 1 To 12
                For k = a To e
                    Sheets("TDB CT").Cells(i + (k - 2013) * 12, 38).Value = nblignes(i, k)
                Next k
            Next i
        End If
    Next l

Le décalage de lignes entre les deux feuilles n'est pas pris en compte. En outre on ne comprend pas bien le sens de la comparaison dans la mesure où elles sont de structures différentes. Il n'y aura donc pas de correspondances entre les lignes...

Il n'est pas tenu compte non plus que l'on démarre ligne 3 pour l'inscription...

Pour le code : après que l'on t'ai fourni à plusieurs reprises du code correctement écrit et fonctionnel, tu reviens systématiquement à tes habitudes d'écriture d'un code défectueux... A quoi bon... !

Par ailleurs, pour construire un code fonctionnel, il convient que l'analyse préalable de l'opération à réaliser soit correcte !

S'il y a un vice de conception, cela ne fonctionnera pas, mais VBA n'y est pour rien !

le code fonctionnait très bien avant que je rajoute la condition if

en effet je voudrais que si le numéro de contrat du fichier tdb (fichier ou il y a tout les numéro de contrat) correspond au fichier sinistre que je viens d'ouvrir (parce que j'ai plusieurs fichiers sinistres avec des numéro de contrat différents) alors j effectue les macros je veux pas que sa s'affiche pour un autre contrat

je suis consciente de toute les aides que vous m'avez fourni et je vous en remercie

Rechercher des sujets similaires à "probleme code affiche rien"