fredh
XLDnaute Occasionnel
Bonjour a tous.
Voila j'ai un logiciel qui m'extrait des valeurs depuis une base de données, ces valeurs sont stocké dans un fichier CSV.
Donc quand j'ouvre mon fichier CSV, j'ai mes valeur en A1, B1, C1 etc separé par des ; . Je convertit donc la colonne A:A avec le menu Données, Convertir.
Seulement voila si je convertit tout alors j'obtient 277 colonne et excel me dit qu'il ne peut pas ouvrir toutes les colonnes et que les dernieres seront perdue....
Excel jusqu'a la versions 2003 ne peut avoir que 255 colonne et 65000 lignes...
Dans le menu convertir je peut choisir une colonne et cocher la case "colonne non destribué" afin de ne pas inclure cette colonne.
Donc a la fin je me retrouvent avec moins de 255 colonnes car il y a des colonnes "pleines" mais que je ne veut pas !
J'ai crée une macros avec l'enregistreur pour convertir le format CSV en format XLS et "suprimez" des colonnes inutilent.
1er probleme : ma ligne de la macros pour convertir est trop longue et je ne peut donc pas formater corectement.
Voici ma ligne :
Il faudrait que je rajoute encore des "Array". Existe t il un autre moyens d'écrire cela ?
2em probleme la macros ne tient compte que de la 1er ligne du fichier...
Autre direction de recherche : macros pour "splitter" A1 et ne pas "splitter" le champ x, y et z
quelque chose du genre :
Voila j'espere que quelqu'un pourras m'aider.
Merci et @+
Voila j'ai un logiciel qui m'extrait des valeurs depuis une base de données, ces valeurs sont stocké dans un fichier CSV.
Donc quand j'ouvre mon fichier CSV, j'ai mes valeur en A1, B1, C1 etc separé par des ; . Je convertit donc la colonne A:A avec le menu Données, Convertir.
Seulement voila si je convertit tout alors j'obtient 277 colonne et excel me dit qu'il ne peut pas ouvrir toutes les colonnes et que les dernieres seront perdue....
Excel jusqu'a la versions 2003 ne peut avoir que 255 colonne et 65000 lignes...
Dans le menu convertir je peut choisir une colonne et cocher la case "colonne non destribué" afin de ne pas inclure cette colonne.
Donc a la fin je me retrouvent avec moins de 255 colonnes car il y a des colonnes "pleines" mais que je ne veut pas !
J'ai crée une macros avec l'enregistreur pour convertir le format CSV en format XLS et "suprimez" des colonnes inutilent.
1er probleme : ma ligne de la macros pour convertir est trop longue et je ne peut donc pas formater corectement.
Voici ma ligne :
Code:
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 9), Array(8, 9), Array(9, 1), Array(10, 9), Array(11, 9), Array(12, 9), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 9), Array(17, 9), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 9), Array(22, 9), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 9), _
Array(27, 9), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 9), Array(32, 9), Array( _
33, 1), Array(34, 1), Array(35, 1), Array(36, 9), Array(37, 9), Array(38, 9), Array(39, 1), _
Array(40, 9), Array(41, 9), Array(42, 9), Array(43, 1), Array(44, 1), Array(45, 1), Array( _
46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1), Array(51, 1), Array(52, 1), _
Array(53, 1), Array(54, 1), Array(55, 1), Array(56, 1), Array(57, 1), Array(58, 1), Array( _
59, 1), Array(60, 1), Array(61, 1), Array(62, 1), Array(63, 1), Array(64, 1), Array(65, 1), _
Array(66, 1), Array(67, 1), Array(68, 1), Array(69, 1), Array(70, 1), Array(71, 1), Array( _
72, 1), Array(73, 1), Array(74, 1), Array(75, 1), Array(76, 1), Array(77, 1), Array(78, 1), _
Array(79, 1), Array(80, 1), Array(81, 1), Array(82, 1), Array(83, 1), Array(84, 1), Array( _
85, 1), Array(86, 1), Array(87, 1), Array(88, 1), Array(89, 1), Array(90, 1), Array(91, 1), _
Array(92, 1), Array(93, 1), Array(94, 1), Array(95, 1), Array(96, 1), Array(97, 1), Array( _
98, 1), Array(99, 1), Array(100, 1), Array(101, 1), Array(102, 1), Array(103, 1), Array(104 _
, 1), Array(105, 1), Array(106, 1), Array(107, 1), Array(108, 1), Array(109, 1), Array(110, _
1), Array(111, 1), Array(112, 1), Array(113, 1), Array(114, 1), Array(115, 1), Array(116, 1 _
), Array(117, 1), Array(118, 1), Array(119, 1), Array(120, 1), Array(121, 1), Array(122, 1) _
, Array(123, 1), Array(124, 1), Array(125, 1), Array(126, 1), Array(127, 1), Array(128, 1), _
Array(129, 1), Array(130, 1), Array(131, 1), Array(132, 1), Array(133, 1), Array(134, 1))
Il faudrait que je rajoute encore des "Array". Existe t il un autre moyens d'écrire cela ?
2em probleme la macros ne tient compte que de la 1er ligne du fichier...
Autre direction de recherche : macros pour "splitter" A1 et ne pas "splitter" le champ x, y et z
quelque chose du genre :
Code:
For n = 2 To Range("A65536").End(xlUp).Row
Code:
[COLOR=blue] t = Split(Range("A" & n), ";")[/COLOR]
[COLOR=blue] Range("A" & ligne) = t(0)[/COLOR]
[COLOR=blue] Range("B" & ligne) = t(1)[/COLOR]
[COLOR=blue] Range("C" & ligne) = t(2)[/COLOR]
[COLOR=blue] ligne = ligne + 1[/COLOR]
[COLOR=blue]Next n[/COLOR]
Voila j'espere que quelqu'un pourras m'aider.
Merci et @+
Pièces jointes
Dernière édition: