En VBA comment passer un ";" dans une formule envoyée dans une c el
2 réponses
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
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
@+
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
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
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