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.
Je me permets de remonter mon poste,