IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Calcul de date d'une colonne à une autre [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut Calcul de date d'une colonne à une autre


    Un problème simple pour vous mais pas pour moi (je pense)

    J'ai une colonne "J" dans laquelle il y a des dates.
    Je voudrais simplement mettre dans la colonne "K" les dates de la colonne "J" + 1 an

    Il faut savoir que en certaines date de la colonnes "J", il y a des cellules vide donc je voudrais quelles soit vide dans la colonnes "K"

    Pour peut être mieux comprendre, en pièce joint se que j'ai et se que je voudrais

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Ci dessous une solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(B3<>"";DATE(ANNEE(B3)+1;MOIS(B3);JOUR(B3));"")
    Bon courage

  3. #3
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    J'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 2 To WS.Range("J60000").End(xlUp).Row
            Range ("K" & i).Value = SI(("J" & i) <> "";DATE(ANNEE("J" & i) + 1;MOIS("J" & i);JOUR("J" & i));"")
    Next i
    Mais sa marche pas
    Sa me met :
    Erreur de compilation
    Attendu : Séparateur de liste ou )

    au niveau du ";"

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Pour mettre une formule dans une cellule il faut utiliser FormulaLocal et non Value
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C3").FormulaLocal = "=SI(B3<>"""";DATE(ANNEE(B3)+1;MOIS(B3);JOUR(B3));"""")"
    Si tu veux mettre a jour la cellule avec une macro tu peux aussi le faire sans formule avec l'instruction DateAdd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("D3").Value = DateAdd("y", 1, Range("B3").Text)

  5. #5
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Je ne comprend pas, je essayé et sa marche pas

    J'ai aussi essayé avec DateSerial mais marche toujours pas

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    tu souhaites faire la mise à jour "juste une fois" ou bien est-ce récurrent ?

    Une boucle comme celle que jfontaine propose devriat faire l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("D3").Value = DateAdd("y", 1, Cdate(Range("B3").Text))
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    J'ai appliqué a ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 2 To WS.Range("J60000").End(xlUp).Row
            Range ("K" & i).Value =  DateAdd("y", 1, Range("J" & i).Text)
    Next i

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/02/2021, 16h57
  2. MFC d'une colonne à une colonne et planning perpetuel
    Par mlegentil dans le forum Excel
    Réponses: 0
    Dernier message: 12/04/2014, 17h43
  3. [Débutant] Calculer une date a partir d'une durée et autre date
    Par saritta.sam dans le forum C#
    Réponses: 5
    Dernier message: 20/05/2013, 13h11
  4. Calcul du nombre d'occurences dans une colonne
    Par Masmeta dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/09/2007, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo