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 :

Elimination caracteres indésirables [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Elimination caracteres indésirables
    Bonjour,

    Je reviens vers vous pour trouver une solution. Je sauvegarde un nouveau classeur par macro, mais dans le nom du classeur des caractères se rajoutent (%20), je n'ai pas compris pourquoi. Auriez-vous une idée?

    voici le code que l'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    chemin = ThisWorkbook.Path
    nomfichier = "CmdP" & ThisWorkbook.Sheets("ConsultCMDP").Range("C2").Value
    ' j'ai essayé .Range("C2").text et [C2].Text mais j'obtiens le même résultat
    ActiveWorkbook.SaveAs Filename:=chemin & nomfichier & ".xls"
    Ceci est le nom obtenu: CmdPnov%202012.xls, j'ai en gras les caracères qui se rajoutent. je pense que c'est des espaces traduit ainsi par excel. Comment faire pour obtenir le nom du fichier: Cmdp nov 2012.

    Pour info dans la cellule C2 j'ai cette formule:"=texte(C1;"mmm aaa")

    Je vous remercie pour votre aide.

    Cordialement,

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Demo()
        ActiveWorkbook.SaveAs ThisWorkbook.Path & "\CmdP " & _
                              Replace(ThisWorkbook.Sheets("ConsultCMDP").[C2], "%20", " ") & " .xls"
    End Sub

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

    Je te remercie beaucoup. J'avais entre temps trouvé qu'il fallait éliminer le chemin car j'enregistre dans le même répertoire.

    Sinon, ton code fonctionne parfaitement. Encore merci!

    Cordialement,

    Bonjour, Bien que je sois débutant, j'édite mon code pour le partage et la critique.
    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
    Sub Création_Classeur()
    '
    ' Création nouveau Classeur + sauvegarde dans répertoire courant avec nom  du classeur contenu dans un cellule
    Dim chemin As String, extension As String, nomfichier As String
    Dim Fd As Variant
    Fd = ThisWorkbook.Name
     
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
        'création nouveau classeur avec feuilles nommées
     
        Workbooks.Add.Activate
        Sheets("Feuil1").Name = "A"
        Sheets("Feuil2").Name = "B"
        Sheets("Feuil3").Name = "C"
     
        'copie
        Windows(Fd).Activate
        Sheets("Station").Select
        Columns("A:K").Select
        Selection.Copy
        'coller
        Windows(Workbooks(Workbooks.Count).Name).Activate
        Range("A1").Select
        Sheets("Station").Select
        ActiveSheet.Paste
     
    'enregitrement classeur
    extension = ".xls"
    nomfichier = "CmdP " & ThisWorkbook.Sheets("ConsultCMDP").[C2]
    With ActiveWorkbook
    .SaveAs Filename:=nomfichier & extension
    End With
    ActiveWorkbook.Close
    MsgBox "terminé!"
     
    End Sub
    Cordialement,
    Dernière modification par AlainTech ; 01/05/2013 à 16h37. Motif: Fusion de 2 messages

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut Critiques …
    C'est parti !

    • Correction du nom de fichier pas intégrée, donc retour au problème d'origine ‼

    • Éviter ces affreux ralentisseurs de Select & Activate !

    • La Méthode Copy d'un objet Range a un paramètre Destination, cf l'aide intégrée de VBA …

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ThisWorkbook.Sheets("Station").Columns("A:K").Copy _
            Workbooks(Workbooks.Count).Sheets("Station").[A1]

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

Discussions similaires

  1. [XL-2013] Elimination de caractere spéciaux d'une chaine de caractere en vue d'enregistrement
    Par Nono Sto dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/08/2014, 11h19
  2. Eliminer les espaces dans une chaine de caractere
    Par sialafrere dans le forum WinDev
    Réponses: 2
    Dernier message: 02/05/2008, 21h42
  3. Eliminer des caracteres aleatoires en fin de string
    Par Prismical dans le forum Modélisation
    Réponses: 2
    Dernier message: 30/05/2007, 01h26
  4. Réponses: 2
    Dernier message: 29/05/2002, 20h43
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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