Sub test() Dim Fdesti As Worksheet Set Fdesti = Sheets("B") Dim b1val As String b1val = Fdesti.range("B1").Value Select Case UCase(b1val) Case "PLAGE1" [F1].Value = somRange("A", "plage1") Case "PLAGE2" [F1].Value = somRange("A", "plage2") Case Else MsgBox "saisie incorecte" & b1val End Select End Sub Function somRange(Feuille As String, strRange As String) As Double somRange = Application.WorksheetFunction.Sum(Sheets(Feuille).range(strRange)) End Function
Dim laplage As Range
On Error Resume Next
Set laplage = Range(UCase(Range("B1").Text))
If Not laplage Is Nothing Then
........ 'ce que l'on veut en utilisant laplage
Else
MsgBox "erreur de saisie": Beep: Range("B1").Select
End If
on error goto 0
Private Sub ListBox1_Click()
Range("B1") = ListBox1.Text
Range("F1").Value = Application.WorksheetFunction.Sum(Range(ListBox1.Text))
ListBox1.Visible = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> Range("B1").Address Then
ListBox1.Visible = False
Else
With ListBox1
.Clear
If ThisWorkbook.Worksheets("Feuil1").Names.Count > 0 Then
For Each plage_nommee In ThisWorkbook.Worksheets("Feuil1").Names
.AddItem plage_nommee.Name
Next
.Left = Range("B1").Left
.Top = Range("B1").Top
.Visible = True
.Width = Range("B1").Width * 2
.Height = Range("B1").Height * 2
End If
End With
End If
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
18 nov. 2014 à 15:08
Je n'avais pas pensé effectivement aux soucis "WP". J'ai modifié et réécrit en me basant sur le code que tu proposes, et... Ca marche à la perfection ! Je te remercie de ton aide, c'est vraiment super.
18 nov. 2014 à 15:12