Ajouter une date de fin pour un débit/crédit récurrent via VBA
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é:
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 faire marcher le l'écheancier, j'ai injecté ça :
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 SubJ'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
Bonsoir,
sans fichier impossible de voir ce que vous faites...
Dans le premier code vous mettez "à la vue" les valeurs du USF dans la feuille Reccurent.
Dans le deuxième code vous faites à priori un filtre sur une feuille différente de Reccurent...
Le lien entre les deux ?
Petite simplification qui est peut-être possible :
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à remplacer par :
If ActiveSheet.Index > 5 Thendans le cas où toutes les feuilles énumérées seraient à gauche du classeur...
@ bientôt
LouReeD
Bonsoir,
Désolé, le fichier ne s'est pas joint...
Merci pour le code pour filtrer la première colonne du tableau
Cordialement,
Praveena
Bonsoir,
Pour info, multiposte
Cdlt.
Bonsoir Jean - Eric,
Il y a un post qui existe déjà avec la solution?
Cordialement
Merci Jean-Éric
Pour info ça fait longtemps que je ne vais plus sur les autres...
Je crois même que je n'ai pas participé à d'autre forums que ceux présent ici, alors... Peu mimporte. Merci.
Si le fichier ne s'est pas joint peut-être est-il trop lourd...
@ bientôt
LouReeD