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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| Public Sub Transposer_2(ByVal sNomFichier As String)
Dim PtSource As Range, LPtSource As Range, Pos_source As Range, LPos_source As Range, Pos_cible As Range, LPtCible As Range, PtCible As Range
Workbooks.OpenText Filename:=Start_rib, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True
Set Test_Source = Autorib.Sheets("Transposer").Range("b3")
Set Projet = Autorib.Sheets("Transposer").Range("d1")
If Test_Source = "TCA" Then
CTS = 2
PTS = 1
End If
If Test_Source = "TCB" Then
CTS = 3
PTS = 2
End If
If Test_Source = "TCC" Then
CTS = 4
PTS = 3
End If
If Test_Source = "TCD" Then
CTS = 5
PTS = 4
End If
If Test_Cible = "TCA" Then
CTC = 1
End If
If Test_Cible = "TCB" Then
CTC = 2
End If
If Test_Cible = "TCC" Then
CTC = 3
End If
If Test_Cible = "TCD" Then
CTC = 4
End If
Coffre = Autorib.Sheets("Disposition").Range("b1")
EndLigne = Range("A" & Rows.Count).End(xlUp).Row
NomFichier = "C:\Users\" & Environ("username") & "\AppData\Local\Temp\" & Projet & "_" & Test_Cible & "_" & Coffre & "_New.csv"
Open NomFichier For Output As #1
For i = 1 To EndLigne
Set PtSource = Cells(i, 3)
With Autorib.Sheets("Traitement").Columns(CTS)
Set LPtSource = .Find(PtSource, LookIn:=xlValues, Lookat:=xlWhole)
Set Pos_source = LPtSource.Offset(0, -PTS)
End With
With Autorib.Sheets("Transposer").Columns("d")
Set LPos_source = .Find(Left(Pos_source, InStr(Pos_source, "_") - 1), LookIn:=xlValues)
Set Pos_cible = LPos_source.Offset(0, Col_decal)
End With
With Autorib.Sheets("Traitement").Columns("a")
Set LPtCible = .Find(Pos_cible & "_" & Mid(Pos_source, InStr(Pos_source, "_") + 1), LookIn:=xlValues)
Set PtCible = LPtCible.Offset(0, CTC)
End With
Tmp = ""
Tmp = Tmp & ";" & Range("a" & i).Text & ";" & Range("b" & i).Text & ";" & PtCible & ";" & Range("d" & i).Text & ";" & Range("e" & i).Text & ";" & Range("f" & i).Text & ";" & Range("g" & i).Text
Print #1, Mid(Tmp, Len(";") + 1)
Debug.Print Tmp
Next
Close #1
Shell "C:\Program Files (x86)\Notepad++\notepad++.exe " & NomFichier, vbNormalFocus
End Sub |
Partager