Bonjour le Forum,
Soit
Une feuille nommée "Entrée"
...dotée d'un tableau structuré nommé "lebotablo"
...contenant 2 champs "Portf" et "lavaleur"
Je cherche à reporter les valeurs seules du champ "lavaleur" suite à formulation
Sachant que la formulation de la 1ère cellule de son objet Range incrémente celle de tous les enregistrements, si je procède à l'exécution de la procédure
Ceci en utilisant une formulation "structurée".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Public Sub essai_formula_struc() Dim maformule As String maformule = "=[@Portf]*2" With ThisWorkbook.Worksheets("Entrée").Range("lebotablo[lavaleur]") .ClearContents .Cells(1, 1).Formula = maformule .Value = .Value End With End Sub
alors j'obtiens les bonnes valeurs
Dans un 2ème temps, si je conjugue une formulation structurée avec une instruction Evaluate
alors le code retourne une erreur #VALEUR!.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Sub essai_formula_struc_2() Dim maformule As String maformule = "=[@Portf]*2" With ThisWorkbook.Worksheets("Entrée").Range("lebotablo[lavaleur]") .ClearContents .Cells(1, 1).Value = Evaluate(maformule) End With End Sub
Ceci dès la 1ère cellule
Pourquoi?
Alors qu'une formulation classique
ne pose aucun problème (la valeur 6 apparaît dans toute la colonne).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Sub essai_formula_struc_3() Dim maformule As String maformule = "=2*3" With ThisWorkbook.Worksheets("Entrée").Range("lebotablo[lavaleur]") .ClearContents .Value = Evaluate(maformule) End With End Sub
En résumé, le tableau structuré ne semble pas apprécier l'instruction "Evaluate" basée sur une formulation structurée (Ici "=[@Portf]*2")
2 étapes sont nécessaires
- formulation
- collage de valeurs (.Value = .Value) (Voir 1er code)
Le but de mon propos étant:
- dans une première phase, de reporter les valeurs obtenues ci-dessus par formulation structurée sur toute la colonne directement.
- dans une seconde phase (soit, sans doute, une autre discussion) d'utiliser une fonction adjacente à un type de variable défini (Public lafonction(…) As letype) directement sur une colonne de tableau structuré, sans balayage de cellules.
Merci à vous et bonne soirée.
Partager