splitté des celulles avec des nombre de champs superieur a 255!

  • Initiateur de la discussion Initiateur de la discussion fredh
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fredh

XLDnaute Occasionnel
[Resolu] Splitté des celulles avec des nombre de champs superieur a 255!

Bonjour a tous
J'ai un fichier excel issu d'une extraction de Base de donnés.
Afin de traité cela il faudrait que je splitte les celulles en colonne A:A
Probleme : si je splite simplement alors j'ai 277 colonnes et excel ne peut en avoir que 255, donc je desir "oublier" quelques champs lors du splittage.
.
Pour cela j'ai pondu la macros suivante (attention ca risque de piquer au yeux car je suis encore debutant 🙂) :

Code:
Sub aCSV()
Dim colon
Dim n As Integer, ncolon As Integer
'Ici je donne les numero de split a copié
'Je ne veut pas le 6em, 7em, 10em et 11em champ).
'plus tard il faudrait que j'inscrive ici environ 200 champ) Est ce possible?
colon = Array(0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 14, 15, 16, 17)
ncolon = 0
'la 1er ligne est une ligne d'exemple qui representge C1 splitté
'la 2em ligne est une ligne d'exemple de ce que je desire obtenir, donc je commence le traitement en 3em ligne
For n = 3 To Range("A65536").End(xlUp).Row
'Split de la colonne A copie dans A, B, C etc....
    t = Split(Range("A" & n), ";")
 
    Range("A" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("B" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
    Range("C" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("D" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("E" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("F" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("G" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("H" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("I" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("J" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("K" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("L" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("M" & n) = t(m)
    ncolon = colon + 1
    m = colon(ncolon)
 
    Range("N" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("O" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("P" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("Q" & n) = t(m)
    ncolon = ncolon + 1
    m = colon(ncolon)
 
    Range("R" & n) = t(m)
    ncolon = colon + 1
    m = colon(ncolon)
 
    Range("S" & n) = t(m)
    ncolon = colon + 1
    m = colon(ncolon)
 
    Range("T" & n) = t(m)
    ncolon = colon + 1
    m = colon(ncolon)
 
    Range("U" & n) = t(m)
    ncolon = colon + 1
    m = colon(ncolon)
 
    Range("V" & n) = t(m)
    ncolon = colon + 1
    m = colon(ncolon)
 
    Range("W" & n) = t(m)
    ncolon = colon + 1
    m = colon(ncolon)
 
    Range("X" & n) = t(m)
    ncolon = colon + 1
    m = colon(ncolon)
 
    Range("Y" & n) = t(m)
    ncolon = colon + 1
    m = colon(ncolon)
 
    Range("Z" & n) = t(m)
    n = n + 1
Next n
End Sub


J'ai quelques problemes :
1.\ a la fin du split j'ai des problemes de rebouclage, il faudrait que je fasse la manoeuvre que tant qu'il y a quelque chose dans le split....
2.\ je n'arrive pas a suprimez des champs.....Resolue
3.\ je ne suis pas sur du resultat plusieurs lignes (enfin ca devrait rouler mais vu que ca bloque avant...)
4.\ j'aimerai simplifié le code en incrementant les colonnes, afin d'evité les repetition. En effet dans l'exemple j'ai 17 colonne mais en realité j'en ai presque 200 (277 sans la supression).


Ci joint un fichier exemple :
avec des boutons pour lancer la macros, un boutons pour revenir au point de depart afin de retester corectement.
La 3em ligne inclus des MFC afin de colorié en vert un bon resultat et en rouge un mauvais resultat.

Voila j'espere avoir été clair. sinon n'hesité pas


PS edit:

merci et @+
 

Pièces jointes

Dernière édition:
Re : splitté des celulles avec des nombre de champs superieur a 255!

No prob

En faite "il y a toujours plus malin", je le dit dans le sens "il y a toujours plus malin que moi"....

J'ai retester sur le "gros" fichier et ......
on passe de 1:05:00 a 00:01:30

C'est noel avant l'heure.

Normal a chaque celulle excell voulait rafraichir, donc 200 colonne x 5300 ligne = 1.000.000 de rafraichissement.

Pierrejean merci beaucoup pour ton aide tres precieuse. Si un jour j epeut faire quelque chose pour toi (au niveau optimisation XP, Hardware, connexions etc...) n'hesite pas.

@+

PS je change le titre du Post en resolue
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
522
Réponses
11
Affichages
568
Retour