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 :

Recherche macro pour renommer onglet de feuille


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Recherche macro pour renommer onglet de feuille
    Bonjour
    je suis à la recherche d'une macro qui me copie une cellule pour renommer la même page
    J'ai fait ceci mais ça plante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ActiveCell.Offset(0, 1).Range("A1:E1").Select
        Selection.Copy
        Sheets("15-02-17    ").Select
        Sheets("15-02-17    ").Name = "20-02-15    "
        ActiveCell.Offset(-1, 6).Range("A1").Select
    Merci d'avance
    Chantal

  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 755
    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 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai fait ceci mais ça plante
    Cela ne veut rien "ça plante"
    A quelle ligne et quel message reçois-tu ?
    Si tu lis bien ce message tu auras déjà 80% de ta réponse
    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
    Candidat au Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ActiveCell.Offset(0, 1).Range("A1:E1").Select
        Selection.Copy
        Sheets("15-02-17    ").Select 
        Sheets("15-02-17    ").Name = "20-02-15    "
        ActiveCell.Offset(-1, 6).Range("A1").Select
    C'est la troisième ligne
    ils me disent erreur d'execution '9'
    l'indice n'appartient pas à la selection

  4. #4
    Expert confirmé Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Points : 4 299
    Points
    4 299
    Par défaut
    Salut,

    Comme Philippe ...

    Quand tu as le massage, tu cliques sur débbeugage. Cela te met en jaune la ligne qui pose problème. Pour pouvoir par la suite re faire des essais, il faut "Réinitialiser" avec un bouton de l'editeur VBA qui est un carré bleu dans la barre d'outils.

    Une ou deux pistes.
    Il y a des espaces à la fin des " ". Les noms sont ils correctement orthographiés.

    Tu renommes une feuille. Sauf que si une feuille portant ce nom existe déjà, bin Excel il ne va pas aimer ...
    Jérôme

    " Je pense donc je suis. Tu es donc j'apprends ". (GCM)

    Si ce message vous à aidé, merci de cliquer sur . Si ce message est résolu, cliquez sur .

  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 755
    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 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Et bien cela signifie que tu n'as pas de feuille nommée "15-02-17 " peut-être le caractère espacé qui est de trop ?
    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
    Expert confirmé Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Points : 4 299
    Points
    4 299
    Par défaut
    Re,

    Donc essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("15-02-17").Select
    Pour être sûre, tu peux faire un copier coller du nom de la feuille ...
    Jérôme

    " Je pense donc je suis. Tu es donc j'apprends ". (GCM)

    Si ce message vous à aidé, merci de cliquer sur . Si ce message est résolu, cliquez sur .

  7. #7
    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 755
    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 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il ne sert à rien de sélectionner la feuille pour la renommer
    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

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par chantaltreize Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ActiveCell.Offset(0, 1).Range("A1:E1").Select
        Selection.Copy
        Sheets("15-02-17    ").Select 
        Sheets("15-02-17    ").Name = "20-02-15    "
        ActiveCell.Offset(-1, 6).Range("A1").Select
    Peux-tu expliquer ce que tu essayes de faire dans ta première et dernière lignes de ce code ?

    Une fois que ta demande sera claire et précise, je pense qu'il sera possible de faire tout ça en une seule ligne.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  9. #9
    Candidat au Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Bonjour suite
    Bonjour
    Je désire mette la date du jour dans une cellule et que cette date vienne se copier coller sur l'onglet de la feuille pour la renommer puisque au départ elle se nomme Feuil1
    Par avance merci
    Chantal

  10. #10
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    En supposant que tu souhaites mettre la date du jour en A1 et que tu ne veuilles pas que cette date change chaque jour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("A1").Value = Now()
    Range("A1").NumberFormat = "dd/mm/yy"
    ActiveSheet.Name = Format(Now(), "dd-mm-yy")
    https://msdn.microsoft.com/fr-fr/lib.../gg251755.aspx

    La seconde ligne est uniquement pour passer la date au bon format (à l'affichage) mais n'est pas indispensable.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  11. #11
    Candidat au Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut ça fonctionne mais...
    Ça fonctionne très bien mais c'est dans l'autre sens qu'il faut que ça fonctionne
    De la cellule vers l'onglet de bas de page car les personnes qui vont se servir du dossier ne connaissent pas excel ils ne font que de la saisie
    Merci quand même
    Chantal

  12. #12
    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 755
    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 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Peu importe le sens, la syntaxe est ObjetFeuille.Name = "Le nom"
    Un objet a un toujours un objet parent.
    Pour la feuille, c'est le classeur donc Classeur.Feuille.Name = "Le nouveau Nom"
    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

  13. #13
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par chantaltreize Voir le message
    Ça fonctionne très bien mais c'est dans l'autre sens qu'il faut que ça fonctionne
    Comme dit la formule : Garbage In, Garbage Out.
    Si tu ne poses pas la bonne question, tu ne peux pas avoir la bonne réponse.

    Tu as dis que tu voulais mettre la date du jour dans une cellule puis utiliser cette valeur pour renommer la feuille et c'est exactement ce que fait ce code.

    Si tu ne dis pas où se trouve l'information voulue ni sous quelle forme elle se trouve, il est impossible de te répondre.

    Donc, commence par poser clairement et en détail ta question, ça représentera 90% de la réponse.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  14. #14
    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 755
    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 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour Menhir,
    Donc, commence par poser clairement et en détail ta question, ça représentera 90% de la réponse.
    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

  15. #15
    Candidat au Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Explication
    On doit saisir un date dans une cellule (AM2)
    Puis la date doit se recopier pour nommer l'onglet de cette même feuille
    Merci d'avance

  16. #16
    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 755
    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 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Procédure à copier dans le module de la feuille de la cellule AM2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address = "$AM$2" Then
      On Error Resume Next
      Me.Name = Format(Target.Value, "dd-mm-yy")
      On Error GoTo 0
     End If
    End Sub
    L'interception d'erreur est placée pour éviter de donner le même nom à la feuille.
    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

  17. #17
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je suis d'accord avec Philippe ( ) à un détail près.
    Le problème en utilisant Worksheet_Change, c'est que ça ne marchera que si la macro est déjà dans la feuille, donc que cette feuille est la copie d'une autre feuille contenant la macro.

    Si la feuille est crée par le simple ajout d'un onglet vierge, il vaudrait mieux passer par un évènement de Workbook.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_SheetChange(ByVal Sh As Worksheet, ByVal Target As Range) 
       If Left(Sh.Name, 5) <> "Feuil" Then Exit Sub
       If Target.Address <> "$AM$2" Then Exit Sub
       On Error Resume Next
       Sh.Name = Format(Target.Value, "dd-mm-yy")
       On Error GoTo 0
    End Sub
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. [XL-2010] Macro pour TCD créé sur feuille avec onglet de couleur et renommé à la date du jour
    Par ptiot70 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/10/2014, 11h18
  2. Macro pour renommer les fichiers
    Par cristophil dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/06/2011, 12h10
  3. [XL-2007] Macro pour figer onglets
    Par methylene dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/07/2010, 09h25
  4. [XL-2007] Macro pour renommer et déplacer un pdf
    Par gemxtrust dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/12/2009, 12h40
  5. Erreur d'éxécution d'une macro pour renommer un onglet
    Par cuterate dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/10/2009, 11h38

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