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

Formule issue d'un prog VBA

6 réponses
Avatar
Sébastien
Bonjour,

Je tente de saisir avec du code VBA une formule dans une cellule :

FormuleHeure = "=HEURE(B" & LigneRemplir & ")"
ActiveWorkbook.Sheets(Onglet).Cells(LigneRemplir, 22).Formula = FormuleHeure

Il n'y a pas de pb de variables : si j'en suis par exemple à
LigneRemplir=14, je me retrouve là où il faut avec "=HEURE(B14)" : c'est
bien ce qui s'affiche dans la barre de formule d'Excel.

Le problème, c'est que la formule me retourne un joli #REF!, alors que B14
contient bien une heure, au bon format.

La solution actuelle : je clique dans la barre de formule, et je valide sans
rien modifier. Et là, ça fonctionne...

Quelqu'un saurait-il d'où peut venir cette erreur, et comment la réparer ?

Merci !

Sébastien

6 réponses

Avatar
j
essaie avec
FormuleHeure "=HOUR(R" & LigneRemplir & "C2)"


http://jacxl.free.fr

"Sébastien" a écrit dans le message de news:
4077cda2$0$26439$
Bonjour,

Je tente de saisir avec du code VBA une formule dans une cellule :

FormuleHeure = "=HEURE(B" & LigneRemplir & ")"
ActiveWorkbook.Sheets(Onglet).Cells(LigneRemplir, 22).Formula FormuleHeure

Il n'y a pas de pb de variables : si j'en suis par exemple à
LigneRemplir, je me retrouve là où il faut avec "=HEURE(B14)" : c'est
bien ce qui s'affiche dans la barre de formule d'Excel.

Le problème, c'est que la formule me retourne un joli #REF!, alors que B14
contient bien une heure, au bon format.

La solution actuelle : je clique dans la barre de formule, et je valide
sans

rien modifier. Et là, ça fonctionne...

Quelqu'un saurait-il d'où peut venir cette erreur, et comment la réparer ?

Merci !

Sébastien




Avatar
j
ou peut-etre
FormuleHeure = "=HEURE(B" & LigneRemplir & ")"
ActiveWorkbook.Sheets(Onglet).Cells(LigneRemplir, 22).FormulaLocal
=FormuleHeure



"" a écrit dans le message de news:
4077ceae$0$17504$
essaie avec
FormuleHeure "=HOUR(R" & LigneRemplir & "C2)"


http://jacxl.free.fr

"Sébastien" a écrit dans le message de news:
4077cda2$0$26439$
Bonjour,

Je tente de saisir avec du code VBA une formule dans une cellule :

FormuleHeure = "=HEURE(B" & LigneRemplir & ")"
ActiveWorkbook.Sheets(Onglet).Cells(LigneRemplir, 22).Formula > FormuleHeure

Il n'y a pas de pb de variables : si j'en suis par exemple à
LigneRemplir, je me retrouve là où il faut avec "=HEURE(B14)" : c'est
bien ce qui s'affiche dans la barre de formule d'Excel.

Le problème, c'est que la formule me retourne un joli #REF!, alors que
B14


contient bien une heure, au bon format.

La solution actuelle : je clique dans la barre de formule, et je valide
sans

rien modifier. Et là, ça fonctionne...

Quelqu'un saurait-il d'où peut venir cette erreur, et comment la réparer
?



Merci !

Sébastien








Avatar
Sébastien
Là, on peut dire que c'est une réponse rapide et efficace !

Merci pour cette solution. Puis-je abuser avec une autre question...?

Est-il possible, par du code VBA, avec une cellule sélectionnée et contenant
une formule, de copier cette dormule vers la cellule juste en dessous, mais
en incrémentant la formule, comme Excel le fait automatiquement quand on
recopie avec la "poignée de recopie" ?

Exemple :
Si G14 contient "=Heure(B14)"
obtenir avec VB, en G15 : "=Heure(B15)"

Je souhaiterais trouver une solution simple, parce que mes formules sont
assez fournies et une analyse de chacune pour modifier manuellement les
chiffres serait trop longue.

Merci !

Sébastien
Avatar
j
peut-etre :
Range("G14").AutoFill Range("G14:G15")


http://jacxl.free.fr


"Sébastien" a écrit dans le message de news:
4077d73c$0$26441$
Là, on peut dire que c'est une réponse rapide et efficace !

Merci pour cette solution. Puis-je abuser avec une autre question...?

Est-il possible, par du code VBA, avec une cellule sélectionnée et
contenant

une formule, de copier cette dormule vers la cellule juste en dessous,
mais

en incrémentant la formule, comme Excel le fait automatiquement quand on
recopie avec la "poignée de recopie" ?

Exemple :
Si G14 contient "=Heure(B14)"
obtenir avec VB, en G15 : "=Heure(B15)"

Je souhaiterais trouver une solution simple, parce que mes formules sont
assez fournies et une analyse de chacune pour modifier manuellement les
chiffres serait trop longue.

Merci !

Sébastien




Avatar
Daniel.M
Bonjour Sébastien,

ActiveWorkbook.Sheets(Onglet) _
.Cells(LigneRemplir, 22).FormulaLocal = FormuleHeure

Quand tu donnes une formule française en VBA, il faut que tu utilises
FormulaLocal et non pas Formula.

Salutations,

Daniel M.

"Sébastien" wrote in message
news:4077cda2$0$26439$
Bonjour,

Je tente de saisir avec du code VBA une formule dans une cellule :

FormuleHeure = "=HEURE(B" & LigneRemplir & ")"
ActiveWorkbook.Sheets(Onglet).Cells(LigneRemplir, 22).Formula = FormuleHeure

Il n'y a pas de pb de variables : si j'en suis par exemple à
LigneRemplir, je me retrouve là où il faut avec "=HEURE(B14)" : c'est
bien ce qui s'affiche dans la barre de formule d'Excel.

Le problème, c'est que la formule me retourne un joli #REF!, alors que B14
contient bien une heure, au bon format.

La solution actuelle : je clique dans la barre de formule, et je valide sans
rien modifier. Et là, ça fonctionne...

Quelqu'un saurait-il d'où peut venir cette erreur, et comment la réparer ?

Merci !

Sébastien




Avatar
Sébastien
Daniel.M wrote:
Bonjour Sébastien,

ActiveWorkbook.Sheets(Onglet) _
.Cells(LigneRemplir, 22).FormulaLocal = FormuleHeure

Quand tu donnes une formule française en VBA, il faut que tu utilises
FormulaLocal et non pas Formula.

Salutations,

Daniel M.



Merci beaucoup, voilà donc le pourquoi de la chose, que je n'avais pas
saisi.

Séb