Incompatibilité de type

Coucou tout le monde !

J'ai un petit soucis sur ce code , vba m'envoit un " incompatibilité de type" sur la ligne de code en gras..... je comprends pas pourquoi......car il reconnait tout mon "iii" et mon "marqueur_bis"..Si quelqun a une idée? mercii beaucoup, voici mon code

Dim marqueur_bis As Double

Dim iii As Integer

iii = 15

SolverOk SetCell:="$H$5", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$3:$D$" & c - 1 + 3 & ""

While Worksheets("Optimization").Range("G" & iii & "") <> ""

marqueur_bis = 0

marqueur_bis = Application.Match(Worksheets("Optimization").Cells(iii, 7), Worksheets("Optimization").Range("B3:B23"), 0)

SolverAdd CellRef:="$D$" & marqueur_bis & "+ 2 ", Relation:="$H$" & iii & "", FormulaText:="$I$" & iii & ""

SolverSolve

iii = iii + 1

Wend

SolverAdd CellRef:="$D$24", Relation:=2, FormulaText:="1"

SolverSolve UserFinish:=True

sab

Aah ! Quelle activité !

Sous réserve de ma méconnaissance de l'utilisation de Solver (surtout en VBA) :

Relation attend un Integer : tu lui donnes une réf de cellule sous forme texte (peut-être la valeur serait mieux ; le "" en fin n'a pas d'utilité)

Les autres arguments sont des variant mais il semble que FormulaText attend plutôt une valeur (plutôt que la réf texte que tu envoies, dans ce cas un = devant me paraîtrait pouvoir aller.

CellRef devrait accepter la réf telle quelle (mais le cas échéant les exemples montrent qu'elle accepte sous forme objet Range(réf).

Cordialement et bonne fin de weekend.

bonjour à vous

n'est-il pas possible de scinder la ligne pour voir plus précisément le souci ?

oui effectivement je suis présente . Merci Mferrand de nouveau pour ta réponse.

Si j'enlève dans mes codes "" ,vba me dit erreur de syntaxe car c la syntaxe su solver. De plus pour FormulaText c'est l'utilisateur qui les choisit en les inscrivant sur excel donc je ne peux à l'avance les définir...


Bonjour jmd....c'est à dire la scinder?


javais déclarer marqueur_bis as variant mais rien n'y fait............

re

scinder = découper

soit en plusieurs lignes

soit en mettant des valeurs fixes dans certaines égalités pour tester le terme qui fait problème

mon code ne reconnait pas mes variables marqueur et iii j'ai modifier le code par rapport à ce que ma dit Mferrand voici mon nouveau code mais toujours le meme soucis :

Dim marqueur_bis As Double

Dim iii As Integer, val_relation As Integer

Dim nom As Variant, form_Text As Variant

iii = 15

SolverOk SetCell:="$H$5", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$3:$D$" & c - 1 + 3 & ""

While Worksheets("Optimization").Range("G" & iii & "") <> ""

'If Range("G15") = "Tous les titres" Then

marqueur_bis = 0

val_relation = 0

form_Text = ""

nom = ""

val_relation = Worksheets("Optimization").Cells(iii, 8)

nom = Worksheets("Optimization").Cells(marqueur_bis + 3, 4)

form_Text = Range("I" & iii & "")

marqueur_bis = Application.Match(Worksheets("Optimization").Cells(iii, 7), Worksheets("Optimization").Range("B3:B23"), 0)

SolverAdd CellRef:="nom", Relation:="val_relation", FormulaText:="form_Text"

SolverSolve

iii = iii + 1

Wend

'Else

SolverAdd CellRef:="$D$24", Relation:=2, FormulaText:="1"

SolverSolve UserFinish:=True

Sab

Rechercher des sujets similaires à "incompatibilite type"