Bonjour,
En travaillant sur la question de "fly_emirates" j'ai rencontré un problème que je ne m'explique pas.
La macro fait appel à des plages nommées dynamiques. Si je définis les plages via Excel (Formules => définir un nom), la macro marche sans souci. La preuve, là elle marche.
Par contre, si je définis les noms via VBA :
Sub testNom()
Application.Names.Add Name:="[b]Liste1[/b]", RefersTo:= _
"=DECALER(compa!$A$2,,,NBVAL(compa!$A:$A)-1,1)"
Application.Names.Add Name:="[b]Liste2[/b]", RefersTo:= _
"=DECALER(compa!$B$2,,,NBVAL(compa!$B:$B)-1,1)"
End Sub
Les noms sont définis via cette macro sont valides; par contre, la macro les utilisant ne marche plus, je ne comprends pas du tout.
Si vous avez une idée, voici la macro utilisant les noms.
Sub compa()
Dim estValTrouvee() As Boolean
Dim i As Integer, j As Integer, compteur As Integer
ReDim estValTrouvee(1 To Range("Liste1").Cells.Count)
For i = LBound(estValTrouvee) To UBound(estValTrouvee)
For j = 1 To Range("Liste2").Cells.Count
If Range("Liste1").Cells(i, 1).Value = Range("Liste2").Cells(j, 1).Value And estValTrouvee(i) = False Then
estValTrouvee(i) = True
compteur = compteur + 1
End If
Next j
Next i
Range("E4").Value = compteur / Range("Liste1").Cells.Count
End Sub
Pour définir les noms via vba, appuyez sur le bouton "Définir les noms via vba"
Merci,