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 :

Apostrophe dans la macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut Apostrophe dans la macro
    Bonjour,

    J'ai un pb avec une macro où j'ai un enregistrement en automatique utilisant une valeur saisie par l'utilisateur.

    Le pb est que le nom du fichier a enregistré ce fait en automatique et l'utilisateur peut avoir à mettre des apostrophes ce qui entraîne une erreur dans mon code car l'apostrophe fait que le code devient un commentaire

    Je ne sais pas si je suis clair donc voici le code
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Private Sub Document_Open()
     
    With Selection.Find
        .Forward = True
        .ClearFormatting
        .MatchWholeWord = True
        .MatchCase = False
        .Wrap = wdFindContinue
        .Execute FindText:="Lot n° "
    End With
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
        Lot = Selection
     
    With Selection.Find
        .Forward = True
        .ClearFormatting
        .MatchWholeWord = True
        .MatchCase = False
        .Wrap = wdFindContinue
        .Execute FindText:="ORIGINE"
    End With
        Selection.MoveRight Unit:=wdCharacter, Count:=2
        Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
        Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        Nom = Selection
     
        Selection.MoveDown Unit:=wdLine, Count:=1
     
            Fichier = (Nom & Lot)
     
     
     
                'ChangeFileOpenDirectory "\\Serveur-caill\Documents\CB_internet"
                ChangeFileOpenDirectory "\\Serveur-caill\Documents\temporaire\Nicolas\CB_En attente"
                ActiveDocument.SaveAs FileName:=Fichier, FileFormat:=wdFormatDocument, _
                LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
                :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
                SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
                False
     
                ChangeFileOpenDirectory "C:\CB_Internet_PC"
     
                ActiveDocument.SaveAs FileName:=Fichier, FileFormat:=wdFormatDocument, _
                LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
                :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
                SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
                False
     
                Else
     
     
            End If
     
    End Sub
    Le pb vient de la variable "nom" qui peut avoir des apostrophes. Normalement le fichier doit être :
    plante_ABC (nom)
    17999 (lot)
    le fichier doit être sauvegardé sous le nom : plante_ABC17999.doc

    Or quand j'ai :
    plante_"ABC"
    17999
    le fichier sauvegardé est sous le nom : plante_ (sous extention)

    Suis je clair ?
    En tout cas, je ne sais pas comment faire donc je suis preneur pour votre aide.

    Merci par avance

    Nini

  2. #2
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Les apostrophes sont INTERDITES dans les fichiers WINDOWS (ainsi que les '/','\','*' et autres '?' !
    Solution : Remplacer les apostrophes par autre chose (ou rien !) dans le nom de fichier AVANT d'enregistrer
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub test()
    Dim fichier As String
    fichier = "nom_fichier"""
    MsgBox fichier
    fichier = Replace(fichier, """", "")
    MsgBox fichier
    End Sub

  3. #3
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Je vais faire mon chieur, mais le caractère dont vous parlez n'est pas un apostrophe mais un guillemet

  4. #4
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Citation Envoyé par jfontaine Voir le message
    Je vais faire mon chieur, mais le caractère dont vous parlez n'est pas un apostrophe mais un guillemet
    Exact (pour les 2 parties de la phrase)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut
    C'est parfait

    Merci Garuda pour ton aide et pour ta compréhension.

    D'ailleurs est ce que je peux reproduire le pb des guillemets pour le cas des apostrophes via un code comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    Dim fichier As String
    fichier = "nom_fichier ' ' "
    MsgBox fichier
    fichier = Replace(fichier, " ' ' ", "")
    MsgBox fichier
    End Sub
    En tout cas mon pb est résolu donc merci

    Dois-je mettre résolu ou attendre que ma question subsidiaire ait une réponse?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut
    bon pas de réponse donc je le considère comme terminé et résolu

    Merci encore

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

Discussions similaires

  1. Evaluer une apostrophe dans une Macro-condition
    Par Eto Demerzel dans le forum Macro
    Réponses: 5
    Dernier message: 03/04/2015, 17h17
  2. Nombre de mots dans une macro-variable avec apostrophe
    Par Claudia(y) dans le forum Macro
    Réponses: 2
    Dernier message: 20/10/2013, 20h15
  3. apostrophe dans une macro
    Par gui333 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 11/11/2008, 00h48
  4. Données contenant un apostrophe dans une colonne
    Par david71 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/09/2005, 17h02
  5. Réponses: 11
    Dernier message: 12/04/2005, 14h08

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