Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

En VBA comment passer un ";" dans une formule envoyée dans une c el

2 réponses
Avatar
LaurenceMagna
Bonjour,

J'espère que vous allez pouvoir m'aider !
Je suis sur un script VB et je boucle sur les lignes de ma feuille de calcul
afin de faire afficher le n° de semaine dans mes cellules.
Pour le moment voici ma syntaxe :
k = Range("D" & lig).Value 'Contient la date à transformer en numéro de
semaine
Range("B" & lig).Value = "=no.semaine(" & k & ";1)"

Ma deuxième ligne plante car je passe la méthode ";1" dans ma formule
no.semaine. Si je l'enlève la formule fonctionne mais mon numéro de semaine
est faux.
Le problème provient du ";" - le pb ne vient pas de no.semaine, cela n'est
pas la première fois que je rencontre cette erreur, avec "recherche" aussi
j'ai le pb.
Comment faire pour passer un ";" en VB ? le ";" étant nécessaire pour le bon
fonctionnement de la formule.

Merci d'avance pour vos solutions ! J'espère que mon pb est clair

2 réponses

Avatar
Modeste
Bonsour®,
LaurenceMagna wrote:
Comment faire pour passer un ";" en VB ? le ";" étant nécessaire pour
le bon fonctionnement de la formule.


VBA ne comprend que le grand breton et les séparateurs adéquats...
2 solutions :

en utilisant la fonction US correspondante separateur ","
Range("B" & lig).Value = Evaluate("=WeekNum(" & k & ",1)")

ou alors

Range("B" & lig).FormulaLocal = "=NO.SEMAINE(" & k & ";1)"
'puis remplacement la formule par la valeur
Range("B" & lig).Value=Range("B" & lig).Value

@+

Avatar
AV
Ma deuxième ligne plante car je passe la méthode ";1" dans ma formule


Deux problèmes : FormulaLocal puisque tu utilises les noms de fonctions en
français et il faut que ta variable k soit tranformée en N° de série (d'où la *
par 1)
Range("B" & lig).FormulaLocal= "=no.semaine(" & k*1 & ";1)"

Gare aussi à la fonction NO.SEMAINE !
Regarde juste au-dessus le fil de 09:51

AV