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

Macro générée par VBA

3 réponses
Avatar
dunkelzahn
Bonjour,

J'ai un un ptit soucis que je n'arrive pas =E0 r=E9soudre soit par sa
finalit=E9 soit par la m=E9thode (c'en est au point que je doute de ce que
je fais)

Voil=E0, je voudrai par VBA mettre une macro dans une cellule du type :
=3DSI(NBVAL(AC4:AC992);NBVAL(AC4:AC992);"")

Alors j'ai fais la syntaxe suivante par VBA :
DumpNum =3D HisTorique.Cells(3, Columns.count).End(xlToLeft).Column
DumpAdr =3D Left$(HisTorique.Cells(1, DumpNum + 1).Address(0, 0),
(HisTorique.Cells(1, DumpNum + 1).Column < 27) + 2)
HisTorique.Cells(1, DumpNum + 1).Formula =3D "SI(NBVAL(" & DumpAdr &
"4:" & DumpAdr & HisTorique.Cells(Rows.count, 3).End(xlUp).Row & _
");NBVAL(" & DumpAdr & "4:" & DumpAdr & HisTorique.Cells(Rows.count,
3).End(xlUp).Row & ");" _
& Chr(34) & Chr(34) & ")"


Le dumpnum et le dumpadr ressortent correctement (j'ai fais les
tests). Mais quand j'essaie d'ins=E9rer la formule il me ressort une
erreur d'ex=E9cution 1004.
Je ne pige pas o=F9 est le souci. Voyez vous mieux que moi ?

3 réponses

Avatar
LSteph
Bonjour,

Rajoute le = au début dans ta formule.

.Formula = "=Si

Cordialement.

--
lSteph


dunkelzahn a écrit :
Bonjour,

J'ai un un ptit soucis que je n'arrive pas à résoudre soit par sa
finalité soit par la méthode (c'en est au point que je doute de ce que
je fais)

Voilà, je voudrai par VBA mettre une macro dans une cellule du type :
=SI(NBVAL(AC4:AC992);NBVAL(AC4:AC992);"")

Alors j'ai fais la syntaxe suivante par VBA :
DumpNum = HisTorique.Cells(3, Columns.count).End(xlToLeft).Column
DumpAdr = Left$(HisTorique.Cells(1, DumpNum + 1).Address(0, 0),
(HisTorique.Cells(1, DumpNum + 1).Column < 27) + 2)
HisTorique.Cells(1, DumpNum + 1).Formula = "SI(NBVAL(" & DumpAdr &
"4:" & DumpAdr & HisTorique.Cells(Rows.count, 3).End(xlUp).Row & _
");NBVAL(" & DumpAdr & "4:" & DumpAdr & HisTorique.Cells(Rows.count,
3).End(xlUp).Row & ");" _
& Chr(34) & Chr(34) & ")"


Le dumpnum et le dumpadr ressortent correctement (j'ai fais les
tests). Mais quand j'essaie d'insérer la formule il me ressort une
erreur d'exécution 1004.
Je ne pige pas où est le souci. Voyez vous mieux que moi ?


Avatar
dunkelzahn
Bonjour

Merci LSteph pour ta réponse. Je verrai cela plus tard mais j'avais
déjà mis un "=" auparavant. Mauvaise ligne recopiée. Je te retourne la
suite de mes tests dès que possible.

On 18 juin, 08:46, LSteph wrote:
Bonjour,

Rajoute le = au début dans ta formule.

.Formula = "=Si

Cordialement.

--
lSteph

dunkelzahn a écrit :



> Bonjour,

> J'ai un un ptit soucis que je n'arrive pas à résoudre soit par sa
> finalité soit par la méthode (c'en est au point que je doute de ce que
> je fais)

> Voilà, je voudrai par VBA mettre une macro dans une cellule du type :
> =SI(NBVAL(AC4:AC992);NBVAL(AC4:AC992);"")

> Alors j'ai fais la syntaxe suivante par VBA :
> DumpNum = HisTorique.Cells(3, Columns.count).End(xlToLeft).Column
> DumpAdr = Left$(HisTorique.Cells(1, DumpNum + 1).Address(0, 0),
> (HisTorique.Cells(1, DumpNum + 1).Column < 27) + 2)
> HisTorique.Cells(1, DumpNum + 1).Formula = "SI(NBVAL(" & DumpAdr &
> "4:" & DumpAdr & HisTorique.Cells(Rows.count, 3).End(xlUp).Row & _
> ");NBVAL(" & DumpAdr & "4:" & DumpAdr & HisTorique.Cells(Rows.count,
> 3).End(xlUp).Row & ");" _
> & Chr(34) & Chr(34) & ")"

> Le dumpnum et le dumpadr ressortent correctement (j'ai fais les
> tests). Mais quand j'essaie d'insérer la formule il me ressort une
> erreur d'exécution 1004.
> Je ne pige pas où est le souci. Voyez vous mieux que moi ?- Masquer l e texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
dunkelzahn
Bonjour,

Comme promis, je reviens à la charge mais cette fois pour donner la
solution à mon problème. En fait le problème venait des ";" servant à
la séparation du SI(). Je les ai remplacés par des virgules et ca
fonctionne.

En clair :

HisTorique.Cells(1, DumpNum + 1).Formula = "=SI(NBVAL(" & DumpAdr &
"4:" & DumpAdr & HisTorique.Cells(Rows.count, 3).End(xlUp).Row & _
"),NBVAL(" & DumpAdr & "4:" & DumpAdr & HisTorique.Cells(Rows.count,
3).End(xlUp).Row & ")," _
& Chr(34) & Chr(34) & ")"

On 18 juin, 09:38, dunkelzahn wrote:
Bonjour

Merci LSteph pour ta réponse. Je verrai cela plus tard mais j'avais
déjà mis un "=" auparavant. Mauvaise ligne recopiée. Je te retour ne la
suite de mes tests dès que possible.

On 18 juin, 08:46, LSteph wrote:



> Bonjour,

> Rajoute le = au début dans ta formule.

> .Formula = "=Si

> Cordialement.

> --
> lSteph

> dunkelzahn a écrit :

> > Bonjour,

> > J'ai un un ptit soucis que je n'arrive pas à résoudre soit par sa
> > finalité soit par la méthode (c'en est au point que je doute de c e que
> > je fais)

> > Voilà, je voudrai par VBA mettre une macro dans une cellule du type :
> > =SI(NBVAL(AC4:AC992);NBVAL(AC4:AC992);"")

> > Alors j'ai fais la syntaxe suivante par VBA :
> > DumpNum = HisTorique.Cells(3, Columns.count).End(xlToLeft).Column
> > DumpAdr = Left$(HisTorique.Cells(1, DumpNum + 1).Address(0, 0),
> > (HisTorique.Cells(1, DumpNum + 1).Column < 27) + 2)
> > HisTorique.Cells(1, DumpNum + 1).Formula = "SI(NBVAL(" & DumpAdr &
> > "4:" & DumpAdr & HisTorique.Cells(Rows.count, 3).End(xlUp).Row & _
> > ");NBVAL(" & DumpAdr & "4:" & DumpAdr & HisTorique.Cells(Rows.count,
> > 3).End(xlUp).Row & ");" _
> > & Chr(34) & Chr(34) & ")"

> > Le dumpnum et le dumpadr ressortent correctement (j'ai fais les
> > tests). Mais quand j'essaie d'insérer la formule il me ressort une
> > erreur d'exécution 1004.
> > Je ne pige pas où est le souci. Voyez vous mieux que moi ?- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -