Encore un souci avec ma macro !

Le
Calou
Bonjour,
Depuis quelques jours, je vous ennuie avec ma macro. Il y a encore un souci.
Je vous explique :C'est un fichier où je gère mes comptes personnels. J'ai
une feuille Echéancier avec des écritures qui sont saisies et quand la date
de la prochaine échéance arrive, la macro bascule automatiquement vers la
feuille compte courant.
Si j'ai une seule écriture à balancer pas de problème, par contre si j'ai
deux écritures, seule la dernière est inscrite sur ma feuille compte
courant.

Je vous joins la macro en question :


Sub Maj_Echeancier()
Application.EnableEvents = False
'compteur = 0
Dim Phrase As String
Phrase = ""
m = 4 'Ligne à partir de laquelle il faut balayer les dates
derlg = Feuil1.[a65536].End(3).Row + 1
Do While Cells(m, 4) <> "" 'Boucle sur les prochaines échéances
Cells(m, 12) = Cells(m, 4)
If Cells(m, 4) <= Date + 3 Then
If Cells(m, 5) <> 0 Then
If Cells(m, 5) <> 99 Then Cells(m, 5) = Cells(m, 5) - 1 'Si le Nb d
'échéance est <> de 99 on décrémente de 1
With Worksheets("Echéancier")
Cells(m, 1) = Cells(m, 4) 'Mise à jour de la date de l'opération
dans l'échéancier
'.Cells(m, 1).Copy Worksheets("Compte Courant").Cells(derlg, 1)
'Date
.Cells(m, 12).Copy Worksheets("Compte Courant").Cells(derlg, 1)
'Date
'.Cells(m, 4) = Worksheets("Compte Courant").Cells(derlg, 1) 'Date
.Cells(m, 6).Copy Worksheets("Compte Courant").Cells(derlg, 2) 'Type
.Cells(m, 7).Copy Worksheets("Compte Courant").Cells(derlg, 4)
'Tiers
.Cells(m, 8).Copy Worksheets("Compte Courant").Cells(derlg, 5)
'Catégorie
.Cells(m, 9).Copy Worksheets("Compte Courant").Cells(derlg, 6)
'Libellé
.Cells(m, 10).Copy Worksheets("Compte Courant").Cells(derlg, 7)
'Débit
.Cells(m, 11).Copy Worksheets("Compte Courant").Cells(derlg, 8)
'Crédit
compteur = compteur + 1
End With
End If
End If
m = m + 1
Loop
'If compteur = 1 Then
' Phrase = "1 nouvelle écriture !"
'Else
' Phrase = compteur & " nouvelles écritures !"
'End If
'If compteur <> 0 Then MsgBox Phrase, vbOKOnly, "Echéancier"
End Sub

Je suis un eternel débutant et je compte sur vous pour votre compréhension.

Un grand merci à vous par avance pour votre aide.

Bonne soirée.

Philippe
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #19123081
Bonsoir.
Un peu au hasard, ajoute pour chaque recopie :
derlg = derlg + 1
Cordialement.
Daniel

Bonjour,
Depuis quelques jours, je vous ennuie avec ma macro. Il y a encore un souci.
Je vous explique :C'est un fichier où je gère mes comptes personnels. J'ai
une feuille Echéancier avec des écritures qui sont saisies et quand la date
de la prochaine échéance arrive, la macro bascule automatiquement vers la
feuille compte courant.
Si j'ai une seule écriture à balancer pas de problème, par contre si j'ai
deux écritures, seule la dernière est inscrite sur ma feuille compte courant.

Je vous joins la macro en question :


Sub Maj_Echeancier()
Application.EnableEvents = False
'compteur = 0
Dim Phrase As String
Phrase = ""
m = 4 'Ligne à partir de laquelle il faut balayer les dates
derlg = Feuil1.[a65536].End(3).Row + 1
Do While Cells(m, 4) <> "" 'Boucle sur les prochaines échéances
Cells(m, 12) = Cells(m, 4)
If Cells(m, 4) <= Date + 3 Then
If Cells(m, 5) <> 0 Then
If Cells(m, 5) <> 99 Then Cells(m, 5) = Cells(m, 5) - 1 'Si le Nb d
'échéance est <> de 99 on décrémente de 1
With Worksheets("Echéancier")
Cells(m, 1) = Cells(m, 4) 'Mise à jour de la date de l'opération dans
l'échéancier
'.Cells(m, 1).Copy Worksheets("Compte Courant").Cells(derlg, 1) 'Date
.Cells(m, 12).Copy Worksheets("Compte Courant").Cells(derlg, 1) 'Date
'.Cells(m, 4) = Worksheets("Compte Courant").Cells(derlg, 1) 'Date
.Cells(m, 6).Copy Worksheets("Compte Courant").Cells(derlg, 2) 'Type
.Cells(m, 7).Copy Worksheets("Compte Courant").Cells(derlg, 4) 'Tiers
.Cells(m, 8).Copy Worksheets("Compte Courant").Cells(derlg, 5)
'Catégorie
.Cells(m, 9).Copy Worksheets("Compte Courant").Cells(derlg, 6)
'Libellé
.Cells(m, 10).Copy Worksheets("Compte Courant").Cells(derlg, 7)
'Débit
.Cells(m, 11).Copy Worksheets("Compte Courant").Cells(derlg, 8)
'Crédit
compteur = compteur + 1
End With
End If
End If
m = m + 1
Loop
'If compteur = 1 Then
' Phrase = "1 nouvelle écriture !"
'Else
' Phrase = compteur & " nouvelles écritures !"
'End If
'If compteur <> 0 Then MsgBox Phrase, vbOKOnly, "Echéancier"
End Sub

Je suis un eternel débutant et je compte sur vous pour votre compréhension.

Un grand merci à vous par avance pour votre aide.

Bonne soirée.

Philippe


Calou
Le #19123601
Bonjour Daniel,
On dit que le hasard fait bien les choses...
Mille fois merci.
Il y a parfois des évidences qui nous echappe !
Bonne journée.
Philippe
"Daniel.C"
Bonsoir.
Un peu au hasard, ajoute pour chaque recopie :
derlg = derlg + 1
Cordialement.
Daniel

Bonjour,
Depuis quelques jours, je vous ennuie avec ma macro. Il y a encore un
souci. Je vous explique :C'est un fichier où je gère mes comptes
personnels. J'ai une feuille Echéancier avec des écritures qui sont
saisies et quand la date de la prochaine échéance arrive, la macro
bascule automatiquement vers la feuille compte courant.
Si j'ai une seule écriture à balancer pas de problème, par contre si j'ai
deux écritures, seule la dernière est inscrite sur ma feuille compte
courant.

Je vous joins la macro en question :


Sub Maj_Echeancier()
Application.EnableEvents = False
'compteur = 0
Dim Phrase As String
Phrase = ""
m = 4 'Ligne à partir de laquelle il faut balayer les dates
derlg = Feuil1.[a65536].End(3).Row + 1
Do While Cells(m, 4) <> "" 'Boucle sur les prochaines échéances
Cells(m, 12) = Cells(m, 4)
If Cells(m, 4) <= Date + 3 Then
If Cells(m, 5) <> 0 Then
If Cells(m, 5) <> 99 Then Cells(m, 5) = Cells(m, 5) - 1 'Si le Nb
d 'échéance est <> de 99 on décrémente de 1
With Worksheets("Echéancier")
Cells(m, 1) = Cells(m, 4) 'Mise à jour de la date de l'opération
dans l'échéancier
'.Cells(m, 1).Copy Worksheets("Compte Courant").Cells(derlg, 1)
'Date
.Cells(m, 12).Copy Worksheets("Compte Courant").Cells(derlg, 1)
'Date
'.Cells(m, 4) = Worksheets("Compte Courant").Cells(derlg, 1)
'Date
.Cells(m, 6).Copy Worksheets("Compte Courant").Cells(derlg, 2)
'Type
.Cells(m, 7).Copy Worksheets("Compte Courant").Cells(derlg, 4)
'Tiers
.Cells(m, 8).Copy Worksheets("Compte Courant").Cells(derlg, 5)
'Catégorie
.Cells(m, 9).Copy Worksheets("Compte Courant").Cells(derlg, 6)
'Libellé
.Cells(m, 10).Copy Worksheets("Compte Courant").Cells(derlg, 7)
'Débit
.Cells(m, 11).Copy Worksheets("Compte Courant").Cells(derlg, 8)
'Crédit
compteur = compteur + 1
End With
End If
End If
m = m + 1
Loop
'If compteur = 1 Then
' Phrase = "1 nouvelle écriture !"
'Else
' Phrase = compteur & " nouvelles écritures !"
'End If
'If compteur <> 0 Then MsgBox Phrase, vbOKOnly, "Echéancier"
End Sub

Je suis un eternel débutant et je compte sur vous pour votre
compréhension.

Un grand merci à vous par avance pour votre aide.

Bonne soirée.

Philippe







Publicité
Poster une réponse
Anonyme