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 :

Macro Excel: enreg d1 cellule en conservant le mise en forme


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut Macro Excel: enreg d1 cellule en conservant le mise en forme
    Bonjour,

    Je souhaite copir une celule cells(1, 1) dans une variable string mais je souhaite que le contenu de la variable soit équivalent a à la mise en forme de la cellule et non à la formule de la cellule

    J'ai essayé avec la fonction Value mais cela me copie la formule de la cellule.

    Si ce n'est pas possible, comment pourrai-je créer une variable string contenant une date au format mm-aaaa :
    Pti Pié

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    pour récupérer le format essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ?ActiveCell.NumberFormat 
    ?ActiveCell.NumberFormatLocal

    Si ce n'est pas possible, comment pourrai-je créer une variable string contenant une date au format mm-aaaa Question
    Pourquoi veu-tu stocker une date dans une chaine ... tu as le format date ... puis tu peu utiliser l'instruction format pour l'affichier à ta maniére ..:
    (dans fenêtre exécution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MaDate = Now
    Debug.print format(Madate,"mm-yyyy")
    12-2005

  3. #3
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Une String est une chaine de caractères, c'est-à-dire une succession de code ASCII, sans la moindre notion de mise en forme.
    Si tu veux faire un copier coller vers une autre cellule, fais le à la main en enregistrant une macro, et regarde le code généré automatiquement. Tu verras que des paramètres te permettent de garder ou non la mise en forme.
    Sinon, tu devras stocker dans une autre variable les éléments de mise en forme qui t'intéresse. Par exemple, crée un boléen dans lequel tu stockeras le fait que le texte était en gras ou non, un autre pour "italique", une variable "Integer" pour la taille du texte... etc...
    Mais tout dépend de ce que tu veux faire de ta chaine de caractères après...

  4. #4
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut Macro Excel: enreg d1 cellule en conservant le mise en forme
    En fait si je veux une date dasn une variable string, c'est parce que je doit créer un dossier qui a pour nom le mois en cours
    Or, pour créer un dossier, sauf erreur de ma part, la fonction MkDir réclame une variable string avec le chemin du nouveau dossier
    Or un nom de dossier n'accepte pas le : "/" et le format de la date sous office est jj/mm/aaaa par défaut.

    Sinon j'ai essayer ce que vous m'avez conseiller mais ca marche pas :

    Dim lsDate As String
    lsDate = Now
    Debug.Print Format(lsDate, "mm-yyyy")

    :
    Pti Pié

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut Re: Macro Excel: enreg d1 cellule en conservant le mise en f
    Citation Envoyé par repié
    En fait si je veux une date dasn une variable string, c'est parce que je doit créer un dossier qui a pour nom le mois en cours
    Or, pour créer un dossier, sauf erreur de ma part, la fonction MkDir réclame une variable string avec le chemin du nouveau dossier
    Or un nom de dossier n'accepte pas le : "/" et le format de la date sous office est jj/mm/aaaa par défaut.

    Sinon j'ai essayer ce que vous m'avez conseiller mais ca marche pas :

    Dim lsDate As String
    lsDate = Now
    Debug.Print Format(lsDate, "mm-yyyy")

    :
    Change la ligne :
    .. ensuite c'est la fonction format qui te renvoi une chaine...
    par exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mkdir "c:\temp\" & Format(now,"mm-yyyy")

  6. #6
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut Ca marche!!!
    C'est génial ca marche!!!
    MERCI BEAUCOUP!!!!



    par contre si je veux rentre ce chemin d'accçs dans une variable String, j'imagine que je doit faire :

    dim lsLink as string
    lsLink = "C:\UnDossier\" + Format(Now, "mm-yyyy")
    ?
    Pti Pié

  7. #7
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Oui.
    Mais pour être pointilleux, le symbole de la concaténation de string est
    et non
    Mais ça marche...

  8. #8
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut
    Effectivement!!!

    Merci bien Megaxel et bbil
    Pti Pié

  9. #9
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Psiiit, repié, tu as oublié de mettre le tag ...
    PS: le bouton se trouve en bas à gauche, quand tu ouvres ton post.

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

Discussions similaires

  1. VBA Excel, propagation de formule et conservation de mise en forme
    Par mekap dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/09/2010, 16h53
  2. Réponses: 6
    Dernier message: 25/06/2009, 22h22
  3. [XL-2002] Suppression de caractères dans une cellule en conservant la mise en forme
    Par stef_PBR dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/06/2009, 18h25
  4. macro excel pour récupérer cellules
    Par touaine dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2007, 21h05
  5. Réponses: 3
    Dernier message: 29/05/2006, 20h29

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