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
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
A voir également:
- Selection.texttocolumns
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Convertir chiffre en lettre excel sans macro ✓ - Forum Excel
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
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
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
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
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?
Pourrait-on avoir un extrait de la colonne "A" avant conversion?
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
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.
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.
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
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?
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
1 sept. 2015 à 11:58
Comment puis je vous joindre le fichier excel? Je ss sure mobile
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
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
'
' 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
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
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.
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.
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
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
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
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
Modifié par f894009 le 1/09/2015 à 16:05
Bonjour a vous deux et demande d'excuse pour l'incruste,
Chemin est une variable pas un texte
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"))
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
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
1 sept. 2015 à 11:18
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