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
| Sub Recup()
Dim i As Long, j As Long, k As Long
Dim Cell As Range
Dim ParametreFH As String, ParametreFC As String, ParametreLDG As String, ValeurFH As String, ValeurFC As String, ValeurLDG As String
Dim Item As Variant
Dim TotalFH As Double, TotalFC As Double, TotalLDG As Double
Application.ScreenUpdating = False
For Each Cell In Selection
On Error Resume Next
Item = Split(Chr(10) & Cell, Chr(10)) 'isoler chaque ligne de la cellule
For k = 0 To UBound(Item)
If InStr(1, Item(k), "FH", 1) > 0 Then 'détection de la position du paramètre FH
For i = InStr(1, Item(k), "FH", 1) - 1 To 1 Step -1
If i <> InStr(1, Item(k), "FH", 1) - 1 Or Mid(Item(k), InStr(1, Item(k), "FH", 1) - 1, 1) <> " " Then
If Mid(Item(k), i, 1) <> " " Then
ValeurFH = Mid(Item(k), i, 1) & ValeurFH
Else
GoTo Resultat
End If
End If
Next i
End If
If InStr(1, Item(k), "FC", 1) > 0 Then 'détection de la position du paramètre FC
For j = InStr(1, Item(k), "FC", 1) - 1 To 1 Step -1
If j <> InStr(1, Item(k), "FC", 1) - 1 Or Mid(Item(k), InStr(1, Item(k), "FC", 1) - 1, 1) <> " " Then
If Mid(Item(k), j, 1) <> " " Then
ValeurFC = Mid(Item(k), j, 1) & ValeurFC
Else
GoTo Resultat
End If
End If
Next j
End If
If InStr(1, Item(k), "LDG", 1) > 0 Then 'détection de la position du paramètre FC
For m = InStr(1, Item(k), "LDG", 1) - 1 To 1 Step -1
If j <> InStr(1, Item(k), "LDG", 1) - 1 Or Mid(Item(k), InStr(1, Item(k), "LDG", 1) - 1, 1) <> " " Then
If Mid(Item(k), m, 1) <> " " Then
ValeurLDG = Mid(Item(k), m, 1) & ValeurLDG
Else
GoTo Resultat
End If
End If
Next m
End If
Resultat:
TotalFH = TotalFH + ValeurFH * 1
ValeurFH = ""
TotalFC = TotalFC + ValeurFC * 1
ValeurFC = ""
TotalLDG = TotalLDG + ValeurLDG * 1
ValeurLDG = ""
Next k
Next
MsgBox "Total=" & TotalFH & " FH" & " " & TotalFC & " FC" & " " & TotalLDG & " LDG"
End Sub |
Partager