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 :

[E-03] Gestion des guillemets dans une chaîne de caractères


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut [E-03] Gestion des guillemets dans une chaîne de caractères
    Bonjour à tous,

    Je suis entrain de développer une application qui (en gros) sort des tableaux de bords, en fonction des cases cocher dans plusieurs formulaires.

    Mon problème est au niveau d'une variable (Nomenclature) que je déclare en caractère. Cette variable permet de répertorier les cases nomenclatures qui ont été cochées dans le formulaire.

    ex: si l'utilisateur coche Sphère économique et Activités économiques, la variable Nomenclature est égale à "Sphère économique", "Activité économique". Dans mon code :Nomenclature = " ""Sphère économique"", "" Activité économique"" "

    Jusque là, lorsque je fais un msgbox, c'est écrit correctement.

    Ensuite cette variable Nomenclature me sert à créer des tableaux croisés dynamiques. Voilà mon 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
     
    Sheets("Resultat").Activate
     
    'récup Nomenclature
    Call choix_code_naf
     
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
     [Intermediaire!A1].CurrentRegion.Address(, , xlR1C1, True)).CreatePivotTable _
    TableDestination:="Resultat!R3C1", _
    TableName:="Premier test"
     
    ActiveSheet.PivotTables("Premier test").AddFields RowFields:= _
    Array(Nomenclature), ColumnFields:="annee"
     
    If selection_base.nb_etablissement.Value = True Then
        With ActiveSheet.PivotTables("Premier test").PivotFields( _
              "Etablissements secteur privé")
              .Orientation = xlDataField
              .Position = 1
        End With
    End If
     
    ActiveWorkbook.ShowPivotTableFieldList = True
    ActiveWorkbook.ShowPivotTableFieldList = False
    Application.CommandBars("PivotTable").Visible = False
     
    With ActiveSheet.PivotTables("Premier test").DataPivotField
        .Orientation = xlColumnField
        .Position = 1
    End With
     
    End Sub
    J'ai une erreur sur la ligne où la variable Nomenclature est écrite...
    lorsque que je fais du pas à pas, Nomenclature = "" Sphère économique", " Activité économique"", alors qu'il faudrait qu'elle s'affiche comme çà : "Sphère économique", "Activité économique"

    Voilà! j'espère avoir été claire!

    Merci d'avance pour vos réponses

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Je crois que ce que tu essaies de faire n'est pas possible. La fonction Array attend une liste d'arguments séparés par des virgules. Quand tu écris Array(Nomenclature), tu n'as qu'un argument, même si c'est du texte contenant des virgules.
    Ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v = Array("""A"",""B""", "B,A")
    renvoie un tableau de 2 lignes, et pas 3, contenant
    "A","B"
    B,A

    Pourquoi ne pas faire d'entrée de Nomenclature un tableau? Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Nomenclature as variant
     
    Nomenclature = Array("Sphère économoque","...", "...")
    Et Nomenclature est alors utilisable comme tableau.

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    pour les guillemet utilise chr(34) (chr permet de donner le numéro corespondant dans la table ascii

    Tu tape donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chr(34) & "ton texte" & chr(34)
    et tu obtient bien "ton texte"

    au passage la table ascii te permet de gérer quasiment tou les caractère un peu spéciaux y compris les passage à la ligne ou autres
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    çà n'a pas l'air de marcher...

    En faite je cherchais une solution pour automatiser mes tableaux croisés dynamiques car j'ai plusieurs Nomenclatures, qui peuvent s'imbriquer, et çà m'éviterais donc d'écrire des conditions, qui existe déjà dans le programme "choix_code_naf"

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Ah c'est bon j'avais mal écrit!

    En déclarant tout de suite Nomenclature en tableau c'est Nikel!!

    Merci beaucoup, je vais pouvoir avancer!!!!!!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/01/2013, 11h10
  2. gestion des apostrophes dans une chaîne de caractère
    Par Klemsy78 dans le forum Langage
    Réponses: 9
    Dernier message: 16/07/2009, 16h20
  3. [RegEx] Ajouter des guillemets dans une chaîne
    Par renaud26 dans le forum Langage
    Réponses: 14
    Dernier message: 25/11/2008, 20h10
  4. Réponses: 4
    Dernier message: 17/07/2008, 16h15
  5. Réponses: 5
    Dernier message: 02/04/2007, 14h46

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