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 :

Création des nouvelles feuilles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 411
    Par défaut Création des nouvelles feuilles
    Bonjour à tous,

    j'ai un fichier en excel avec des onglets de feuilles qui prennent des dates. Je voudrais que quand j'appui sur un bouton de fonction "F" précis, qu'une nouvelle feuille soit créée en copie de la toute dernière et numérotée de la dernière date existante +1.Ayant toutes les formules et format de celle copiée.

    Merci d'avance

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Pour cela, il faudrait que tu te penche sur des fonctions VBA à créer pour faire ça, et ensuite regarder pour comment créer un bouton pour faire une fonction personnalisée
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 411
    Par défaut
    Bjr

    citation:
    Pour cela, il faudrait que tu te penche sur des fonctions VBA à créer pour faire ça, et ensuite regarder pour comment créer un bouton pour faire une fonction personnalisée
    c'est exactement ce que je voudrais savoir. SVP, pouvez vous m'aider à y arriver.

    merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il faudrait un exemple des noms de feuille comprenant une date que vous utilisez.

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 411
    Par défaut
    bonjour

    voici le titre des dates que donne aux onglets. la date du 5 juin (5/06)

    merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je suppose que vous utilisez Excel 2007 et qu'il permet l'utilisation des caractères non autorisés sur Excel 2000 ( : / \ [ ] * ) et sinon tous au moins : / ?

    Donc si c'est le cas ce code fonctionne même s'il existe sans doute d'autre solution. Si vous aviez le nom sous la forme 05/06 au lieu de 5/06 on pourrait déjà simplifier, mais je l'ai fait avec vos contraintes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro1()
     
        nbf = Sheets.Count
        nomf = Sheets(nbf).Name
        datan = nomf & "/" & Format(Now, "yy")
        Sheets(nomf).Copy After:=Sheets(nbf)
        nomf = DateAdd("d", 1, datan)
            If Left(nomf, 1) = "0" Then
            nomf = Mid(nomf, 2, 4)
            Else
            nomf = Left(nomf, 5)
            End If
        Sheets(nbf + 1).Name = nomf
    End Sub
    Encore une précision :

    Dans votre exemple vous indiquez (05/06). Les parenthèses existent également ?

    Dans ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub Macro1()
     
        nbf = Sheets.Count
        nomf = Sheets(nbf).Name
        lg = len(nomf)
     
              if lg = 6
              datan = Mid(nomf, 2 , 4) & "/" & Format(Now, "yy")
              else
              datan = Mid(nomf, 2 , 5) & "/" & Format(Now, "yy")
              end if
     
        Sheets(nomf).Copy After:=Sheets(nbf)
        nomf = DateAdd("d", 1, datan)
     
            If Mid(nomf, 2, 1) = "0" Then
            nomf = "(" & Mid(nomf, 3, 4) & ")"
            Else
            nomf = Left(nomf, 6) & ")"
            End If
     
        Sheets(nbf + 1).Name = nomf
    End Sub

  7. #7
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 411
    Par défaut
    Merci m.Jacques jean,
    l'application tourne parfaitement bien. Mais hélas!!!!
    Quand on a affaire à un mois de 31 jours, les cumuls qui sont reportés au 1° sont ceux de la journée du 30 et pas ceux du 31. Voir fichier en annexe

    merci

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je ne vois pas de fichier en annexe.

    Mais pas de problème j'ai compris d'où cela venait. Et ce n'est pas particulier à un mois précédent de 31 jours.
    Je rectifie et vous adresse le nouveau fichier.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Re,

    En fait il s'agit de cette ligne qui n'est pas à sa place :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Remise à 0 de la production journalière
    Range("D4:E" & dl).ClearContents
    J'efface les données de la journée précédente avant de recopier le cumul et comme ce cumul est calculé par formules et non par le code il devient égal au cumul de l'avant dernière feuille.

    Ce n'est pas une excuse, c'est une explication. Lorsque que l'on utilise une application partiellement automatisée, il faut faire doublement attention, ce que je n'avais pas fait.

    J'en profite pour vous dire que de toute façon il restera un cas pour lequel vous devrez intervenir manuellement (ce cas peut également être automatisé mais il faut en savoir plus sur votre façon de procéder) :

    -lorsque vous aurez lancé la création et fait la mise à jour de la dernière feuille de l'année, avant de continuer, il faudra :
    -enregistrer votre fichier sous un nouveau nom ou dans un nouveau dossier selon votre manière de garder l'historique.

    -supprimer toutes les feuilles du fichier sauf la dernière de décembre.

    -lancer la création de la 1ère feuille de janvier pour la nouvelle année.

    -supprimer ensuite la dernière feuille de décembre de l'année précédente (non obligatoire pour le bon fonctionnement).
    Fichiers attachés Fichiers attachés

  10. #10
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 411
    Par défaut
    Merci beaucoup m. Jacques jean
    votre contribution est un apport très important. Pour le reste je vais essayer de me débrouiller. Mais je suis satisfais et je coche "Résolu"

  11. #11
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 411
    Par défaut Recopie de feuilles
    Bonjour à tous,
    en annexe, j'ai mis un fichier excel qui, par appui sur un bouton génère une feuille et efface les données journalières. Comment puis je faire pour le faire sans générer les messages d'erreurs.

    merci

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour

    En annexe ?

    Starec

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Starec : en fait Vlksoft a créé un nouveau sujet mais il fait suite à celui-ci
    [Édit] Sujets fusionnés, merci. Guardian


    Vlksoft : en effet c'est la 2ème fois que vous dîtes avoir joint le fichier "réel" et qu'il ne l'est pas. J'ai donc construit le code avec votre exemple mais il suffit d'une différence de structure par exemple pour qu'il y ait une possibilité d'erreur.

    Avez-vous fait les essais avec le fichier que je vous ai adressé avant d'intégrer le code dans votre fichier réel ? Si oui, est-ce qu'il y avait également une erreur ?

    Vous avez réussi à joindre votre fichier exemple donc vous connaissez la manipulation mais la taille de votre fichier réel est peut-être trop importante.

    Pour un fichier .xls la taille ne doit pas dépasser 128 Ko.

    Si c'est l'explication vous avez 3 solutions :

    -compresser en fichier .zip (il ne faut pas qu'il dépasse 512 Ko une fois compressé)
    -l'envoyer en pièce jointe sur ma messagerie dont je vous ai communiqué l'adresse (si vous ne voulez pas me communiquer votre adresse vous pouvez facilement en créer une autre temporairement).
    -vous inscrire ici :
    http://panel.archive-host.com/index.php

    vous n'aurez aucun problème lié à la taille et il suffira de coller l'adresse qui s'affichera dans votre réponse (à moins que votre fichier soit vraiment énorme).

  14. #14
    Invité
    Invité(e)
    Par défaut
    Re,

    N'ayant pas de réponse rapide, je dois vous informer que dans quelques heures je prépare mon départ, comme chaque année à cette période, pour mon domicile de l'Aisne et pour 7 semaines.

    C'est presque un mini déménagement après 6 mois d'absence. De plus je dois passer par Châteauroux ce qui fait qu'au lieu de 990 km et 9h30 d'autoroute, je n'arriverai chez moi que le 30/06 au soir.

    Le temps de la réinstallation et je pense ne pouvoir vous répondre avant le 2 juillet.

    Ceci pour préciser que je n'ai pas abandonné, pour l'instant.

    Mais de plus il n'y a aucune accaparation de votre problème de ma part.
    Donc si vous joignez votre fichier et que quelqu'un veut prendre le relais (en espérant que mon code n'est pas trop "nébuleux" mais je ne le pense vraiment pas) il n'y a bien évidemment aucun problème.

    Sinon au 2 juillet.

  15. #15
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 411
    Par défaut
    Bonjour m.jacques,
    voici enfin la pièce jointe. Et vous remarquerez j'ai tenté de faire de petites modifications sans succès. Je vous laisse bien le soin de générer une nouvelle feuille par vous même et voir les résultats.

    merci
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Creer des nouvelles feuilles
    Par Gregory.M dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/07/2009, 13h06
  2. Création de nouvelle feuilles Excel via ASP
    Par insane1 dans le forum Débuter
    Réponses: 4
    Dernier message: 13/02/2009, 15h48
  3. Intégrer des macros sur des nouvelles feuilles crées par VBA
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/05/2008, 15h11
  4. inserer des nouvelles feuilles dans un classeur excel
    Par chamus dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2006, 16h22
  5. Réponses: 4
    Dernier message: 08/06/2006, 23h04

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