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 insertion formule dans cellule via vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Points : 13
    Points
    13
    Par défaut probleme insertion formule dans cellule via vba
    Bonjour,
    j'ai un créé un fichier excel avec 2 feuilles, une premiere feuille pour la saisie de l'utilisateur et la 2eme pour le recap de toutes les saisies.
    Ce fichier sert à l'attribution d'un numero pour des courriers officiels
    Ds mon entreprise nous avons choisis le format exemple 2008060001
    les 4 premiers chiffres correspondent à l'année les 2 suivants au mois et les 4 derniers c'est une incrementation
    Donc ds mon formulaire de saisie, la cellule B4 est à la date du jour (aujourdhui()) et la cellule B14 contient ce numero. Lorsqu'il clique sur un bouton valider toutes les cellules saisie sont copié et collé sur l'autre feuille. La derniere etape est de mettre à jour cette cellule b14 pour la future saisie.
    Pour cela dans mon code, je concatene mon année (saisie en dure en debut d'année) avec le mois du jour via la cellule b4 et avec les 4derniers chiffres du dernier numero attribué +1.
    Mais j'ai des erreurs à tout va je met ici et la le caractere & mais tjrs pas bon "erreur de copie, erreur de syntaxe"...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selection = "=CONCATENER(2008;(TEXTE(saisie!B4;"mm"));(TEXTE(DROITE(recap!A2;4)+1;"0000")))"
    merci d'avance de votre aide

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    il te faut utiliser soit les meme formule en anglais soit
    selection.formula et formule en anglais
    soit selection.formulalocal = formule en français
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selection.formulalocal = "=CONCATENER(2008;(TEXTE(saisie!B4;mm));(TEXTE(DROITE(recap!A2;4)+1;"000")))"
    mais tu vas rencontrer des problemes avec les guillemets. je te donne pas la solution, je m'en sort pas moi même très bien avec ça.
    mais tu peux aussi définir ta variable par le vba et la coller en b14
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("message").Range("b14") = "2008" & Format(Date, "mm") & Sheets("recap").Range("a2").Value
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    u = "2008" & Format(Date, "mm") & Sheets("recap").Range("a2").Value
    range("b14") = u

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    merci alsimbad
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    u = "2008" & Format(Date, "mm") & Sheets("recap").Range("a2").Value
    range("b14") = u
    la premiere partie est nickel ca copie bien pas d'erreur mais la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("recap").Range("a2").Value
    me redonne mon ancienne chiffre complet alors que je veux juste les 4derniers numeros + 1. et si c'est 0002 qu'il ne me mettent pas 2 mais bien 0002.

    sinon j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selection.formulalocal = "=CONCATENER(2008;(TEXTE(saisie!B4;mm));(TEXTE(DROITE(recap!A2;4)+1;0000)))"
    il me copie parfaitement le code ds la cellule sauf que je n'ai pas résultat car il me manque les guillemet à mm et à 0000 du coup j'ai une erreur de formule.
    merci en tout cas je continue mes tests.

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    c'est bon j'ai reussi c'est nickel j'ai ajouté 2 guillements à chaque fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selection.formulalocal = "=CONCATENER(2008;(TEXTE(saisie!B4;""mm""));(TEXTE(DROITE(recap!A2;4)+1;""0000"")))"
    a+

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

Discussions similaires

  1. [XL-2003] Imposer 1ere lettre majuscule dans cellule via VBA
    Par medino55 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/07/2011, 03h34
  2. Insertion Formule dans une Boucle VBA (bloomberg)
    Par Stufa789 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 08/04/2011, 00h45
  3. Inserer une formule (Longue) dans une cellule via VBA
    Par alex830001 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/01/2009, 12h28
  4. [VBA-E]Formule dans cellule en VBA
    Par dev81 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/06/2007, 14h03
  5. [VBA-E] insertion de formule dans cellule
    Par jeff37 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/05/2006, 13h53

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