Sub Exemple()
Dim phrase1 As String, phrase2 As String, phrase3 As String, phrase4 As String
Dim phrase5 As String, phrase6 As String, Parametres As String
Dim strSheetName As String
strSheetName = ActiveSheet.Name
phrase1 = "Choisir l'élément"
phrase2 = "Choisir la date 1"
phrase3 = "Choisir la version"
phrase4 = "Choisir la date 2"
phrase5 = "Choisir la quantité"
phrase6 = "Choisir les valeurs"
Sheets("Feuil1").Select
Range("A26").Select
Parametres = ActiveSheet.Name & "!" & Selection_InputBox_Multi_Zones(phrase1)
Sheets(strSheetName).Range("C7").Formula = "=" & Parametres
Parametres = ActiveSheet.Name & "!" & Selection_InputBox_Multi_Zones(phrase2)
Sheets(strSheetName).Range("C8").Formula = "=" & Parametres
Parametres = ActiveSheet.Name & "!" & Selection_InputBox_Multi_Zones(phrase3)
Sheets(strSheetName).Range("C9").Formula = "=" & Parametres
Parametres = ActiveSheet.Name & "!" & Selection_InputBox_Multi_Zones(phrase4)
Sheets(strSheetName).Range("C10").Formula = "=" & Parametres
Parametres = ActiveSheet.Name & "!" & Selection_InputBox_Multi_Zones(phrase5)
Sheets(strSheetName).Range("E18").Formula = "=" & Parametres
Parametres = ActiveSheet.Name & "!" & Selection_InputBox_Multi_Zones(phrase6)
Sheets(strSheetName).Range("H18").Formula = "=COUNT(" & Parametres & ")"
Sheets(strSheetName).Range("E19").Formula = "=AVERAGE(" & Parametres & ")"
Sheets(strSheetName).Range("G19").Formula = "=min(" & Parametres & ")"
Sheets(strSheetName).Range("E20").Formula = "=MAX(" & Parametres & ")"
Sheets(strSheetName).Range("G20").Formula = "=STDEV(" & Parametres & ")"
End Sub
Function Selection_InputBox_Multi_Zones(Message As String) As String
'Selection de plusieurs zones avec touche CTRL
Dim Adresse_Zone As String, Adresses As String
Dim Zones As Range, Sous_Zone As Range
On Error Resume Next
Set Zones = _
Application.InputBox("Selection d'une ou plusieurs plages avec la touche CTRL:" _
& Chr(10) & Message, "Multi_plage test", Selection.Address(0, 0), Type:=8)
On Error GoTo 0
If Zones Is Nothing Then Exit Function
For Each Sous_Zone In Zones.Areas
Adresse_Zone = Adresse_Zone & Chr(10) & Sous_Zone.Rows.Count _
& " dans ligne " & Sous_Zone.Address(0, 0)
Adresses = Adresses & IIf(Adresses <> "", "," & Sous_Zone.Address(0, 0), Sous_Zone.Address(0, 0))
Next Sous_Zone
'Affichage désactivé pour cette utilissation
' MsgBox "Plage: " & Zones.Areas.Count & ", " & _
"Lignes: " & Zones.Rows.Count & Adresse_Zone
Selection_InputBox_Multi_Zones = Adresses
End Function