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
| Sub occurence()
Dim a As Integer, i As Integer
Dim Chaine As String
' colonnes L et M
For i = 12 To 13
' lignes 4 à 79
For a = 4 To 79
With Cells(a, i)
' adresse de la cellule située 9 colonnes avant
Chaine = Replace(.Offset(0, -9).Address, "$", "")
' formula R1C1
.FormulaR1C1 = "=MID(RC[-9],(SEARCH(""-"",RC[-9],1))+1,SEARCH(""-"",RC[-9],(SEARCH(""-"",RC[-9],1))+1)-((SEARCH(""-"",RC[-9],1))+1))"
' formula Local
.FormulaLocal = "=STXT(" & Chaine & ";(CHERCHE(""-"";" & Chaine & ";1))+1;CHERCHE(""-"";" & Chaine & ";(CHERCHE(""-"";" & Chaine & ";1))+1)-((CHERCHE(""-"";" & Chaine & ";1))+1))"
' formula
.Formula = "=MID(" & Chaine & ",(SEARCH(""-""," & Chaine & ",1))+1,SEARCH(""-""," & Chaine & ",(SEARCH(""-""," & Chaine & ",1))+1)-((SEARCH(""-""," & Chaine & ",1))+1))"
' calcul sous VBA et écriture du résultat
' sans écrire la formule dans excel
If UBound(Split(.Offset(0, -9), "-")) > 0 Then .Value = Split(.Offset(0, -9), "-")(1)
End With
Next a
Next i
End Sub |
Partager