le mien et par voie de conséquence le tien!
Citation:
C'est la faute d'orthographe sur ta variable derniere_ligne / DerniereLigne qui m'a induit en erreur.
Version imprimable
le mien et par voie de conséquence le tien!
Citation:
C'est la faute d'orthographe sur ta variable derniere_ligne / DerniereLigne qui m'a induit en erreur.
Bonjour et merci de ta réponse, en effet tu as très bien saisi mon problème, et je n'arrive toujours pas à le faire.
avec le code que je vais mettre ci dessous, il me décale les lignes.
Je crois également qu'avec la fonction Workbooks.Open avec Délimiter ca peut marcher mais j'ai tout essayer et en vain.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 Sub projet1() Dim premier_ligne As String Dim derniere_ligne As Long Dim i_tab As Long Dim a, b 'Application.ScreenUpdating = False ' initialisation classeur source Set wbSource = ThisWorkbook ' sélection du fichier à importer FileToOpen = Application.GetOpenFilename() ' si choix effectué If FileToOpen = False Then MsgBox "Vous n'avez pas sélectionné de fichier csv.", 16 Exit Sub Else ' ouverture du fichier csv Workbooks.OpenText FileName:=FileToOpen, Local:=True 'Idéee wbSource = Workbooks.Open(FileName:=FileToOpen, Format:=6, delimiter:=",") 'colle la partie csv dans excel Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) 'FileToOpen.Close False End If 'Dim DerniereLigne As Range 'DerniereLigne = Cells(Rows.Count, 1).End(xlUp) 'Worksheets.Add After:=Worksheets(Worksheets.Count) 'Range("A1", DerniereLigne).TextToColumns Destination:=Worksheets(Worksheets.Count).Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, Tab:=False, Comma:=True DerniereLigne = Cells(65535, 1).End(xlUp).Row Dim ContenuInitial As String Dim c() As String For i = 1 To DerniereLigne ContenuInitial = Cells(i, 1).Value c() = Split(ContenuInitial, ",") For j = 0 To UBound(c) Cells(i, j + 1).Value = c(j) Next j Next i
regarde cet exemple de csv(text)
regarde pour l'option avec texttocolumnCitation:
truc,budule,machin,10,30,50,"toto","titi"
truc,budule,machin,10,30,50,"toto","titi"
truc,budule,machin,10,30,50,"toto","titi"
truc,budule,machin,10,30,50,"toto","titi"
truc,budule,machin,10,30,50,"toto","titi"
on ouvre le csv
regarde ce que je fait sur les deux derniere colonnes qui sont sensée en etre qu'une avec nom/prenomCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub Macro1() ' ' Macro1 Macro ' 'chemin="C:\Users\polux\Desktop\test.csv" Workbooks.Open Filename:=chemin Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 2), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True End Sub
Pièce jointe 345330Code:
1
2
3
4
5 Sub Macro2() Range("I1").FormulaR1C1 = "=RC[-2] & "" "" & RC[-1]" Range("I1").AutoFill Destination:=Range("I1:I5"), Type:=xlFillDefault Range("I1:I5").Select End Sub
il ne te reste plaus qu'a netoyer le code obtenu par l'enregistreur faire un copy fermer le csv et coller sur ton sheets du classeur de la macro
voila
parfait, c'est génial. Ca marche presque parfaitement. J'ai encore un réglage que je n'arrive pas à ajuster.... Le texte me sépare bien tout comme il faut mais il me garde que le premier mois sur la ligne (1:1) donc je n'ai plus les noms des colonnes....