Bonjour,
Je vous contacte au sujet d'une macro qui devrait me permettre de convertir des fichiers tsv au format csv selon un formalisme donné afin d'utiliser ce fichier avec un logiciel spécifique.
J'ai longuement parcouru le forum sans trouver toujours ce que je souhaitais.
Pour plus de clareté, je vous joins en PJ le fichier brut en toto.tsv et le fichier final attendu en toto.csv (oui toto c'est très original).
Je précise que la colonne "Time" est à créer à partir de "Relative Time"/1000.
J'ai commencé à faire quelque chose, mais je bloque. Je précise que je débute complètement, et que la macro a été réalisé à l'aide de l'enregistreur :
Merci pour votre aide.
Je vous contacte au sujet d'une macro qui devrait me permettre de convertir des fichiers tsv au format csv selon un formalisme donné afin d'utiliser ce fichier avec un logiciel spécifique.
J'ai longuement parcouru le forum sans trouver toujours ce que je souhaitais.
Pour plus de clareté, je vous joins en PJ le fichier brut en toto.tsv et le fichier final attendu en toto.csv (oui toto c'est très original).
Je précise que la colonne "Time" est à créer à partir de "Relative Time"/1000.
J'ai commencé à faire quelque chose, mais je bloque. Je précise que je débute complètement, et que la macro a été réalisé à l'aide de l'enregistreur :
Merci pour votre aide.
VB:
Sub test()
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = ActiveWorkbook.Path & "\"
.Filters.Clear
.Filters.Add "enregistrements", "*.tsv"
.Show
If .SelectedItems.Count > 0 Then
Workbooks.OpenText Filename:=.SelectedItems(1), Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
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, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1)), _
TrailingMinusNumbers:=True
End If
End With
Rows("1:11").Select
Range("A11").Activate
Selection.Delete Shift:=xlUp
Rows("3:3").Select
Selection.Delete Shift:=xlUp
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Range("B1:J1").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = "s"
Rows("1:1").Select
Selection.Cut Destination:=Rows("3:3")
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A2").Select
ActiveCell.FormulaR1C1 = "Time, CSV"
Range("A3").Select
ActiveCell.FormulaR1C1 = "s"
Range("A4").Select
ActiveCell.FormulaR1C1 = "=RC[1]/1000"
Columns("B:B").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A4").Select
Selection.AutoFill Destination:=Range("A4:A1738"), Type:=xlFillDefault
Range("A4:A1738").Select
ActiveWindow.ScrollRow = 1723
ActiveWindow.ScrollRow = 1699
ActiveWindow.ScrollRow = 1664
ActiveWindow.ScrollRow = 1546
ActiveWindow.ScrollRow = 1456
ActiveWindow.ScrollRow = 1326
ActiveWindow.ScrollRow = 1217
ActiveWindow.ScrollRow = 726
ActiveWindow.ScrollRow = 628
ActiveWindow.ScrollRow = 530
ActiveWindow.ScrollRow = 448
ActiveWindow.ScrollRow = 354
ActiveWindow.ScrollRow = 52
ActiveWindow.ScrollRow = 1
ActiveSheet.Name = "Data"
Range("E10").Select
Sheets.Add After:=ActiveSheet
Sheets("Data").Select
Rows("2:2").Select
Selection.Copy
Sheets("Feuil1").Select
Rows("1:1").Select
Sheets("Data").Select
Application.CutCopyMode = False
Cells.Select
Range("A2").Activate
Selection.Copy
Sheets("Feuil1").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Rows("1:1").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft
Range("F19").Select
Sheets.Add After:=ActiveSheet
Sheets("Feuil1").Select
Rows("1:1").Select
Selection.Copy
Sheets("Feuil2").Select
Rows("1:1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("A6").Select
Application.CutCopyMode = False
Cells.Select
Range("A6").Activate
Sheets("Feuil2").Select
Range("A2").Select
ActiveCell.FormulaR1C1 = _
"=CONCATENATE(Feuil1!RC,"";"",Feuil1!RC[1],"";"",Feuil1!RC[2],"";"",Feuil1!RC[3],"";"",Feuil1!RC[4],"";"",Feuil1!RC[5],"";"",Feuil1!RC[6],"";"",Feuil1!RC[7],"";"",Feuil1!RC[8],"";"",Feuil1!RC[9])"
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A278"), Type:=xlFillDefault
Range("A2:A278").Select
ActiveWindow.ScrollRow = 258
ActiveWindow.ScrollRow = 254
ActiveWindow.ScrollRow = 245
ActiveWindow.ScrollRow = 235
ActiveWindow.ScrollRow = 207
ActiveWindow.ScrollRow = 183
ActiveWindow.ScrollRow = 158
ActiveWindow.ScrollRow = 134
ActiveWindow.ScrollRow = 116
ActiveWindow.ScrollRow = 82
ActiveWindow.ScrollRow = 69
ActiveWindow.ScrollRow = 59
ActiveWindow.ScrollRow = 51
ActiveWindow.ScrollRow = 42
ActiveWindow.ScrollRow = 25
ActiveWindow.ScrollRow = 18
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 1
Sheets.Add After:=ActiveSheet
Sheets("Feuil2").Select
Columns("A:BB").Select
ActiveWindow.ScrollColumn = 42
ActiveWindow.ScrollColumn = 40
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 1
Selection.Copy
Sheets("Feuil3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Time"
Range("F9").Select
End Sub