Macro convertion csv

Résolu/Fermé
Emy_lee Messages postés 7 Date d'inscription lundi 31 août 2015 Statut Membre Dernière intervention 1 septembre 2015 - 31 août 2015 à 21:15
Emy_lee Messages postés 7 Date d'inscription lundi 31 août 2015 Statut Membre Dernière intervention 1 septembre 2015 - 1 sept. 2015 à 16:47
Bonjour,
Jai un probléme quand je convertie a l'aide d'une macro dans excel une feuille deja copiè dun fichier csv, il me fait la convertion (donnée séparé par ; ) mais certaines cellules sont vides. Je ne comprend pas d'ou ca vient puisque quand je fait la convertion manuel a travers le bouton convertir ca marche nickel.pour info jutilise office 2010
A voir également:

3 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
1 sept. 2015 à 09:43
Bonjour
Si vous prenez le même séparateur vous devriez obtenir le même résultat que se soit en EXCEL ou avec le VBA.
Puisque ça marche quand vous le faites manuellement, utilisez l'enregistreur de macros et conservez le code obtenu (au passage, comparez- le avec votre macro, pour détecter ou se trouve l'anomalie).
Cdlt
0
Emy_lee Messages postés 7 Date d'inscription lundi 31 août 2015 Statut Membre Dernière intervention 1 septembre 2015
1 sept. 2015 à 11:18
Bonjour merci frenchie83 pour votre réponse, le probléme c que jai utiliser lenregistreur de macro pour obtenir ma macro et jai pa le meme resultat en manuel jai le tableau convertie nikel par contre par la macro il me separe bien les colonnes mais jai des cellules vides.
Voici ma macro :
ThisWorkbook.Worksheets("Base").Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=True, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1)), TrailingMinusNumbers:=True


N.b : mon separateur est ;

Merci davance pour votre réponse
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
1 sept. 2015 à 11:26
N'y a t_il pas 2 points virgules consécutifs?
Pourrait-on avoir un extrait de la colonne "A" avant conversion?
0
Emy_lee Messages postés 7 Date d'inscription lundi 31 août 2015 Statut Membre Dernière intervention 1 septembre 2015
1 sept. 2015 à 11:36
Ci-dessous la colonne A que je convertie :
Date : 08/2015;;;;;;;;;
TEST :;;;;;;;;;
COLL. EXT = AA ;COLL. INT = AA;;;;;;;;
AAAA;2011;2012;2013;2014;;;;;
2011;802;79;77;12;;;;;
2012;653;357;147;29;;;;;
2013;584;247;57;17;;;;;
2014;344;596;0;0;;;;;
2015;0;5;0;0;;;;;
Titre :;;;;;;;;;
COLL. EXT = AA ;COLL. INT = AA;;;;;;;;
AAAA;2011;2012;2013;2014;;;;;
2011;51;3;45;10;;;;;
2012;80;1;48;7;;;;;
2013;125;1;123;18;;;;;
2014;0;0;6;92;;;;;
2015;0;0;0;1;;;;;
Titre = test :;;;;;;;;;
COLL. EXT = AA ;COLL. INT = AA;;;;;;;;
AAAA;2011;2012;2013;2014;2015;2016;;;
2011;24;0;0;19;25;5;90;33;3
2012;32;0;0;17;28;5;116;28;8
2013;8;2;0;10;20;2;67;15;2
2014;0;0;0;0;64;0;19;9;1
2015;0;0;0;0;0;0;16;7;1
Test = Titre :;;;;;;;;;
COLL. EXT = AA ;COLL. INT = AA;;;;;;;;
AAAA;2011;2012;2013;2014;2015;2016;;;
2011;2;1;1;1;;;;;
2012;9;5;7;0;;;;;
2013;20;7;4;0;;;;;
2014;0;5;0;0;;;;;
2015;0;0;0;0;;;;;

Merci pour votre aide.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
1 sept. 2015 à 11:45
J'ai testé les 2 méthodes et le résultat est identique, Pouvez-vous aussi fournir le mauvais résultat?
0
Emy_lee Messages postés 7 Date d'inscription lundi 31 août 2015 Statut Membre Dernière intervention 1 septembre 2015 > Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023
1 sept. 2015 à 11:58
Comment puis je vous joindre le fichier excel? Je ss sure mobile
0
Emy_lee Messages postés 7 Date d'inscription lundi 31 août 2015 Statut Membre Dernière intervention 1 septembre 2015
1 sept. 2015 à 12:35
Je mexcuse vraiment pour le derangemeng. Mais voila jai changé carrement de tactique jai utilisé une nouvelle macro qui ouvre directement le fichier csv en le convertissant avant de le copié et ca marche nikel par contre le chemin du fichier est en dur dans le code la je vx le rendre dynamique en recuperant le contenu dune cellule ou je vx mettre le chemin et la ca marche pas. Voici ma macro : Sub Macro3()
'
' Macro3 Macro
'

'
Sheets("Importer").Select
Range("A2").Select
Chemin = Range("A2").Value
Nom = Range("B2").Value

ActiveCell.FormulaR1C1 = _
Chemin
'Range("A5").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;Chemin", _
Destination:=Range("$A$15"))
.Name = Nom
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierNone
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = ""
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
1 sept. 2015 à 13:19
Besoin de précisions:
Quand vous dites "ça ne marche pas", il ne se passe rien? ou bien y a-t-il un message d'erreur? dans ce cas où s'arrête le programme?
Pour déceler l'erreur, faites du pas à pas (positionnez-vous au milieu de la macro et avancez par F8).

Autre chose:
En A2, y a-t-il
"Lecteur:\répertoire\sous-répertoire\Nom de fichier.ext" ?
ou bien
En A2 "Lecteur:\répertoire\sous-répertoire\"
et en B2
"Nom de fichier.ext" ? si c'est ce cas de figure, n'oubliez pas de mettre un antislash "\" à la fin en A2.
Si malgré tout ça, tout vous semble correct, pouvez-vous me recopier les contenus de A2 et B2?

"Range("A2").Select " ne sert à rien.
ActiveCell.FormulaR1C1 = Chemin cette ligne ne sert à rien aussi, elle ne fait que recopier au même endroit ce qu'elle vient d'enregistrer 2 lignes au-dessus.
0
Emy_lee Messages postés 7 Date d'inscription lundi 31 août 2015 Statut Membre Dernière intervention 1 septembre 2015
1 sept. 2015 à 15:22
Re bonjour, effectivement quand jexecute jai une erreur qui saffiche qui est : erreur d'execution '1004'impossible de trouver le fichier texte pour lactualisation de cette plage de donnees externes.assurez vous que le texte na ete ni deplacé ni renommé et ressayez.
et quand je debogue il sarrete sur la derniere ligne .refresh backgroundquery :=false

Pour info la cellule a2 contient le chemin dacces de mon fichier+le nom du fichier.csv et la cellule b2 contien le nom du fichier.csv
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié par f894009 le 1/09/2015 à 16:05
Bonjour a vous deux et demande d'excuse pour l'incruste,

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;Chemin", _
Destination:=Range("$A$15")) 


Chemin est une variable pas un texte

With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Chemin, Destination:=Range("$A$15"))
0
Emy_lee Messages postés 7 Date d'inscription lundi 31 août 2015 Statut Membre Dernière intervention 1 septembre 2015 > f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024
1 sept. 2015 à 16:47
Bonjour, pas du tout. Merci bcp pour ta réponse effectivement ca été ca lerreur.je lai essayé et ca marche nikel ma macro. Merci bcp
0