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 :

Incrémentation mensuelle d'une feuille de calcul


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 7
    Points
    7
    Par défaut Incrémentation mensuelle d'une feuille de calcul
    Bonjour chers amis,

    Je fais appel à vos connaissances afin d'améliorer un fichier Excel sur base d'une Macro.

    Voilà ce que je recherche :

    Je dispose d'un fichier Excel nommé "Coiffure.xls" et disposant actuellement de deux feuilles : 1° Feuille "clients" et 2° Feuille "Mars".

    Je crée des Macro via la fonction enregistrement car je suis fort limité en VBA

    J'ai donc déjà réussi à créer une Macro me permettant de copier une feuille en dernier, effacer les plages de données de la feuille précédente et renommer la plage en "Nouveau".

    Le problème, c'est qu'au lieu de renommer cette feuille en "Nouveau", j'aimerais qu'elle soit renommée automatiquement avec le nom du mois suivant.

    Donc, si j'appuye sur le bouton de Macro dans ma feuille du mois de Mars, mon fichier devrait créer automatiquement une feuille pour le mois d'avril.

    Merci beaucoup pour votre aide...

    Respectueusement,

    Mike

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si tu souhaites tirer des statistiques des ventes d'un mois donné, il est parfaitement inutile de créer des feuilles par MOIS ou par années.
    Une seule feuille suffit pour visualiser les ventes par mois, par année et/ou par client.
    Voir du côté des fonctions SOMMEPROD, ANNEE, MOIS ou mieux encore l'utilisation du rapport de tableau croisé dynamique.
    Il faut juste bien organiser la feuille des mouvements
    Par exemple en colonne
    A - La date de la transaction
    B - Le client
    C - Type de transaction (Coupe, Shampoing etc ...)
    C - Le montant de la transaction
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour tout le monde,

    Sinon :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Function NomDuMois(Fe As Worksheet) As String
     
        Dim Mois As String
        Dim I As Integer
     
        'boucle sur les douze mois
        For I = 1 To 12
     
            'défini le mois à comparer
            Mois = MonthName(I, False)
     
            'si il y a correspondanse, stocke
            'le mois suivant dans la variable et fin de boucle
            If Mois = Fe.Name Then
     
                If I < 12 Then Mois = MonthName(I + 1, False)
                Exit For
     
            End If
     
        Next I
     
        'retour de la valeur
        NomDuMois = Mois
     
    End Function
     
    Sub test()
     
        'utiliser le nom du mois comme voulu...
        'ici c'est la feuille active qui est passée en argument
        MsgBox NomDuMois(ActiveSheet)
     
    End Sub
    Hervé.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Cher ami,

    Je pense que ma demande manque de clarté.

    "Coiffure" est un nom test comme j'auais pu choisir "Goldorak" ou "Plombier".
    Peu importe.

    Quant aux statistiques, je n'ai jamais abordé ce domaine.

    C'est très gentil à toi de me donner ces informations mais je recherche quelque chose de plus simple.

    J'aimerais simplement créer une macro me permettant de rajouter la feuille du mois suivant.

    A présent, j'ai la feuille "Clients", "Modèle", et une troisième avec le mois de "Mars"

    Dans la feuille "Modèle", j'aimerais insérer un bouton qui va me copier cette feuille en dernier, et me renommer cette feuille avec le nouveau mois.
    Dans ce cas-ci, il s'agit du mois d'avril ...

    Merci d'avance pour ton assistance et ton temps

    Amicalement,

    Mike

    Merci Hervé et merci à tous.

    Comme je l'ai dis, je suis loin en programmation, loin vers le bas ! lol

    Je suppose que le script d'Hervé est le plus simple ou bien y a t'il moyen de faire encore plus simple ?

    Merci

    Mike

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Voici un code qui copie la feuille active, sur une nouvelle feuille et la renomme du nom du mois en cours.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub CopyRename()
     Dim Name As String
     With ActiveSheet
      Name = .Name  ' Enregistre le nom de la feuille active
      .Copy After:=Sheets(Sheets.Count)  ' Copie la feuille et la place en dernière position
      Sheets(Sheets.Count).Name = MonthName(Month(Date)) ' Renomme cette feuille du nom du mois en cours
      Sheet(Name).Select ' Sélectionne la feuille d'origine
     End With
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 7
    Points
    7
    Par défaut FEEDBACK
    Très chers,

    Merci pour vos réponse.

    Malheureusement, celà ne fonctionne pas.

    Je redonne un plan bref de ce que je recherche et au besoin, j'adapterai les noms par la suite.

    Prenons un fichier Excel se composant actuellement de 3 feuilles de calcul :
    - La première se nomme "Modèle" et contient une feuille vide avec des colonnes ayant des titres.
    - La deuxième se nomme "DATA" et contient toutes les données des clients, le prénom des coiffeurs et les Macros existantes. Les données clients seront utilisées dans les autres feuilles via une validation de donnée.
    - La troisième est une première feuille créée manuellement et intitulée "Mars"

    Ce que je voudrais

    - Dans la feuille "DATA", créer une Macro me permettant de détecter la dernière feuille de donnée existante (dans ce cas-ci, le mois de Mars)
    - Après cette analyse, créer une copie de la feuille "Modèle" et la positionner en fin, après le dernier mois présent (Dans ce cas-ci, après la feuille du mois de mars).
    - Enfin, la macro devra renommer la feuille sur base d'une suite incrémentielle (+1) ... dans ce cas-ci, le résultat serait "Avril"

    Biensur, La Macro doit pouvoir se faire indéfiniment

    Pourriez-vous me donner une version VBA avec les mêmes termes utilisés ?

    Comme je vous l'ai dis, mes connaissances en VBA sont quasi nulles.

    Très grand merci à tous,

    Mike

  7. #7
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Et ceci ?
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    Sub CopieFeuille()
     
        Dim Fe As Worksheet
        Dim Mois As String
     
        'dernière feuille
        Set Fe = Worksheets(Worksheets.Count)
     
        'récup du nom du mois
        Mois = NomDuMois(Fe)
     
        'copie la feuille modèle et la renomme
        Worksheets("Modèle").Copy , Fe
        Worksheets(Worksheets.Count).Name = Mois
     
    End Sub
     
    Function NomDuMois(Fe As Worksheet) As String
     
        Dim Mois As String
        Dim I As Integer
     
        'boucle sur les douze mois
        For I = 1 To 12
     
            'défini le mois à comparer
            Mois = MonthName(I, False)
     
            'si il y a correspondanse, stocke
            'le mois suivant dans la variable et fin de boucle
            If UCase(Mois) = UCase(Fe.Name) Then
     
                If I < 12 Then Mois = MonthName(I + 1, False)
                Exit For
     
            End If
     
        Next I
     
        'retour de la valeur
        NomDuMois = Mois
     
    End Function
    Hervé.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 7
    Points
    7
    Par défaut SUIVI MACRO
    Merci à toi ... je vais tester car en ce moment, je viens juste de prendre connaissance du message et il ne m'est actuellement pas possible de tester la macro.

    Juste une question ? En fonction de ma dernière explication, peux-tu me dire dans quelle feuille je dois insérer la Macro et, si des noms doivent changer ?

    Merci à toi

    Mike

  9. #9
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Re,

    Tu ajoute un module standard et tu colle le code que je t'ai donnée. Ensuite, tu l'appelle d'où tu veux. Tu peux mettre un bouton "Formulaire" sur la feuille "DATA" si c'est ta feuille de travail principale et tu lui affecte la macro "CopieFeuille" ou un bouton "Macro" dans la barre d'accès rapide (2007 et +) ou toujours un bouton "Macro" dans la barre d'outils de ton choix si Excel 2003 et > auquel tu affecte la macro "CopieFeuille".
    Il n'y a aucun nom à modifier si ta feuille "Modèle" s'appelle bien "Modèle".

    Hervé.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 7
    Points
    7
    Par défaut Merci
    Merci pour vos infos

    Je me redirige de plus en plus vers une base de donnéees ACCESS avec un Menu Général et des sous menus.

    Je reviendrai donc surement dans la rubrique ACCESS

    Merci encore à tous.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/03/2013, 19h56
  2. [VBA-E97]Code pour déprotéger une feuille de calcul
    Par blaiso dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/04/2007, 11h30
  3. [VBA-E] Nommer chemin d'accès dans une feuille de calcul.
    Par BRUNO71 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/03/2007, 13h30
  4. [VBA-E] Passer d'un contrôle à l'autre avec tab dans une feuille de calculs
    Par small_heart dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/02/2007, 20h57
  5. Contrôles (CheckBox) sur une feuille de calcul
    Par yogyx dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/12/2006, 09h54

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