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 :

probleme fonction cstr


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Par défaut probleme fonction cstr
    Bonjour,

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    date_case = Format(ActiveSheet.Cells(5, i), "d/mm")
    nouvelle_date = CDate("date_case" & CStr(Year(ActiveSheet.Cells(5, i).Value) + 3))

    je récupère au grace à la fonction Format la date contenue dans une cellule au format jour/mois
    ensuite je voudrais ajouter à une nouvelle date la date formatée et l'année que je souhaite, cependant j'ai un message d'erreur "imcompatibilitée de type"

    Pouvez vous m'aider la dessu

  2. #2
    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 as utilisé date_case en tant que chaine de caractère.
    d'autre part, je te recommande l'utilisation de la fonction DateAdd
    un lien de la à ce sujet
    http://access.developpez.com/faq/?page=dates#dateAdd
    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

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    je pense que l'erreur est là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nouvelle_date = CDate("date_case" & CStr(Year(ActiveSheet.Cells(5, i).Value) + 3))
    je mettrais ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nouvelle_date = CDate(date_case) & CStr(Year(ActiveSheet.Cells(5, i).Value) + 3)
    mais tout dépend du résultat attendu
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Par défaut
    Casefayere,

    Merci pour ta solution, je n'ai pu de message d'erreur,certes mais ta solution ne modifie pas mon contenu de cellule, elle ajoute la date a la suite,
    je me retrouve donc avec une cellule 29/02/20092012 :s

    Merci quand même.

    Je vais me pencher sur la fonction dateadd()

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    ou tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateSerial(year(ActiveSheet.Cells(5, i)+3), Month(ActiveSheet.Cells(5, i)), Day(ActiveSheet.Cells(5, i)))

  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
    je n'aurais pas qualifier le code de simple, mais il a le mérite de fonctionner
    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
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour jpcheck,

    D'abord : amitiés...

    Ensuite : regarde bien ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Command2_Click()
      Dim date_case As Date
      date_case = "29/02/2000" ' j'ai fait exprès de choisir cette date
      MsgBox DateSerial(Year(date_case) + 3, Month(date_case), Day(date_case))
      MsgBox DateAdd("yyyy", 3, date_case)
    End Sub
    Aprés, ma foi, c'est une question de connaître le but exact du demandeur ...

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/04/2009, 20h17
  2. [Mail] Probleme fonction mail()
    Par tissot dans le forum Langage
    Réponses: 1
    Dernier message: 14/11/2005, 12h55
  3. problème fonctions callback
    Par youp_db dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 02/10/2005, 14h47
  4. probleme fonction gethostbyname
    Par oclone dans le forum Développement
    Réponses: 6
    Dernier message: 14/04/2005, 10h31
  5. probleme fonction syntaxe
    Par gIch dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/02/2005, 09h52

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