OVH Cloud OVH Cloud

Offset

14 réponses
Avatar
Jacquouille
Bonjour
Je voudrais alléger un peu cette commande
If [c] = "" Then c.Offset(0,x) = 0
où x prendrait la valeur de 1,2,3 et 4
Car pour l'instant, je fais 4 fois If ....et cela fait vite une forêt. -)
Merci et bonne fin de soirée à tous et tousses
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

10 réponses

1 2
Avatar
Michel Gaboly
Salut Jacquouille


If c = 0 Then
c.Offset(0, 1) = 0
c.Offset(0, 2) = 0
c.Offset(0, 3) = 0
c.Offset(0, 4) = 0
End If

ou (si beaucoup de valeurs)

If c = 0 Then
For i = 1 to 100
c.Offset(0, 1) = 0
Next
End If

ou, bien + rapide à l'exécution :

If c = 0 Then
With c
Range(.Offset(0, 1), .Offset(0, 4)) = 0
End With
End If


Bonjour
Je voudrais alléger un peu cette commande
If [c] = "" Then c.Offset(0,x) = 0
où x prendrait la valeur de 1,2,3 et 4
Car pour l'instant, je fais 4 fois If ....et cela fait vite une forêt . -)
Merci et bonne fin de soirée à tous et tousses



--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Modeste
Bonsour® Jacquouille avec ferveur ;o))) vous nous disiez :
Je voudrais alléger un peu cette commande
If [c] = "" Then c.Offset(0,x) = 0
où x prendrait la valeur de 1,2,3 et 4
Car pour l'instant, je fais 4 fois If ....et cela fait vite une forêt. -)


If [c] = "" Then Range(c.Offset(0, 1), c.Offset(0, 4)) = 0

tu peux ranger ta tronçonneuse !!!
@+

Avatar
JB
Bonjour,

If [c] = "" Then c.Offset(0, 1).Resize(, 4) = 0

Cordialement JB
Avatar
Michel Gaboly
Bonjour JB,

Une précision qui ne concerne qu'une petite minorité :

Resize nécessite une version de VBA basée sur la version 6 de VB ; ce la n'est donc utilisable ni avec Excel 97, ni avec
les versions Mac, y compris Excel 2004.

Bonjour,

If [c] = "" Then c.Offset(0, 1).Resize(, 4) = 0

Cordialement JB




--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
AV
"...Resize nécessite une version de VBA basée sur la version 6 de VB
cela n'est donc utilisable ni avec Excel 97,..."

Ce serait très étonnant : "Resize" existait déjà dans XL5 !

AV
Avatar
Jacquouille
Bonsoir la foule
Euh, au fait Gaëtan, ce ne serait pas ....
i au lieu de 1 dans ton exemple? >>> c.Offset(0, 1) = 0

Mille mercis pour la réponse
Jacques
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

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

Salut Jacquouille


If c = 0 Then
c.Offset(0, 1) = 0
c.Offset(0, 2) = 0
c.Offset(0, 3) = 0
c.Offset(0, 4) = 0
End If

ou (si beaucoup de valeurs)

If c = 0 Then
For i = 1 to 100
c.Offset(0, 1) = 0
Next
End If

ou, bien + rapide à l'exécution :

If c = 0 Then
With c
Range(.Offset(0, 1), .Offset(0, 4)) = 0
End With
End If


Bonjour
Je voudrais alléger un peu cette commande
If [c] = "" Then c.Offset(0,x) = 0
où x prendrait la valeur de 1,2,3 et 4
Car pour l'instant, je fais 4 fois If ....et cela fait vite une forêt. -)
Merci et bonne fin de soirée à tous et tousses



--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Jacquouille
Salut Gilbert
Superbe, mais, au fait, comment XL sait-il qu'il doit faire successivement
1,puis 2.. ou bien la formule veut-elle dire de 1 à 4 ?
Quoi qu'il anchois, merci
Jacques.

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Modeste" a écrit dans le message de news:
OE4bi$

Bonsour® Jacquouille avec ferveur ;o))) vous nous disiez :
Je voudrais alléger un peu cette commande
If [c] = "" Then c.Offset(0,x) = 0
où x prendrait la valeur de 1,2,3 et 4
Car pour l'instant, je fais 4 fois If ....et cela fait vite une
orêt. -)


If [c] = "" Then Range(c.Offset(0, 1), c.Offset(0, 4)) = 0

tu peux ranger ta tronçonneuse !!!
@+




Avatar
Jacquouille
La plus belle car la plus courte.
Il fallait aller le chercher, ce Recise.
Au fait, comment traduit-on la formule en Gaulois?
Moi y en a pas connaître ce Mr Recise.
merci
Jacques.

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

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

Bonjour,

If [c] = "" Then c.Offset(0, 1).Resize(, 4) = 0

Cordialement JB



Avatar
Jacquouille
Ave AV
Bonsoir Président.
Un président, ça Préside. NA !

Au fait, est-ce bien toi qui m'a envoyé en BAL perso un msg avec une annexe
oubliée Dieu sait où?
(Si ce n'est donc toi, c'est qu'il y a un véroleur sur la toile...)
Tiens, au fait, j'avais essayé:
If [c] = "" Then c.Offset(0,1:4) = 0
puis If [c] = "" Then c.Offset(0,{1;2;3;4}) = 0
Mais ça va pô.
Si tu peux me dire pourquoi?
Merci et bone soirée
Jacques.
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"AV" a écrit dans le message de news:
%23Ial%233$
"...Resize nécessite une version de VBA basée sur la version 6 de VB
cela n'est donc utilisable ni avec Excel 97,..."

Ce serait très étonnant : "Resize" existait déjà dans XL5 !

AV




Avatar
Modeste
Bonsour® Jacquouille avec ferveur ;o))) vous nous disiez :

La plus belle car la plus courte.
Il fallait aller le chercher, ce Recise.
Au fait, comment traduit-on la formule en Gaulois?


en Excel5 béche cela devait etre comme ceci :
If [c] = "" Then Range(c.Offset(0, 1), c.Offset(0, 4)) = 0
Si [c] = "" Alors Plage(c.Décaler(0; 1); c.Décaler(0; 4)) = 0
Le hainaut ayant longtemps été occupé par les espagnols
Si [c] = "" Entonces Rango(c.Desviar(0; 1); c.Desviar(0; 4)) = 0

et pour confirmer que c'est pas moi qui ai la plus courte ;o)))
If [c] = "" Then c.Offset(0, 1).Resize(, 4) = 0
Si [c] = "" Alors c.Décaler(0; 1).Redimensionner(; 4) = 0
dans la langue de Cervantes
Si [c] = "" Entonces c.Desviar(0; 1).CambiarTamaño(; 4) = 0
--
@+
;o)))

1 2