Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb de copie de cellule

2 réponses
Avatar
Calou
Bonsoir,

Je suis vraiment désolé de vous embêter une fois de plus avec mon problème.

Je vous résume en quelques mots le problème qui me préoccupe.
J'ai un échéancier où je trouve :
Une date
Une périodicité (Jour,Semaine, Mois ou Année)
Un écart
Et donc la date de ma prochaine échéance calculée de la façon suivante :
=SI(B3="Jours";DATE(ANNEE(A3);MOIS(A3);JOUR(A3)+C3);SI(B3="Semaine";DATE(ANNEE(A3);MOIS(A3);JOUR(A3)+(C3*7));SI(B3="Mois";DATE(ANNEE(A3);MOIS(A3)+C3;JOUR(A3));DATE(ANNEE(A3)+C3;MOIS(A3);JOUR(A3)))))

Jusque là tout va bien. Ensuite j'ai la macro suivante qui balaie mon
échéancier pour balancer dans l'onglet 'Compte Courant' les écritures dont
la date de prochaine échéances va bientôt arriver.

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
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, 4).Copy 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
Cells(m, 1) = Cells(m, 4) 'Mise à jour de la date de l'opération
dans l'échéancier
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

Mon souci c'est que dans la ligne
.Cells(m, 4).Copy Worksheets("Compte Courant").Cells(derlg, 1) 'Date
il me copie non pas la valeur de la cellule mais la formule c'est à dire
=SI(#REF!="Jours";DATE(ANNEE(#REF!);MOIS(#REF!);JOUR(#REF!)+#REF!);SI(#REF!="Semaine";DATE(ANNEE(#REF!);MOIS(#REF!);JOUR(#REF!)+(#REF!*7));SI(#REF!="Mois";DATE(ANNEE(#REF!);MOIS(#REF!)+#REF!;JOUR(#REF!));DATE(ANNEE(#REF!)+#REF!;MOIS(#REF!);JOUR(#REF!)))))

Comment lui faire comprendre que c'est la valeur qui m'interesse ??

Par avance je vous remercie du temps que vous voudrez bien passer sur mon
problème !

Bonne Soirée

Philippe

2 réponses

Avatar
isabelle
bonjour Calou,

remplace cette ligne par

.Cells(m, 4) = Worksheets("Compte Courant").Cells(derlg, 1)

isabelle



Calou a écrit :
Bonsoir,

Je suis vraiment désolé de vous embêter une fois de plus avec mon problème.

Je vous résume en quelques mots le problème qui me préoccupe.
J'ai un échéancier où je trouve :
Une date
Une périodicité (Jour,Semaine, Mois ou Année)
Un écart
Et donc la date de ma prochaine échéance calculée de la façon suivante :
=SI(B3="Jours";DATE(ANNEE(A3);MOIS(A3);JOUR(A3)+C3);SI(B3="Semaine";DATE(ANNEE(A3);MOIS(A3);JOUR(A3)+(C3*7));SI(B3="Mois";DATE(ANNEE(A3);MOIS(A3)+C3;JOUR(A3));DATE(ANNEE(A3)+C3;MOIS(A3);JOUR(A3)))))

Jusque là tout va bien. Ensuite j'ai la macro suivante qui balaie mon
échéancier pour balancer dans l'onglet 'Compte Courant' les écritures dont
la date de prochaine échéances va bientôt arriver.

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
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, 4).Copy 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
Cells(m, 1) = Cells(m, 4) 'Mise à jour de la date de l'opération
dans l'échéancier
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

Mon souci c'est que dans la ligne
.Cells(m, 4).Copy Worksheets("Compte Courant").Cells(derlg, 1) 'Date
il me copie non pas la valeur de la cellule mais la formule c'est à dire
=SI(#REF!="Jours";DATE(ANNEE(#REF!);MOIS(#REF!);JOUR(#REF!)+#REF!);SI(#REF!="Semaine";DATE(ANNEE(#REF!);MOIS(#REF!);JOUR(#REF!)+(#REF!*7));SI(#REF!="Mois";DATE(ANNEE(#REF!);MOIS(#REF!)+#REF!;JOUR(#REF!));DATE(ANNEE(#REF!)+#REF!;MOIS(#REF!);JOUR(#REF!)))))

Comment lui faire comprendre que c'est la valeur qui m'interesse ??

Par avance je vous remercie du temps que vous voudrez bien passer sur mon
problème !

Bonne Soirée

Philippe





Avatar
Calou
Bonjour Isabelle,
Je suis désolé mais ca ne marche pas.Pour que tu te rende compte, je te
joins un exemple.
http://cjoint.com/?eptEnc5fMi
Tu verras si tu appuie sur le bouton mise à jour de l'échéancier sur
l'onglet échéancier, il supprime la formule permettant de calculer la date
de la prochaine échéance et du coup dans l'écriture qu'il balance sur
l'onglet compte courant il manque la date.
Aurais tu une autre solution.

Merci à toi encore une fois pour ton aide.

Bonne journée.

Philippe

"isabelle" a écrit dans le message de news:

bonjour Calou,

remplace cette ligne par

.Cells(m, 4) = Worksheets("Compte Courant").Cells(derlg, 1)

isabelle



Calou a écrit :
Bonsoir,

Je suis vraiment désolé de vous embêter une fois de plus avec mon
problème.

Je vous résume en quelques mots le problème qui me préoccupe.
J'ai un échéancier où je trouve :
Une date
Une périodicité (Jour,Semaine, Mois ou Année)
Un écart
Et donc la date de ma prochaine échéance calculée de la façon suivante :
=SI(B3="Jours";DATE(ANNEE(A3);MOIS(A3);JOUR(A3)+C3);SI(B3="Semaine";DATE(ANNEE(A3);MOIS(A3);JOUR(A3)+(C3*7));SI(B3="Mois";DATE(ANNEE(A3);MOIS(A3)+C3;JOUR(A3));DATE(ANNEE(A3)+C3;MOIS(A3);JOUR(A3)))))

Jusque là tout va bien. Ensuite j'ai la macro suivante qui balaie mon
échéancier pour balancer dans l'onglet 'Compte Courant' les écritures
dont la date de prochaine échéances va bientôt arriver.

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
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, 4).Copy 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
Cells(m, 1) = Cells(m, 4) 'Mise à jour de la date de l'opération
dans l'échéancier
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

Mon souci c'est que dans la ligne
.Cells(m, 4).Copy Worksheets("Compte Courant").Cells(derlg, 1)
'Date
il me copie non pas la valeur de la cellule mais la formule c'est à dire
=SI(#REF!="Jours";DATE(ANNEE(#REF!);MOIS(#REF!);JOUR(#REF!)+#REF!);SI(#REF!="Semaine";DATE(ANNEE(#REF!);MOIS(#REF!);JOUR(#REF!)+(#REF!*7));SI(#REF!="Mois";DATE(ANNEE(#REF!);MOIS(#REF!)+#REF!;JOUR(#REF!));DATE(ANNEE(#REF!)+#REF!;MOIS(#REF!);JOUR(#REF!)))))

Comment lui faire comprendre que c'est la valeur qui m'interesse ??

Par avance je vous remercie du temps que vous voudrez bien passer sur mon
problème !

Bonne Soirée

Philippe