Modifier un code vba de dates (dernier jour du trimestre précédent celui en cours)

pascal21

XLDnaute Barbatruc
Code:
Range("b2").Value = DateSerial(Year(Date), (Int(Month(Date) / 3) - 1) * 3 + 1, 1) - 1
bonjour à tous et bonne année
ce bout de code qui permet d'afficher la date du dernier jour du trimestre précédent ne semble pas fonctionner correctement depuis le passage à le nouvelle année
cela devrait afficher 31/12/2010 et là ça m'affiche 30/09/2010
j'ai essayé au pif, quelques modifs sur le code et je suis 'tombé' sur
Code:
Range("b2").Value = DateSerial(Year(Date), (Int(Month(Date) / 4) - 1) * 0 + 1, 1) - 1
qui semble donner le bon résultat, mais il faudrait rajouter un test pour voir
je pensais à une cellule de référence en c2 par exemple et que ça m'affiche en b2 la date voulue
mais là encore, je ne sais pas faire
je rajoute qu'il me faut obligatoirement un code VBA et non pas une formule ça n'irait pas avec mon fichier
merci de votre aide
 
Dernière édition:

pascal21

XLDnaute Barbatruc
Re : Modifier un code vba de dates (dernier jour du trimestre précédent celui en cour

je vais faire une petite modif à ma demande et j'adapterai dans mon fichier ensuite
code pour le dernier jour du mois précédent le mois en cours
se qui doit donner pour aujourd'hui 31/12/10
se qui donnerait si on était le 20/12/10 30/11/10
merci et excusez moi pour le changement mais j'ai l'impression que ce n'était pas simple
 

pascal21

XLDnaute Barbatruc
Re : Modifier un code vba de dates (dernier jour du trimestre précédent celui en cour

bon bin j'ai trouvé en biaisant un peu
Code:
 =DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI());0)
ensuite j'ai utilisé l'enregistreur de macro (on n'y pense jamais assez)
pour avoir la syntaxe VBA et le tour est joué
 

ROGER2327

XLDnaute Barbatruc
Re : Modifier un code vba de dates (dernier jour du trimestre précédent celui en cour

Bonsoir à tous
Une proposition :
VB:
Sub tata()
  [B2].Value = DateSerial(Year(Date) + ((3 * Int((11 + Month(Date)) / 3)) > Month(Date)), 3 * Int((11 + Month(Date)) / 3) + 1, 0)
End Sub
ROGER2327
#4833


Vendredi 6 Décervelage 138 (Saints Polonais, prolétaires, SQ)
14 Nivôse An CCXIX
2011-W01-1T18:03:17Z
 

ROGER2327

XLDnaute Barbatruc
Re : Modifier un code vba de dates (dernier jour du trimestre précédent celui en cour

Re...
bon bin j'ai trouvé en biaisant un peu
Code:
 =DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI());0)
ensuite j'ai utilisé l'enregistreur de macro (on n'y pense jamais assez)
pour avoir la syntaxe VBA et le tour est joué
Ça m'a tout l'air de renvoyer la date du dernier jours du mois précédent. Le problème a changé ?​
ROGER2327
#4834


Vendredi 6 Décervelage 138 (Saints Polonais, prolétaires, SQ)
14 Nivôse An CCXIX
2011-W01-1T18:07:36Z
 

pascal21

XLDnaute Barbatruc
Re : Modifier un code vba de dates (dernier jour du trimestre précédent celui en cour

bonjour Roger et merci
le problème était toujours le même a savoir: trouver la dernier jour du trimestre précédent
mais comme je n'obtenais pas de réponse qui semblait fonctionner
j'en ai déduis que c'était plus compliqué qu'il n'y paraissait
du coup j'ai transformé ma demande en 'dernier jour du mois précédent
l'avantage est que si ça évoluait plus tard et que je doive sauvegarder (c'est pour aller dans un code de sauvegardes de données trimestrielles) tous les mois, je n'aurai rien à modifier
désolé que tu n'en sois pas rendu compte avant de poster
moi même je trouve désagréable que les demandes changent en cours de route quand je réponds à une question
mais là c'est parce que je pensais que je n'aurais pas de réponse à ma question initialement formulée
 

ROGER2327

XLDnaute Barbatruc
Re : Modifier un code vba de dates (dernier jour du trimestre précédent celui en cour

Re…
Il n'y a pas de mal. Mais essayez tout de même la proposition du message #6 : je crois qu'elle répond au problème initial.​
ROGER2327
#4838


Dimanche 8 Décervelage 138 (Saint Bordue, Capitaine, ST)
16 Nivôse An CCXIX
2011-W01-3T13:31:47Z
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 789
Membres
101 817
dernier inscrit
carvajal