Bonjour,
Une possibilité :
Dans un fichier composé de 2 onglets : l'onglet 1 contient un bouton ActiveX lançant cette macro, l'onglet 2 contiendra les données du csv.
Sub ImporterCsv()
Dim FichierAOuvrir as Variant
Dim Wb As Workbook, WbCsv As Workbook
Dim Sh As Worksheet
Dim Aire As Range
Dim I As Long, DerniereLigne As Long
Dim NbChaines As Integer
On Error GoTo Fin
Set Wb = ThisWorkbook
Set Sh = Wb.Sheets("Feuil2") ' A adapter
ChDir Wb.Path
NbChaines = 0
FichierAOuvrir = Application.GetOpenFilename("Fichiers (*.csv),*.csv")
If FichierAOuvrir = False Then GoTo Fin
Workbooks.OpenText Filename:=FichierAOuvrir, Origin:=65001, StartRow _
:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=True, _
Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
Set WbCsv = ActiveWorkbook
WbCsv.Sheets(1).Cells.Copy Destination:=Sh.Range("A1")
WbCsv.Close savechanges:=False
With Sh
DerniereLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
Set Aire = .Range(.Cells(2, 1), .Cells(DerniereLigne, 2))
For I = 1 To Aire.Count
If InStr(1, Aire(I), "1.1", vbTextCompare) > 0 Then NbChaines = NbChaines + 1
Next I
MsgBox "Nombre de 1.1 : " & NbChaines
End With
GoTo Fin
Fin:
Set Wb = Nothing: Set WbCsv = Nothing: Set Sh = Nothing
End Sub