Limites des 32767 Caractères

Valentin

XLDnaute Junior
Bonjour à tous,

Alors voici mon soucis .. Je suis à la recherche d'une solution (=utilisation d'un autre programme qu' Excel?) qui permettrai de créer des fichiers CSV permettant d'inscrire dans 1 "cellule" plus de 32767 caractères.
32767 étant la limité implémentée d'Excel 2007.

-> Existe-t-il une possibilité de contourner cette limite, ou suis-je obligé de trouver un autre programme ? Auquel cas je vous demanderai si vous avez une idée ...


Je vous remercies,

Bien à vous,

Valentin.
 

Misange

XLDnaute Barbatruc
Re : Limites des 32767 Caractères

Bonjour

pas très clair pour moi : tes 32767 caractères ils sont où ?
Un fichier csv n'est jamais qu'un fichier texte... Tu peux le générer à partir de n'importe quel éditeur mais sans plus de détails c'est difficile de t'aider.
 

MJ13

XLDnaute Barbatruc
Re : Limites des 32767 Caractères

Bonjour Valentin, Misange (Oups, pas vu :eek:)

de créer des fichiers CSV permettant d'inscrire dans 1 "cellule" plus de 32767 caractères.
32767 étant la limité implémentée d'Excel 2007.

Et c'est quoi le but du jeu?

Un tableur n'est pas vraiment fait pour cela :confused:.
 
Dernière édition:

Valentin

XLDnaute Junior
Re : Limites des 32767 Caractères

Salut Misange et MJ13,

La limite est annoncée ici par Microsoft. On peut en effet en faire le test : inscrire plus de 32767 caractères dans une cellule est impossible.

En résumé : j'ai besoin d'associé des nombres (ID) à des noms.
Colonne A : Les noms en questions
Colonne B : Les ID relatifs aux noms.

Ensuite je génère un fichier CSV, qui sépare mes valeurs par des ";". Afin de pouvoir transférer ces informations dans un autre programme qui n’accepte que le modèle CSV.

Pourquoi j'utilise Excel ? Car il y a en réalité d'autres colonnes que je génère grâce à des fonctions d'Excel et qu'il est facile de générer les CSV à partir de celui-ci .. Et que je ne connais que Excel comme programme.
 

tototiti2008

XLDnaute Barbatruc
Re : Limites des 32767 Caractères

Bonjour Valentin, Bonjour Misange, Bonjour Michel,

Comme Excel ne peut pas inscrire plus de 32767 caractères dans une cellule, comment fais-tu pour exporter ta feuille de calcul en csv avec des cellules ayant plus que cette limite, je ne comprend pas bien...
 

Misange

XLDnaute Barbatruc
Re : Limites des 32767 Caractères

Moi non plus je ne comprends pas plus que Tototiti que je salue.
Que veux tu comme fichier de sortie ?? Si tu veux juste un texte avec tes champs sséparés par une virgule ou un point virgule le csv est là pour ça. Tu n'as nullement besoin de concaténer toutes tes données dans une seule cellule excel pour générer un fichier csv.
Bref rien compris
 

Valentin

XLDnaute Junior
Re : Limites des 32767 Caractères

Je vais tenter d'être plus explicite (J'ai un peu de mal déso =s )

Je n'ai pas encore mon CSV car je n'arrives justement pas à le créer dû à cette limite.

Pour créer mes CSV j'utilise les tableaux. Le tableau excel sera transformé en fichier CSV via Excel donc. Un CSV sépare les lignes par des retours à la ligne. Chaque colonne d'une même ligne est séparée par un ";". Donc chaque cellule est traduite par une position de ligne et un certains nombre de ";"


Je dois faire absolument correspondre les noms et ID sur une même ligne de sorte à obtenir un csv du type :

NOM ;ID
Arbre;[>32767 Caractères]
Fleur;[>32767 Caractères]

Avec "[>32767 Caractères]" qui représente la cellule que j'aimerais remplir par les ID qui sont en grande quantité et qui quand ils sont concaténer ensemble représente plus de 32767 caractères. Donc je n'arrives pas à les concatener. Et j'aimerais pouvoir les concatener.


En résumé : Comment faire pour concatener un nombre de caractères supérieur à 32767 caractères dans une cellule ?

PS : Je penses avoir compris d'où venant mon manque d'explication : Les ID sont actuellement dans des cellules différentes, et je veux les réunir en une seule cellule.
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Limites des 32767 Caractères

Re,

Je suppose que ton ID (ou tes ID) de plus de 32767 caractères sont gérés par des formules
Si c'est ça, pas de solution sauf écrire ton fichier texte par macro comme préconisé par Michel
Pourquoi mettre plusieurs ID dans la même colonne, ça c'est une autre question mais bon....
 

Misange

XLDnaute Barbatruc
Re : Limites des 32767 Caractères

Effectivement si tu dois mettre tous tes ID les uns à la suite des autres non séparés par une virgule ou autre tu vas devoir le faire par macro.
Tu as de quoi t'inspirer ici

Ce lien n'existe plus
et là
Ce lien n'existe plus
 

Valentin

XLDnaute Junior
Re : Limites des 32767 Caractères

Re tout le monde,

Merci pour vos aides de direction. Je pense avoir réussi à adapter un code grâce aux liens que vous m'avez conseillés. Cela fonctionne, mais pourriez-vous y jeter un œil pour me dire ce que vous en pensez ? (Je ne suis que débutant donc .. :) )

Merci à vous !

VB:
Sub testeexportTXT()

Dim Nblignes As Integer, Nbcol As Integer, i As Integer, j As Integer, S As String

Nblignes = 0
Nbcol = 0
S = ""


i = 1
While Not IsEmpty(Cells(i, 1).Value)  'Compteur nombre de lignes
    Nblignes = Nblignes + 1
    i = i + 1
Wend


i = 1
While Not IsEmpty(Cells(1, i).Value) 'Compteur nombre de colonnes
    Nbcol = Nbcol + 1
    i = i + 1
Wend


Open "D:\test.txt" For Output As #1 ' fichier placé dans d:\
    For i = 1 To Nblignes
        For j = 1 To Nbcol
        
            If j = 3 Then 'Ne pas avoir de ";" entre la colonne 2 et la colonne 3
                S = S & Cells(i, j)
            Else
                S = S & ";" & Cells(i, j)
            End If
            
        Next j
        
        Print #1, Right(S, Len(S) - 1) ' Suppression de le première virgule et écriture dans le fichier texte
        S = ""
        
    Next i



Close #1

End Sub


-> avec les fameux IDs, répartis sur la colonne 2 et 3, si il fallait les répartir sur plus de 2 colonnes : rajout d'un If j = 3 Or j=4 or J=5 ...
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Limites des 32767 Caractères

Re à tous

Bravo, tu as fait un bon code qui doit être rapide en plus :).

J'ai pas trop regardé ton code, mais si tu as beaucoup de lignes, Integer est vite limité à 32767, il vaut mieux adapter en double par exemple (voir le type de variable à déclarer). A moins que ce ne soit le but recherché :eek:.
 

Valentin

XLDnaute Junior
Re : Limites des 32767 Caractères

Yep,

Non je ne devrais pas avoir de soucis pour la limite quant à Integer pour ce code-ci. Par contre il y en a bien un autre que je suis en train de faire qui pourrait poser ce problème, je vais donc me renseigner sur le type Double :p


Merci à tous,

Bonne journée !
 

Valentin

XLDnaute Junior
Re : Limites des 32767 Caractères

Re-bonjour à tous !

Une petite question est ce que les variables déclarées comme String ont une limite ?

J'ai pu lire ici qu'il existait 2 types :

" * Les chaînes de longueur fixe peuvent aller jusqu'à 2^16 soit 64Ko
* Les chaînes de longueur variable sont limitées à 2^31 soit 2Go "


Ou encore dans l'aide :

String, type de données
Type de données composé d'une séquence de caractères contigus interprétés en tant que caractères et non en tant que valeurs numériques. Une donnée de type String peut inclure lettres, nombres, espaces et signes de ponctuation. Le type de données String peut stocker des chaînes de longueur fixe dont la longueur est comprise entre 0 et environ 63 Ko de caractères et des chaînes dynamiques dont la longueur est comprise entre 0 et environ 2 milliards de caractères. Dans Visual Basic, le signe dollar ($) est le caractère de déclaration du type String.



Sauriez-vous m'éclairer sur cela ? (Je n'ai pas tout dans mon fichier CSV généré et je pense que cela vient de ma variable S qui sature et n'enregistre pas toutes les entrées)

Merci !


Peut-être que le soucis de la concaténation qui n'enregistre pas l’entièreté vient d'ailleurs ... Une idée ? :confused:

Valentin.
 
Dernière édition:

Statistiques des forums

Discussions
312 492
Messages
2 088 908
Membres
103 982
dernier inscrit
krakencolas