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

Pb syntaxe

6 réponses
Avatar
Michel
Bonjour à tout le monde,

Je coince sur la syntaxe de ce code, ma variable prend la valeur d'une
chaine de caractère et non d'un nombre.
Quelqu'un peut-il m'aider ?

SommeDébit = "=SUM(E3:E" & Range("G65536").End(xlUp).Row

Je souhaite faire la somme de la colonne E dans la variable SommeDébit,
sachant que le nombre de ligne est variable, d'où
Range("G65536").End(xlUp).Row, dans mon code pour récupérer le n° de la
dernière ligne utilisée.

Merci par avance
--
Michel

6 réponses

Avatar
Excel
Bonjour Michel

Tu parles de la colonne E mais dans ta définission de la zone à
traitée il y a un G....

1: La variable SommeDébit est déclarée as long ?
2: Y a t'il des cellules vides dans le zone E3-dernière cellule non
vide ?

Si il n'y a pas de cellules vides, tu peux l'écrire comme cela

Set Plage = Range("E3", Range("E3").End(xlDown))
SommeDébit = Application.WorksheetFunction.Sum(Plage)

Si tu as des cellules vides ou autre chose non dévoilée reviens avec
tes précisions

Pat Rednef
Avatar
MichDenis
SommeDébit = Evaluate("SUM(E3:E" & Range("G65536").End(xlUp).Row & ")")

SommeDébit te retournera la somme.

P.S. Tu dois définir le type de ta variable as Double et non As String...



"Michel" a écrit dans le message de news: g402b5$l2b$
Bonjour à tout le monde,

Je coince sur la syntaxe de ce code, ma variable prend la valeur d'une
chaine de caractère et non d'un nombre.
Quelqu'un peut-il m'aider ?

SommeDébit = "=SUM(E3:E" & Range("G65536").End(xlUp).Row

Je souhaite faire la somme de la colonne E dans la variable SommeDébit,
sachant que le nombre de ligne est variable, d'où
Range("G65536").End(xlUp).Row, dans mon code pour récupérer le n° de la
dernière ligne utilisée.

Merci par avance
--
Michel
Avatar
Michel
Bonjour Patrick,

Oui, effectivement j'ai des cellules vides.
La colonne G est prise en réf, puisque normalement il n'y a aucune cellule
vide dans celle-çi. Mais bon si la formule choisie me donne la référence de
la dernière ligne utilisée, sans oublier aucune valeur, cela me va quand
même.

Merci pour ton aide


a écrit dans le message de
news:
Bonjour Michel

Tu parles de la colonne E mais dans ta définission de la zone à
traitée il y a un G....

1: La variable SommeDébit est déclarée as long ?
2: Y a t'il des cellules vides dans le zone E3-dernière cellule non
vide ?

Si il n'y a pas de cellules vides, tu peux l'écrire comme cela

Set Plage = Range("E3", Range("E3").End(xlDown))
SommeDébit = Application.WorksheetFunction.Sum(Plage)

Si tu as des cellules vides ou autre chose non dévoilée reviens avec
tes précisions

Pat Rednef
Avatar
Michel
Merci MichDenis, çà fonctionne nickel.

Une autre petite question : comment utilisé 2 variables SommeDébit et
SommeCrédit dans une condition du type :

Range("E2").Formula = "=if(-SommeDébit+y>SommeCrédit+z,-sommeDébit+y,"""")"
où y et z sont 2 autres variables contenant des chiffres.

Merci

"MichDenis" a écrit dans le message de
news:
SommeDébit = Evaluate("SUM(E3:E" & Range("G65536").End(xlUp).Row & ")")

SommeDébit te retournera la somme.

P.S. Tu dois définir le type de ta variable as Double et non As String...



"Michel" a écrit dans le message de news:


g402b5$l2b$
Bonjour à tout le monde,

Je coince sur la syntaxe de ce code, ma variable prend la valeur d'une
chaine de caractère et non d'un nombre.
Quelqu'un peut-il m'aider ?

SommeDébit = "=SUM(E3:E" & Range("G65536").End(xlUp).Row

Je souhaite faire la somme de la colonne E dans la variable SommeDébit,
sachant que le nombre de ligne est variable, d'où
Range("G65536").End(xlUp).Row, dans mon code pour récupérer le n° de la
dernière ligne utilisée.

Merci par avance
--
Michel




Avatar
Michel
MichDenis,
Merci pour ton aide, mais cela ne fonctionne pas.
La macro me dis qu'il y un bogue ???
Et La formule (if ) n'apparait pas dans la cellule E2 .




"MichDenis" a écrit dans le message de
news:

w = Evaluate("=if(-" & sommeDébit + y & _
">" & SommeCrédit + z & "," & _
-sommeDébit + y & ","""")")

Si tu entres ces formules dans une cellule, comme ce sont des
constantes, tu n'auras pas de mise à jour si tes données changent
sommeDébit et SommeCrédit devrait plutôt être des références
aux cellules contenant les résulttats

Range("E2").Formula = "=if(-" & sommeDébit + y & _
">" & SommeCrédit + z & "," & _
-sommeDébit + y & ","""")"

Comme ceci (j'ai utilisé des data fictives ):

y = 5
z = 2
sommeDébit = Range("G25").Address
SommeCrédit = Range("H25").Address

Range("E2").Formula = "=if(-" & sommeDébit & "+" & y & _
">" & SommeCrédit & "+" & z & "," & _
"-" & sommeDébit & "+" & y & ","""")"






"Michel" a écrit dans le message de news:


g4068k$mmn$
Merci MichDenis, çà fonctionne nickel.

Une autre petite question : comment utilisé 2 variables SommeDébit et
SommeCrédit dans une condition du type :

Range("E2").Formula "=if(-SommeDébit+y>SommeCrédit+z,-sommeDébit+y,"""")"
où y et z sont 2 autres variables contenant des chiffres.

Merci

"MichDenis" a écrit dans le message de
news:
> SommeDébit = Evaluate("SUM(E3:E" & Range("G65536").End(xlUp).Row & ")")
>
> SommeDébit te retournera la somme.
>
> P.S. Tu dois définir le type de ta variable as Double et non As


String...
>
>
>
> "Michel" a écrit dans le message de news:
g402b5$l2b$
> Bonjour à tout le monde,
>
> Je coince sur la syntaxe de ce code, ma variable prend la valeur d'une
> chaine de caractère et non d'un nombre.
> Quelqu'un peut-il m'aider ?
>
> SommeDébit = "=SUM(E3:E" & Range("G65536").End(xlUp).Row
>
> Je souhaite faire la somme de la colonne E dans la variable SommeDébit,
> sachant que le nombre de ligne est variable, d'où
> Range("G65536").End(xlUp).Row, dans mon code pour récupérer le n° de la
> dernière ligne utilisée.
>
> Merci par avance
> --
> Michel
>
>




Avatar
MichDenis
| La macro me dis qu'il y un bogue ???
| Et La formule (if ) n'apparait pas dans la cellule E2 .

Es-tu bien sûr de ce que tu avances ?
Je ne voudrais pas travailler pour rien ...
....déjà que je suis bénévole !

;-)