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

Souci de vba

10 réponses
Avatar
Ayrton [ASC]
Bonjour à tous,

Me debrouillant un peu en VBA sous Access, je me suis lancé à faire un test
sur Excel et je suis paumé ! ! Je précise que je débute en VBA sous Excel
( mais vous l'auriez deviné ! ;-)
Voici ce que j'essaie de faire :
J'essaie de mettre en application une instruction IIf du genre : VX=IIf(
i>33, i*4,i)

Je voudrais faire cela pour une cellule : ex : Si je tapre 40 dans B2 alors
C2 =120 et ainsi de suite pour toute la série des B
Je ne trouve pas les évènements comme dans Access et je ne sais pas trop où
et comment faire ma fonction, ensuite où la mettre et surtout comment
l'appeler pour qu'en tapant dans B2, C2 prenne la valeur *3 si le nombre est
supérieur à 40 ou la même valeur que B2 si le nombre est inferieur.

Un petit coup de main meferait le plus grand bien car je suis largué de chez
largué avec ce truc là ;-(

D'avance, un très grand merci à vous

Cordialement

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm

10 réponses

Avatar
anonymousA
bonjour,

je ne suis pas sur que du VBA soit bien nécessaire mais si c'est le cas,
ce genre là devrait fonctionner sans difficulté
Uniquement pour la saisie en colonne B

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column = 2 Then
.Offset(0, 1).Value = IIf(.Value > 40, .Value * 4, .Value)
End If
End With
End Sub


Bonjour à tous,

Me debrouillant un peu en VBA sous Access, je me suis lancé à faire un test
sur Excel et je suis paumé ! ! Je précise que je débute en VBA sous Excel
( mais vous l'auriez deviné ! ;-)
Voici ce que j'essaie de faire :
J'essaie de mettre en application une instruction IIf du genre : VX=IIf(
i>33, i*4,i)

Je voudrais faire cela pour une cellule : ex : Si je tapre 40 dans B2 alors
C2 0 et ainsi de suite pour toute la série des B
Je ne trouve pas les évènements comme dans Access et je ne sais pas trop où
et comment faire ma fonction, ensuite où la mettre et surtout comment
l'appeler pour qu'en tapant dans B2, C2 prenne la valeur *3 si le nombre est
supérieur à 40 ou la même valeur que B2 si le nombre est inferieur.

Un petit coup de main meferait le plus grand bien car je suis largué de chez
largué avec ce truc là ;-(

D'avance, un très grand merci à vous

Cordialement



Avatar
garnote
Bonjour,

Une suggestion sans VBA :
Tu pourrais entrer cette formule en C2 et la recopier vers le bas.
=SI(OU(ESTVIDE(B2);ESTTEXTE(B2));"";SI(B2>40;3*B2;B2))

Serge


"Ayrton [ASC]" a écrit dans le message de news:
ur13%
Bonjour à tous,

Me debrouillant un peu en VBA sous Access, je me suis lancé à faire un
test sur Excel et je suis paumé ! ! Je précise que je débute en VBA sous
Excel ( mais vous l'auriez deviné ! ;-)
Voici ce que j'essaie de faire :
J'essaie de mettre en application une instruction IIf du genre : VX=IIf(
i>33, i*4,i)

Je voudrais faire cela pour une cellule : ex : Si je tapre 40 dans B2
alors C2 0 et ainsi de suite pour toute la série des B
Je ne trouve pas les évènements comme dans Access et je ne sais pas trop
où et comment faire ma fonction, ensuite où la mettre et surtout comment
l'appeler pour qu'en tapant dans B2, C2 prenne la valeur *3 si le nombre
est supérieur à 40 ou la même valeur que B2 si le nombre est inferieur.

Un petit coup de main meferait le plus grand bien car je suis largué de
chez largué avec ce truc là ;-(

D'avance, un très grand merci à vous

Cordialement

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm



Avatar
garnote
Ou plus simplement :

=SI(NON(ESTNUM(B2));"";SI(B2>40;3*B2;B2))

SErge

"garnote" a écrit dans le message de news:
%
Bonjour,

Une suggestion sans VBA :
Tu pourrais entrer cette formule en C2 et la recopier vers le bas.
=SI(OU(ESTVIDE(B2);ESTTEXTE(B2));"";SI(B2>40;3*B2;B2))

Serge


"Ayrton [ASC]" a écrit dans le message de news:
ur13%
Bonjour à tous,

Me debrouillant un peu en VBA sous Access, je me suis lancé à faire un
test sur Excel et je suis paumé ! ! Je précise que je débute en VBA sous
Excel ( mais vous l'auriez deviné ! ;-)
Voici ce que j'essaie de faire :
J'essaie de mettre en application une instruction IIf du genre :
VX=IIf( i>33, i*4,i)

Je voudrais faire cela pour une cellule : ex : Si je tapre 40 dans B2
alors C2 0 et ainsi de suite pour toute la série des B
Je ne trouve pas les évènements comme dans Access et je ne sais pas trop
où et comment faire ma fonction, ensuite où la mettre et surtout comment
l'appeler pour qu'en tapant dans B2, C2 prenne la valeur *3 si le nombre
est supérieur à 40 ou la même valeur que B2 si le nombre est inferieur.

Un petit coup de main meferait le plus grand bien car je suis largué de
chez largué avec ce truc là ;-(

D'avance, un très grand merci à vous

Cordialement

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm







Avatar
Ayrton [ASC]
Bonjour *anonymousA*
Dans ton message de news:43416d90$0$5403$,
Tu as pensé très fort :-(*)
bonjour,

je ne suis pas sur que du VBA soit bien nécessaire mais si c'est le
cas, ce genre là devrait fonctionner sans difficulté
Uniquement pour la saisie en colonne B

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column = 2 Then
.Offset(0, 1).Value = IIf(.Value > 40, .Value * 4, .Value)
End If
End With
End Sub


Merci beaucoup pour cette aide précieuse ; je suis d'accord avec toi sur le
fait que le vba n'était pas vraiment nécessaire mais j'essaie de comprendre
un peu les petites différence entre vba Access et vba Excel ; donc, pour
l'instant, c''est plus du test qu'autre chose ;-) ; je pense qu'en faisant
un Somme SI dans la barre de formule cela aurait dû aller mais bon, pour
l'instant, je fais un peu compliqué alors que je pourrais faire simple ;-)
Mais c'est aussi pour apprendre que j'essaie de faire comme ça.

En tout cas, merci de ta rapidité et de ta gentillesse

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm

Avatar
Ayrton [ASC]
Bonjour *garnote*
Dans ton message de news:%,
Tu as pensé très fort :-(*)

Bonjour,


Bonjour,

Une suggestion sans VBA :

Tu pourrais entrer cette formule en C2 et la recopier vers le bas.
=SI(OU(ESTVIDE(B2);ESTTEXTE(B2));"";SI(B2>40;3*B2;B2))


Merci beaucoup ; je ne connaissais pas cette formule en totalité ; j'en
apprends encore un peu plus.
Encore merci

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm

Avatar
Ayrton [ASC]
Re *garnote*
Dans ton message de news:,
Tu as pensé très fort :-(*)
Ou plus simplement :

=SI(NON(ESTNUM(B2));"";SI(B2>40;3*B2;B2))


Merci infiniement ; je viens de tester les deux et ça fonctionne super bien
dans les deux cas ;-)

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm

Avatar
Ayrton [ASC]
Re *anonymousA*

Je venais juste t'informer que ton fonctionne pil poil !
Merci 1000 fois pour le coup de main ;-)

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
Avatar
Ayrton [ASC]
Re,

Excuse moi de revenir mais en voulant me depêcher de te répondre, j'ai
oublié de te demander ce que je devais modifier dans le code si je veux
étendre à d'autres cellules( par exemple si je veux étendre à toute la série
des B ( disons jusqu'à B20 )

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column = 2 Then
.Offset(0, 1).Value = IIf(.Value > 40, .Value * 4, .Value)
End If
End With
End Sub


Encore merci

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm

Avatar
anonymousA
en l'occurence, target.column=2 implique que target c.à.d la cellule que
l'on vient de changer est en colonne B. Si on veut limiter l'evenement
aux seules cellules de B1 à B20 p.e, alors il faut écrire, à la
condition que target ne comprenne qu'une seule cellule

If Not Intersect(.item(1), Range("B1:B20")) Is Nothing Then

à la place de If .Column = 2

A+

Re,

Excuse moi de revenir mais en voulant me depêcher de te répondre, j'ai
oublié de te demander ce que je devais modifier dans le code si je veux
étendre à d'autres cellules( par exemple si je veux étendre à toute la série
des B ( disons jusqu'à B20 )


Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column = 2 Then
.Offset(0, 1).Value = IIf(.Value > 40, .Value * 4, .Value)
End If
End With
End Sub



Encore merci




Avatar
Ayrton [ASC]
Re,*anonymousA*

en l'occurence, target.column=2 implique que target c.à.d la cellule
que l'on vient de changer est en colonne B. Si on veut limiter
l'evenement aux seules cellules de B1 à B20 p.e, alors il faut
écrire, à la condition que target ne comprenne qu'une seule cellule


?? Je pensais que Target voulait dire Cellule, un peu comme Range ;
apparement j'ai tout fait car, à te lire, je vois que Target peut contenir
plusieurs cellules ; là je commence à ne plus suivre..........mais bon, ça
viendra ! !

If Not Intersect(.item(1), Range("B1:B20")) Is Nothing Then

à la place de If .Column = 2


Ok c'est noté
Encore vraiment merci
Bonne fin de soirée

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm