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 :

[Débutant] Problème rename sheet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Par défaut [Débutant] Problème rename sheet
    Bonjour,

    Je débute dans le monde vaste qu'est la programmation et je suis face à un problème. Je désire enregistrer uniquement la Sheet2 en fichier texte Unicode avec pour nom la cellule A1 de la Sheet 1.
    Néanmoins qu'en je lance le run, il me renomme ma Sheet2 avec le nom de la cellule A1 de la Sheet 1. Le problème étant que je ne peux relancer le run car mon "Sheets("Sheet2").Select" a disparu. Mon code est-il incorrect ou dois-je rajouter à la fin des lignes pour renommer la Sheet 2, sachant que son nom est variable.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub SaveAS()
    '
    ' SaveAS Macro
    '
        Sheets("Sheet2").Select
        ChDir "C:\Users\xxxxxx\Desktop"
        ActiveWorkbook.SaveAS Filename:=[sheet1!A1].Value & ".dl" & ".txt", _
        FileFormat:=xlUnicodeText, CreateBackup:=False
    End Sub
    Merci d'avance pour vos réponses

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour Decleirma et bienvenu sur ce Forum,

    Pas besoin de Select.
    Ces méthodes n'apportent rien si ce n'est la pollution du code.

    Le problème ici semble résider en l'attachement des objets Range.
    Préciser leur parent est une précaution souvent utile, voire nécessaire.

    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("lafeuille").[a1]

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Par défaut
    Je devrais donc plus me tourner vers ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub SaveAS()
    '
    ' SaveAS Macro
    '
        Set wk = ActiveWorkbook.Worksheets("Sheet2")
     
        ChDir "C:\Users\xxxxx\Desktop"
        wk.SaveAS Filename:=[sheet1!A1].Value & ".dl" & ".txt", _
        FileFormat:=xlUnicodeText, CreateBackup:=False
    End Sub

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Oui.
    En effet, il n'est pas nécessaire de créer un nouveau classeur depuis une feuille pour l'enregistrer sous un nom de classeur différent de celui dont elle est issue.
    Autrement dit, la méthode SaveAs peut s'appliquer à une feuille.

    2 remarques:
    1 - En fin de procédure, libérer la variable affectée à l'objet
    2 - Syntaxe correcte
    J'aurais personnellement écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Sheet1").[A1]
    Je viens d'apprendre quelque chose.
    Il est vrai que [] signifie, sauf erreur, Evaluate

    Reviens si nécessaire.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Par défaut
    A vrai dire, ça ne marche pas, il me crée bien un fichier mais avec ma Sheet1, pourtant je lui indique bien de sauver la Sheet 2

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bizarre.

    Ecris tout au début de la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim wk as Worksheet
    A la fin de la procédure
    De plus, au lieu d'écrire , écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Workbooks(nomdu classeur qui comporte la feuille à sauver + son extension .xls, .xlsm).Worksheets("Sheet2")
    Si la feuille appartient au classseur au sein duquel la procédure est écrite, alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ThisWorkbook.Worksheets("Sheet2")

Discussions similaires

  1. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 17h41
  2. Réponses: 2
    Dernier message: 28/04/2004, 11h25
  3. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40
  4. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 15h28
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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