Comment retraiter mes code macros
Bonsoir le forum
C'est toujours un plaisir pour moi de me connecter à ce forum.
J'ai des données importées d'un logiciel que je dois retraitées.
Avec l'enregistreur, j'ai pu réaliser une 1ère partie dons le code est ci-dessous:
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
| Sub STAT()
'
' STAT Macro
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\pk9086\Bureau\STATSSEMAINE.txt", Destination:= _
Range("$A$1"))
.Name = "STATSSEMAINE"
.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 = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(16, 7, 23, 3, 12, 27, 6, 4, 19, 3, 11)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Columns("A:D").Select
Selection.Delete Shift:=xlToLeft
Rows("2:13").Select
Selection.Delete Shift:=xlUp
Range("A3").Select
End Sub |
J'ai obtenu un autre code qui me permet de poursuivre le traitement de mes données dont le code est ci-dessous:
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
| Sub test()
Application.ScreenUpdating = False
Dim Derlg As Long
Dim i As Long
Dim c As Range
Dim x As Range
Derlg = Range("A65536").End(xlUp).Row
For i = Derlg To 1 Step -1
If Len(Range("A" & i)) <> 11 Or Left(Range("A" & i), 1) = "-" Then Rows(i).Delete
Next i
For Each c In Range("H1:H" & Range("H65536").End(xlUp).Row)
If c = "AU" Then c = c.Offset(0, -2)
Next c
Columns(6).Delete Shift:=xlToLeft
For Each x In Range("E1:E" & Range("E65536").End(xlUp).Row)
If (x.Value Like "*,*") Then x.Value = Replace(x.Value, ",", "")
x.NumberFormat = "#,##0.00"
Next x
End Sub |
1) Je souhaite qu'on revoie le code réalisé à partir de l'enregistreur pour le rendre plus lisible (voire compréhensible),
2) je souhaite qu'on fusionne les 2 macros ci possible,
3) ce code :
Code:
If Len(Range("A" & i)) <> 11 Or Left(Range("A" & i), 1) = "-" Then Rows(i).Delete
prend en compte les mots de 11 lettres ce qui n'est pas bon. je souhaite qu'on le revoie afin que ca concerne les 11 chiffres(numérique).
Cordialement