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

Ecriture en VB et retour ligne

5 réponses
Avatar
Manbas
Bonjour à tous,
Dans une macro j'additionne la valeur de 20 cellules séparées les unes des
autres (toutes les 10 colonnes). La macro est prévue pour explorer 100
lignes.
Donc j'ai écrit:
variable=activecell.offset(0,8).value+activecell.offset(0,18).value+activecell.offset(0,28).value+activecell.offset(0,38).value...etc
ça marche mais je n'arrive pas à écrire cette somme avec des retours lignes,
dans le genre:
variable=activecell.offset(0,8).value
+activecell.offset(0,18).value
+activecell.offset(0,28).value
+activecell.offset(0,38).value
Ni le _ ni le & ne conviennent.
Comment faire pour que mon code soit lisible ailleurs que très loin vers la
droite?
Peut-être me direz-vous aussi qu'il y a une autre solution pour calculer...
Merci d'avance +++

5 réponses

Avatar
Tatanka
Bonsoir,

Quelque chose du genre :
Sub Somme()
Set ici = ActiveCell
For i = 0 To 19
s = s + ici.Offset(0, 10 * i)
Next i
MsgBox s
End Sub

Pour les sauts de lignes, iil faut mettre un espace suivi d'un _

variable¬tivecell.offset(0,8).value _
+activecell.offset(0,18).value _
+activecell.offset(0,28).value _
+activecell.offset(0,38).value

Serge


"Manbas" a écrit dans le message de news: uKYyr$
Bonjour à tous,
Dans une macro j'additionne la valeur de 20 cellules séparées les unes des autres (toutes les 10 colonnes). La macro est prévue
pour explorer 100 lignes.
Donc j'ai écrit:
variable¬tivecell.offset(0,8).value+activecell.offset(0,18).value+activecell.offset(0,28).value+activecell.offset(0,38).value...etc
ça marche mais je n'arrive pas à écrire cette somme avec des retours lignes, dans le genre:
variable¬tivecell.offset(0,8).value
+activecell.offset(0,18).value
+activecell.offset(0,28).value
+activecell.offset(0,38).value
Ni le _ ni le & ne conviennent.
Comment faire pour que mon code soit lisible ailleurs que très loin vers la droite?
Peut-être me direz-vous aussi qu'il y a une autre solution pour calculer...
Merci d'avance +++



Avatar
anonymousA
Bonjour,

cette écriture devrait coller

With ActiveCell

variable = .Offset(0, 8).Value _
+ .Offset(0, 18).Value _
+ .Offset(0, 28).Value _
+ .Offset(0, 38).Value

End With

Mais si la séquence des écarts entre offset est régulière ( un pas de 10
p.e), alors il peut être plus simple d'écrire pour une boucle sur 15
occurences p.e.

For I=1 to 15

variable = variable + ActiveCell.Offset(0, 8+(10*(I-1))).Value

next

A+



Bonjour à tous,
Dans une macro j'additionne la valeur de 20 cellules séparées les unes des
autres (toutes les 10 colonnes). La macro est prévue pour explorer 100
lignes.
Donc j'ai écrit:
variable¬tivecell.offset(0,8).value+activecell.offset(0,18).value+activecell.offset(0,28).value+activecell.offset(0,38).value...etc
ça marche mais je n'arrive pas à écrire cette somme avec des retours lignes,
dans le genre:
variable¬tivecell.offset(0,8).value
+activecell.offset(0,18).value
+activecell.offset(0,28).value
+activecell.offset(0,38).value
Ni le _ ni le & ne conviennent.
Comment faire pour que mon code soit lisible ailleurs que très loin vers la
droite?
Peut-être me direz-vous aussi qu'il y a une autre solution pour calculer...
Merci d'avance +++




Avatar
Manbas
Merci beaucoup à tous les deux.
Deux solutions qui traitent deux parties differentes de mon problème, ça
c'est formateur!

A bientôt

"anonymousA" a écrit dans le message de news:
472778fe$0$5106$
Bonjour,

cette écriture devrait coller

With ActiveCell

variable = .Offset(0, 8).Value _
+ .Offset(0, 18).Value _
+ .Offset(0, 28).Value _
+ .Offset(0, 38).Value

End With

Mais si la séquence des écarts entre offset est régulière ( un pas de 10
p.e), alors il peut être plus simple d'écrire pour une boucle sur 15
occurences p.e.

For I=1 to 15

variable = variable + ActiveCell.Offset(0, 8+(10*(I-1))).Value

next

A+



Bonjour à tous,
Dans une macro j'additionne la valeur de 20 cellules séparées les unes
des autres (toutes les 10 colonnes). La macro est prévue pour explorer
100 lignes.
Donc j'ai écrit:
variable¬tivecell.offset(0,8).value+activecell.offset(0,18).value+activecell.offset(0,28).value+activecell.offset(0,38).value...etc
ça marche mais je n'arrive pas à écrire cette somme avec des retours
lignes, dans le genre:
variable¬tivecell.offset(0,8).value
+activecell.offset(0,18).value
+activecell.offset(0,28).value
+activecell.offset(0,38).value
Ni le _ ni le & ne conviennent.
Comment faire pour que mon code soit lisible ailleurs que très loin vers
la droite?
Peut-être me direz-vous aussi qu'il y a une autre solution pour
calculer...
Merci d'avance +++





Avatar
Tatanka
Voici un petit exemple à adapter en espérant que
çorresponde à la structure de tes données :
http://cjoint.com/?kEuIeiXTuF

Serge



"Manbas" a écrit dans le message de news: %
Merci beaucoup à tous les deux.
Deux solutions qui traitent deux parties differentes de mon problème, ça c'est formateur!

A bientôt

"anonymousA" a écrit dans le message de news: 472778fe$0$5106$
Bonjour,

cette écriture devrait coller

With ActiveCell

variable = .Offset(0, 8).Value _
+ .Offset(0, 18).Value _
+ .Offset(0, 28).Value _
+ .Offset(0, 38).Value

End With

Mais si la séquence des écarts entre offset est régulière ( un pas de 10 p.e), alors il peut être plus simple d'écrire pour une
boucle sur 15
occurences p.e.

For I=1 to 15

variable = variable + ActiveCell.Offset(0, 8+(10*(I-1))).Value

next

A+



Bonjour à tous,
Dans une macro j'additionne la valeur de 20 cellules séparées les unes des autres (toutes les 10 colonnes). La macro est prévue
pour explorer 100 lignes.
Donc j'ai écrit:
variable¬tivecell.offset(0,8).value+activecell.offset(0,18).value+activecell.offset(0,28).value+activecell.offset(0,38).value...etc
ça marche mais je n'arrive pas à écrire cette somme avec des retours lignes, dans le genre:
variable¬tivecell.offset(0,8).value
+activecell.offset(0,18).value
+activecell.offset(0,28).value
+activecell.offset(0,38).value
Ni le _ ni le & ne conviennent.
Comment faire pour que mon code soit lisible ailleurs que très loin vers la droite?
Peut-être me direz-vous aussi qu'il y a une autre solution pour calculer...
Merci d'avance +++









Avatar
Manbas
Waouh!
Je comprends pourquoi mes projets font des paquets de Mo, alors que ceux de
"ceussent" qui savent sont légers-légers...
Merci Tatanka.


"Tatanka" a écrit dans le message de news:
%23Lw$
Voici un petit exemple à adapter en espérant que
çorresponde à la structure de tes données :
http://cjoint.com/?kEuIeiXTuF

Serge



"Manbas" a écrit dans le message de news:
%
Merci beaucoup à tous les deux.
Deux solutions qui traitent deux parties differentes de mon problème, ça
c'est formateur!

A bientôt

"anonymousA" a écrit dans le message de news:
472778fe$0$5106$
Bonjour,

cette écriture devrait coller

With ActiveCell

variable = .Offset(0, 8).Value _
+ .Offset(0, 18).Value _
+ .Offset(0, 28).Value _
+ .Offset(0, 38).Value

End With

Mais si la séquence des écarts entre offset est régulière ( un pas de 10
p.e), alors il peut être plus simple d'écrire pour une boucle sur 15
occurences p.e.

For I=1 to 15

variable = variable + ActiveCell.Offset(0, 8+(10*(I-1))).Value

next

A+



Bonjour à tous,
Dans une macro j'additionne la valeur de 20 cellules séparées les unes
des autres (toutes les 10 colonnes). La macro est prévue pour explorer
100 lignes.
Donc j'ai écrit:
variable¬tivecell.offset(0,8).value+activecell.offset(0,18).value+activecell.offset(0,28).value+activecell.offset(0,38).value...etc
ça marche mais je n'arrive pas à écrire cette somme avec des retours
lignes, dans le genre:
variable¬tivecell.offset(0,8).value
+activecell.offset(0,18).value
+activecell.offset(0,28).value
+activecell.offset(0,38).value
Ni le _ ni le & ne conviennent.
Comment faire pour que mon code soit lisible ailleurs que très loin
vers la droite?
Peut-être me direz-vous aussi qu'il y a une autre solution pour
calculer...
Merci d'avance +++