Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Ajouter une date de fin pour un débit/crédit récurrent via VBA

Praveena

XLDnaute Nouveau
Bonjour,

Travaillant sur un fichier de suivi bancaire, j'ai mis un place un UserForm pour planifier automatiquement des débit/crédit récurrents. (Pour qu'ils soient automatiquement injecté dans le mois concernés une fois le jour J.) Voici à quoi ressemble le userForm:



Voici le code que j'ai injecté:

VB:
Private Sub CommandButton1_Click()
Dim dl%, ws As Worksheet
Set ws = Sheets("Recurrent")
dl = ws.Range("A" & Rows.Count).End(xlUp).Row + 1

With ws
    .Range("A" & dl).Value = Format(TextBox1, "mm-dd-yyyy")
    .Range("B" & dl).Value = ComboBox1
    .Range("C" & dl).Value = ComboBox2
    .Range("D" & dl).Value = TextBox2
    If OptionButton3.Value = True Then
      .Range("E" & dl).Value = OptionButton3.Caption
    ElseIf OptionButton4.Value = True Then
      .Range("E" & dl).Value = OptionButton4.Caption
    End If
    If TextBox5 <> "" Then .Range("F" & dl).Value = CDbl(TextBox5.Value)
    If OptionButton1.Value = True Then
    .Range("G" & dl).Value = OptionButton1.Caption
    ElseIf OptionButton2.Value = True Then
    Range("G" & dl).Value = OptionButton2.Caption
    End If
End With

Unload Me
DebitRecurrent.Show
End Sub

Private Sub TextBox5_AfterUpdate()
On Error Resume Next
Me.TextBox5 = Replace(TextBox5, ".", ",")
Me.TextBox5 = Format(TextBox5.Value, "# ##0.00 €")
End Sub

et pour le transfert:

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
 Dim dl%, ws As Worksheet
 On Error Resume Next
 If ActiveSheet.Name <> "Reccurent" Or ActiveSheet.Name <> "Récapitulatif Mensuel" Or ActiveSheet.Name <> "Récapitulatif Mensuel" Or ActiveSheet.Name <> "Explication" Or ActiveSheet.Name <> "Accueil" Then
  dl = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row
     ActiveSheet.Range(Cells(13, 2), Cells(dl, 10)).Select
     ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
     ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("B13"), _
         SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
         xlSortTextAsNumbers
     With ActiveWorkbook.ActiveSheet.Sort
         .SetRange Range(Cells(13, 2), Cells(dl, 10))
         .Header = xlNo
         .Orientation = xlTopToBottom
         .Apply
     End With
End If
    Range("B13").Select
End Sub

J'ai écrit qu'avec la première date de prélèvement, or on me demande de mettre aussi une date de fin, je ne vois pas comment intégrer cette condition...

Est - ce que vous pouvez m'aider s'il vous plaît?

Cordialement

Praveena
 

herve62

XLDnaute Barbatruc
Supporter XLD
Moi mon chomage pré retraite c'est le 5 pour le mois d'avant ( là 5/01/22 pour décembre /21) et mon épouse son salaire c'est le 25, 26, 27 du mois en cours , mais là pour décembre c'était le 23 une partie et le solde le 04 janvier 2022 , février ce sera le 24 !!! ( agent d'Etat)
et moi si je décale ma déclaration cela peut aller jusqu'au 15
Donc pour revenir sur Terre Excel , tu pourrais me faire une appli avec tous mes critères aléatoires .. je suppose ? ??
STOP ! sujet clos
 
Dernière édition:

Praveena

XLDnaute Nouveau
Bonsoir,

Comme c'était une autre question, j'ai créée une autre discussion, désolé je ne ferrais plus ça.

@herve62 :

Désolé, si je n'ai pas donné de réponse, mais je ne me suis pas connecté ayant subit les effets secondaires de la vaccination.

Donc, si je comprend bien, quand j'indiquerais la date de fin, il se mettra dans la feuille "récurrent". Ensuite, on sauvegarde et à la réouverture il va vérifier la date et il va l'injecter si c'est le cas. Si c'est déjà fait, il va rien faire. Et ça s'injectera donc automatiquement le mois suivant à la même date jusqu'à la date de fin?


Cela veut dire que je dois faire un code pour chaque prélèvement récurrent que j'intégrerais à l'avenir?

On ne peut pas utiliser la fonction Match() ou index combiné? (bon, j'ai essayé mais ça ne faisait rien?)

@JM27 :

Comme c'était une autre question par rapport au échéancier déjà réalisé je me suis dit que c'était un autre sujet, à l'avenir, je ferais tous dans le même fil discussion désolé.

Donc, il faut que j'intègre une case de périodicité qui indiquera le nombre de fois que le mouvement sera répété et de faire en sorte que le code sera répété jusqu'à la date de fin qui sera défini par rapport au date de début? En combinant avec une vérification de la date pour éviter les doublons?



Cordialement
Praveena
 

herve62

XLDnaute Barbatruc
Supporter XLD
J'ai juste fait le traitement dans ce fichier
Sinon tu ajoutes une box dans ton USF , c'est tout simple non ??
De ce fait, les dates change quand on rouvre le fichier...
?? je ne te suis pas !!
Si ton onglet du mois n'a pas encore inscrit les récurrents ( 1 ére ouverture pour le mois concerné) les montants vont s'inscrire à la date en cours !
SI tu re ouvres 2 jours plus tard , tu auras toujours les mêmes données avec l'ancienne date , j'ai Testé en changeant la date du PC !!
J'ai ajouté un code , mais tu peux mettre ce que tu veux dans cette colonne
Quand tu fais VALIDER dans ton USF tu peux inscrire un X dans ta col J de Recurrent, peut importe c'est juste un signe distinctif , la sub fonctionnera idem car je teste juste si dans le mois la col K est vide ou pas !!!
Donc ??
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…