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 :

[VBA-E] contenu cellule excel > 255 caractères ? Comment ?


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 11
    Points : 7
    Points
    7
    Par défaut [VBA-E] contenu cellule excel > 255 caractères ? Comment ?
    Bonjour,

    Je dois coller les valeurs d'un champ mémo (qui peut contenir 65535 c) provenant d'access dans une cellule excel. Le problème, c'est que la cellule ne me prend que les 255 premiers caractères du champ.
    Les spec d'excel disent pourtant : "Longueur du contenu des cellules (texte) 32 767 caractères. Affichage de 1 024 uniquement dans une cellule et 32 767 dans la barre de formule."

    Comment faire alors pour prendre en compte ces 32767 c ???

    Merci de votre aide car je vraiment bloqué...

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    ben tu les colles comment ces valeurs..?

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Regarde à ici, tu auras des éléments de réponse. Ce n'est pas marqué résolu mais bon... J'ai testé la dernière solution et elle "a" fonctionné pour moi. Tu vois
    A+

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Comme tes données viennent d'Access, (j'avais omis ce "détail") ne peux-tu tester "J'ajoute 255 caractères par 255 caractères à ma cellule", un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = int(Len(DonnéeAccess)/255)
           Cell(...) = Cell(...) + mid(DonnéeAccess,i*255,255)
    Next
    + mid(DonnéeAccess,(i-1)*255,Len(DonnéeAccess) mod 255) pour la fin du texte
    Juste une idée, tu ne sera pas surpris si je dis que je n'ai pas testé.
    Tu peux commencer par faire un petit test dans Excel
    A+

    Tu dis si ça fonctionne... depuis le temps que ce pb n'est pas "officiellement"... Pièce jointe 9350

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    merci à vous pour vos réponses.

    Pr répondre à bbil, c'est juste un copier-coller manuel du résultat d'une requête, dans excel. Et c'est là le problème, c'est qu'en faisant cette opération, je perds le reste de mon champ.... donc tout traitement ultérieur ne pourra pas récupérer les caractères perdus !

    Y a-t'il une autre solution pour transférer le résultat d'une req vers excel, qui conserverait la valeur exacte (et entière !) du champ mémo ?

    Merci

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    La copie dans une cellule, en une seule fois, n'a pas "l'air" de fonctionner malgré les indications trouvées sur un site. As-tu essayé d'ajouter le texte bloc par bloc de 255 caractères à ta cellule ? Le test que j'ai effectué fonctionne d'un classeur à l'autre. On ne voit pas tout mais tout est bien présent dans la cellule.
    A+

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    ben tu peu acceder à la table directement en DAO ou ADO..., mais je sais pas pour l'histoire des 255 caractéres ...Fichiers et bases de données

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Mon test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub AjouterDuTexteAUneCellule()
    For i = 1 To Len(Workbooks("Classeur1").Sheets("Feuil1").Cells(1, 1).Value) Step 255
         Workbooks("Classeur2").Sheets("Feuil1").Cells(1, 1).Value = _
         Workbooks("Classeur2").Sheets("Feuil1").Cells(1, 1).Value & _
         Mid(Workbooks("Classeur1").Sheets("Feuil1").Cells(1, 1).Value, i, 255)
    Next
    End Sub
    Le texte : Pièce jointe 9370
    A+

    Attention, ce code ne copie pas la fin du text et s'arrête au multiple de 255

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos réponses.

    Finalement, j'ai résolu mon problème d'une autre manière. Si ça peut servir à qq'un...
    En fait, j'exporte le résultat de ma requête au format csv, en délimité et point virgule. Puis dans excel, j'ouvre ce fichier en délimité, point virgule et surtout, j'applique le format "texte" à ma colonne et là, j'ai bien mes données complètes allant jusqu'à 32 767 caractères.
    Par contre, si je laisse le format standard, mes données sont tronquées.

    Bon après, j'automatise ça dans une macro car j'ai d'autres traitements derrière...

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

Discussions similaires

  1. [VBA] variable locale <-- cellule excel
    Par k_pone dans le forum VBA Access
    Réponses: 11
    Dernier message: 27/06/2007, 10h26
  2. [VBA] Modifier des cellules excel en fonction de leur couleur
    Par Tententai dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/03/2007, 18h14
  3. [VBA-E] limite cellule Excel
    Par Vetchostar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/03/2007, 19h19
  4. [VBA-E]Contenu cellule dans array
    Par Darkhin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/02/2007, 02h31
  5. [vba] Importation de cellules Excel précises dans Acces
    Par heavenvibes dans le forum Access
    Réponses: 2
    Dernier message: 19/07/2006, 23h36

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