XL 2010 Problème pour remplir un tableau

Magic_Doctor

XLDnaute Barbatruc
Bonsoir,

J'ai un tableau dynamique déclaré dans un module standard : Public ValComboPPA()

Lors de l'ouverture du classeur, je voudrais charger ce tableau avec des valeurs contenues dans des cellules nommées : "RememberValComboPPA1", "RememberValComboPPA2", "RememberValComboPPA3".
J'ai écrit ceci :
VB:
    For i = 1 To 3
        ValComboPPA(i) = Evaluate("RememberValComboPPA" & i)
        'ValComboPPA(i) = Range("RememberValComboPPA" & i)     'ne marche pas non plus
    Next
Ça plante.
Il semblerait que la fonction "Evaluate" n'accepterait pas de chaîne.
Comment alors s'yprendre ?
 

Magic_Doctor

XLDnaute Barbatruc
Re,

ValComboPPA(x) est redimensionné : Redim ValComboPPA(1 To 3), puisqu'il y a dans mon exemple 3 ComboBoxs.
ValComboPPA(1) récupère la valeur du ListIndex du 1er ComboBox qui était conservée dans la cellule virtuelle RememberValComboPPA1, cette valeur pouvant être 0 ou 1 (il n'y a que 2 items dans chaque ComboBox) ; et ainsi de suite pour les autres ValComboPPA.
 

job75

XLDnaute Barbatruc
Bonjour Magic_Doctor, le forum,

Le code du post #1 ne pose aucun problème à condition de dimensionner le tableau ValComboPPA :
VB:
Public ValComboPPA(1 To 3)

Sub MAJ()
Dim i As Byte
For i = 1 To 3
    ValComboPPA(i) = Evaluate("RememberValComboPPA" & i)
Next
'---pour tester---
[A1:C1] = ValComboPPA
End Sub
A+
 

Pièces jointes

  • MAJ(1).xlsm
    14.4 KB · Affichages: 2

job75

XLDnaute Barbatruc
Avec des ComboBox on créera les noms définis :
VB:
Private Sub ComboBox1_Change()
ThisWorkbook.Names.Add "RememberValComboPPA1", ComboBox1
MAJ
End Sub

Private Sub ComboBox2_Change()
ThisWorkbook.Names.Add "RememberValComboPPA2", ComboBox2
MAJ
End Sub

Private Sub ComboBox3_Change()
ThisWorkbook.Names.Add "RememberValComboPPA3", ComboBox3
MAJ
End Sub
 

Pièces jointes

  • MAJ(2).xlsm
    23.7 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
312 095
Messages
2 085 250
Membres
102 836
dernier inscrit
Ali Belaachet