Aide macro

Bonjour le forum

pouvez vous m'aider et me dire si mon code est correct s'il vous plais

je ne comprend pas pourquoi il ne me saute pas la ligne quand la cellule de la colonne E = oui

merci pour votre aide

voici mon code

Sub NOMBRE_DE_SINISTRES_DECLARES1()

    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 As Long
    Dim l As Long
    Dim j, k As Integer
    Dim a, b, c, d, e As Integer

    DernLigne = 0
    With Worksheets("Sinistre_Historique_ICIPMTT15_7")
        DernLigne = .Range("A" & .Rows.Count).End(xlUp).Row
    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

    For l = 1 To DernLigne
        If Sheets("Feuil1").Cells(l, 5).Value <> OUI Then
            For i = 1 To 12
                For k = a To e
                    Sheets("Feuil1").Cells(i + (k - 2013) * 12, 38).Value = nblignes(i, k)
                Next k
            Next i
        End If
    Next l

End Sub

Bonjour,

C'est possible de mettre le fichier avec ? C'est plus simple pour regarder

merci de ton aide

ci - joint le fichier

12sauteligne.xlsm (21.99 Ko)

Je comprends pas trop ce que tu cherche à faire..

Peut -tu soit expliquer ce que tu veux à la fin ou alors expliquer ton code ?

Sinon dans le code en commentaire ou tu vérifie si c'est pas egale à oui tu as oublier les guillemets.

Ton Dernligne il est mal initialiser il faut faire :

DernLigne = Activesheet.Range("A" & .Rows.Count).End(xlUp).Row
'OU
DernLigne = Sheets(1).Range("A" & .Rows.Count).End(xlUp).Row
'OU
DernLigne = Sheets("Feuil1").Range("A" & .Rows.Count).End(xlUp).Row

Mais j'ai pas trop compris sinon

Edit : dans le code que tu a posté en haut ca doit etre bon si tu rajoute les guillemets autour de "Oui"

je calcule le nombre de sinistre declaré par mois

jai deux feuille sur mon fichier:

-sur la feuille1 j'ai une colonne année mois numéro contrat programme actif oui nn et apres normalement jai ma macro qui viens s'effectuer

- ma 2eme feuille st les sinistre que j'ai eu

une fois que j'effectue ma macro sa me donne des chiffres dans la colonne 38 mais il ya un probleme je voudrais que

si la cellule de la colonne 5= oui alors la macro ne fais rien et je passe a la prochaine cellule

je pensais faire :

If Sheets("Feuil1").Cells(l, 5).Value <> OUI Then

mais sa ne marche pas

par exple

la j'ai :

janvier 2013 0

fevrier 2013 0

mars 2013 1

mars regul 2013 0

avril 2013 2

mai 2013 1

juin 2013 0

juillet 2013

et je voudrais obtenir

janvier 2013 0

fevrier 2013 0

mars 2013 1

mars regul 2013

avril 2013 0

mai 2013 2

juin 2013 1

juillet 2013 0

C'est ce que j'ai dit dans le message d'avant essaye ça plutôt :

If Sheets("Feuil1").Cells(l, 5).Value <> "OUI" Then

j'ai pas compris

Tu n'a pas mis de guillemets avant et après ton OUI

sa marche toujours pas

J'ai fait ça et ça marche:

    For i = 1 To 12
        For k = a To e
            If Sheets("Feuil1").Cells(i + 1 + (k - 2013) * 12, 5).Value <> "OUI" Then
                Sheets("Feuil1").Cells(i + 1 + (k - 2013) * 12, 38).Value = nblignes(i, k)
            End If
        Next k
    Next i

Bonjour Excelleurs(ses), Aude21,

Je vois que tu galères toujours sur ton projets. tu ne souhates pas faire un formulaire avec une listView et des liste déroulantes qui seront tes critères?

Sub NOMBRE_DE_SINISTRES_DECLARES1()

    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 As Long
    Dim l As Long
    Dim j, k As Integer
    Dim a, b, c, d, e As Integer
    DernLigne = 0
    With Worksheets("Sinistre_Historique_ICIPMTT15_7")
        DernLigne = .Range("A" & .Rows.Count).End(xlUp).Row
    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

    For l = 1 To DernLigne
        If Sheets("Feuil1").Cells(l, 5).Value <> OUI Then 'SUR TON FICHIER EXCEL FAIT GAFFE A LA casse la NOTATION OUI ET  oui n'est pas pareil.
            For i = 1 To 12
                For k = a To e
'POURQUOI LA COLONNE AL OU 38
                    Sheets("Feuil1").Cells(i + (k - 2013) * 12, 38).Value = nblignes(i, k)
                Next k
            Next i
        End If
    Next l

End Sub

 

moi sa ne me prend aps en compte le oui

voila ceux que j'obtiens en colonne AL et ceux que je veux en colonne AM


Bonjour Medas

oui toujours autant de galère

le problème étais bien un problème de majuscule mercii

38 parce que ds le "vraie" fichier les colonnes précédentes sont compléter

3sauteligne.xlsm (22.54 Ko)
Rechercher des sujets similaires à "aide macro"