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 :

probleme de création de chaine


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 858
    Par défaut probleme de création de chaine
    bonjour,

    voici mon code vba :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub Main()
    Dim myStr As String
    Dim i As Integer
    For i = 1 To 5
        myStr = myStr + """" + "\x01" + """" + vbCrLf
    Next i
    Cells(1, 1).Value = myStr
    End Sub
    => dans ma cellule, ça m'affiche :
    "\x01"(un carré)
    "\x01"(un carré)
    "\x01"(un carré)
    "\x01"(un carré)
    "\x01"(un carré)
    => Comment faire pour ne pas avoir ce carré ?

    Second problème, lorsque je copie la cellule vers le bloc note, ça me donne :
    """\x01""
    ""\x01""
    ""\x01""
    ""\x01""
    ""\x01""
    "
    => pourquoi ça rajoute des guillemets ?

    merci d'avance,

  2. #2
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Bonjour à tous,
    Remplace "vbCrLf" par "vbLf"

    Quant a la copie, comment est-elle faite ?
    La cellule (format complexe) dans un format texte brut. Les guillemets sont ajoutées pour respecter les espacements, les tabulatuions, les...

    Je ne puis en dire plus. Essaye la fonction d'exportation.



    ESVBA

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 858
    Par défaut
    Citation Envoyé par ESVBA Voir le message
    Remplace "vbCrLf" par "vbLf"
    Merci ça enlève les carrés dans la cellule excel


    Citation Envoyé par ESVBA Voir le message
    Quant a la copie, comment est-elle faite ?
    La cellule (format complexe) dans un format texte brut. Les guillemets sont ajoutées pour respecter les espacements, les tabulatuions, les...
    Je ne puis en dire plus. Essaye la fonction d'exportation.
    => je fais un copier/coller : que faut-il que je fasse pour que ça fonctionne ? est-ce qu'au moins c'est possible ?

  4. #4
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut bonsoir boboss123, le forum,
    tout simplement supprime les guillemets dans Excel.

    Notepad les ajoute pour encadrer les caractères spéciaux qui ont une signification dans un fichier texte (autres exemples guillemets, retour chariot...)

    je ne sais pas quel est le résultat désiré mais il faudra peut-être passé par une écriture par VBA d'un fichier texte...

    ESVBA

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Bonsoir,

    Au lieu de vbCrLf tu peux aussi mettre Chr(13).

    PPz

  6. #6
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut bonsoir PPz78,
    franchement tu es sûr de ce que tu dis ?

    vbCrLf = chr$(13) & chr$(10) = retour chariot & saut de ligne
    vbCR = CHR$(13) = retour chariot (reste sur la même ligne en gardant les caractères précédants d'ou l'affichage d'un carré pour signaler sa présence)

    Sous excel seul, "vbLf" est visiblement bien interprété par un saut à la ligne dans la cellule.



    Donc boboss123, mets "vbLf" ou "Chr$(10)".



    ESVBA

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 858
    Par défaut
    Citation Envoyé par ESVBA Voir le message
    tout simplement supprime les guillemets dans Excel.

    Notepad les ajoute pour encadrer les caractères spéciaux qui ont une signification dans un fichier texte (autres exemples guillemets, retour chariot...)

    je ne sais pas quel est le résultat désiré mais il faudra peut-être passé par une écriture par VBA d'un fichier texte...

    ESVBA
    ce que je veux faire c'est avoir la même chaine dans ma cellule et dans un fichier texte lorsque je fais un copier/coller dans une cellule :
    "\x01"
    "\x01"
    "\x01"
    "\x01"
    "\x01"
    => VbLf fonctionne très bien pour les retours à la ligne dans les cellules d'excel mais il reste toujours le problème du copier/coller : il semblerait que ça ne soit pas possible de faire ça (à part en créant directement un fichier text mais c'est barbare comme méthode)...

  8. #8
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut bonsoir boboss123, le forum,
    si j'ai bien compris, il faut que dans le fichier texte ça ait la même apparence que dans la cellule excel par un simple copier/coller.

    Impossible sans VBA !


    Il faut utiliser les "vbLf" dans Excel et les convertir en "vbCr" (ou "vbCRLf") dans le fichier texte. Un copier/coller ne le fera pas automatiquement. Sans compter qu'il existe peut-être d'autres infomations sur la même ligne Excel.

    Une ligne Excel même avec plusieurs sauts de ligne texte = une ligne de fichier texte.


    La solution la plus simple sans trop de programmation est de mettre les différentes informations non plus dans une cellule mais dans différentes cellules (cachées si besoin) et de faire une exportation vers un fichier texte.

    Une autre solution (archivage avec lecture assez simple) est d'enregister au format HTML.

    ESVBA

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

Discussions similaires

  1. Probleme de parsing de chaine, tronquer une chaine
    Par Voodo'o_d'ool dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/08/2008, 11h28
  2. Probleme de tri de chaine de caractere...
    Par GESCOM2000 dans le forum Access
    Réponses: 12
    Dernier message: 28/12/2005, 13h43
  3. Probleme de tri de chaine de caractere...(BIS)
    Par GESCOM2000 dans le forum Access
    Réponses: 4
    Dernier message: 27/12/2005, 18h49
  4. Probleme dans request.QueryString("chaine")
    Par soufienne dans le forum ASP
    Réponses: 8
    Dernier message: 24/08/2004, 14h49
  5. Problemes de création en exécution
    Par popeyes dans le forum Composants VCL
    Réponses: 6
    Dernier message: 29/06/2004, 19h02

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