Date

Bonjour,

Je fais appel à vous car j'aimerai modifier ce code.

Sub MiseAJour()
Dim J As Long, LigneRecopie As Long, Ws As Worksheet
Dim NbMois As Integer, LeMois As Integer, LeAn As Integer, LeMoisEnCours As Integer, LeAnEnCours As Integer
    LeMoisEnCours = Month(Date)
    LeAnEnCours = Year(Date)
    Set Ws = Sheets("Gestion des charges")
    LigneRecopie = Ws.Range("A" & Rows.Count).End(xlUp).Row + 1
    For J = 4 To Ws.Range("I" & Rows.Count).End(xlUp).Row
        If Ws.Range("I" & J) <> "" And Ws.Range("K" & J) = "" Then
            Select Case UCase(Ws.Range("I" & J))
                Case UCase("Mensuel"): NbMois = 1
                Case UCase("Bimestriel"): NbMois = 2
                Case UCase("Trimestriel"): NbMois = 3
                Case UCase("Semestriel"): NbMois = 6
                Case UCase("Annuel"): NbMois = 12
            End Select
            LeMois = Month(DateAdd("m", NbMois, Ws.Range("A" & J)))
            LeAn = Year(DateAdd("m", NbMois, Ws.Range("A" & J)))
            If (LeMois = LeMoisEnCours) And (LeAn = LeAnEnCours) Then
                If MsgBox("Une charge fixe nommée " & Ws.Range("B" & J) & " est prévue ce mois !" & vbCr & vbCr & "Voulez-vous l'ajouter ?", vbQuestion + vbYesNo, "Une charge fixe prévue") = vbYes Then
                    Ws.Range("K" & J) = "Fait"
                    Ws.Range("A" & J).Resize(1, 10).Copy Ws.Range("A" & LigneRecopie)
                    Ws.Range("A" & LigneRecopie) = DateSerial(LeAn, LeMois, Day(Ws.Range("A" & J)))
                    LigneRecopie = LigneRecopie + 1
                End If
            End If
        End If
    Next J
End Sub

Actuellement il permet de recopier si dans la colonne I il y a écrit "Mensuel, bimestriel, trimestriel, semestriel et annuelle une ligne en changeant le mois et l'année si nécessaire.

Exemple du code actuel :

Je dois enregistré une facture datant du 10/1/2017, dès l'ouverture de l'USF, il exécute la procédure ci-dessous (MiseAJour)

Il me pose la question si je veux ajouter une charge fixe (ça peut être le loyer, la facture de téléphone, en gros tous les opérateurs qui sont en prélèvements)

Il sera daté en date du 1/2/2017.

Puis me recopie la ligne sur la dernière ligne vide trouvée.

Moi je souhaite modifier ce code, peux être cette ligne (pas sûr) :

If (LeMois = LeMoisEnCours) And (LeAn = LeAnEnCours) Then

Afin de procéder de cette manière :

Ma dernière ligne enregistré en janvier 2017 concernant une facture de décembre 2016.

Nous avons toujours une opération datant du 10/1/17.

Je souhaite recopié cette opération non pas à l'ouverture de l'USF en février mais en mars 2017.

Car je suis obligé d'attendre que le mois soit clôturé (terminé) pour comptabilisés les factures d'achats du mois M-1 (précédentes).

Récapitulatif :

Dans ma base de données le mois des dernières factures enregistré ont étaient en décembre 2016.

Je décide d'enregistrer mes mes factures de janvier 2017, mais pour enregistré je suis obligé d'attendre que le mois soit terminé, donc de les enregistré en février.

J'espère que j'ai été le plus précis possible car c'est pas évident d'expliquer ce genre de situation.

je joints un fichier , lancez l'usf, normalement un msbox se lance, fermez l'usf, supprimer la ligne 5 puis normalement le msgbox n'apparait plus, moi je veux qu'il apparait dans cas.

Merci d'avance.

6ronibo.xlsm (85.31 Ko)

Je me permets de remonter mon poste,

Rechercher des sujets similaires à "date"