[VBA] + Excel + if
Résolu
jcdepot
Messages postés
13
Statut
Membre
-
jcdepot Messages postés 13 Statut Membre -
jcdepot Messages postés 13 Statut Membre -
Bonjour,
Je voudrais savoir comment faire pour que la colonne B affiche -20 si et seulement si la colonne A est égale à "Salut". La colonne B n'affiche rien si la colonne A ne répond pas à ce critère. Je sais que je pourrais faire cela en excel mais je ne veux pas que les usagers aient accès à la formule.
Je voulais également savoir où placer ce code pour qu'il ne s'applique qu'à la feuille1 d'excel.
je vous remercie de votre aide!
Je voudrais savoir comment faire pour que la colonne B affiche -20 si et seulement si la colonne A est égale à "Salut". La colonne B n'affiche rien si la colonne A ne répond pas à ce critère. Je sais que je pourrais faire cela en excel mais je ne veux pas que les usagers aient accès à la formule.
Je voulais également savoir où placer ce code pour qu'il ne s'applique qu'à la feuille1 d'excel.
je vous remercie de votre aide!
Configuration: Windows XP Firefox 2.0.0.6
11 réponses
-
Bonjour
essais ceci
If [(A1)] = "Salut" Then [B1] = [B1] - 20 -
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Worksheets(1).Cells(1, 1) = "salut" Then _
Worksheets(1).Cells(1, 2) = "-20" Else Worksheets(1).Cells(1, 2) = ""
End Sub
Salut
colle la procédure dans le module de la " feuille1 " et test le ..
Bye -
Je le colle dans la feuil1 mais ça ne semble pas fonctionner... Je fais surement quelque chose de travers.
Une autre question: Comment je fais pour la formule s'applique à toute la colonne et non seulement à la cellule A1 ?
Merci pour ton aide... -
Où est-ce que je dois écrire cette formule ?
Dans VBA sous la feuil1 ?
Est-ce que ça va s'appliquer à toute la colonne ou seulement à la cellule A1 ?
Merci pour ton aide ! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
salut
cette procédure ne fonctionnera que pour la cellule ( A1 )
sinon tu la colle dans ( VBE ) et dans le module de la feuille 1
bye -
Re
colle cette formule dans un module de ( VBE ) et clique ensuite sur ( Executer une macro ) cette fois ci 6000 lignes seront traitées
Public Sub Salut()
For i = 1 To 6000
If Worksheets(1).Cells(i, 1) = "salut" Then _
Worksheets(1).Cells(i, 2) = "-20" Else Worksheets(1).Cells(i, 2) = ""
Next i
End Sub
bye -
Hourra, ça fonctionne !!!
Maintenant que puis-je faire pour que ça se fasse automatiquement (sans avoir à exécuter la macro).
Merci ! -
Salut
Private Sub Salut()
For i = 1 To 600
If Worksheets(1).Cells(i, 1) = "salut" Then _
Worksheets(1).Cells(i, 2) = "-20" Else Worksheets(1).Cells(i, 2) = ""
Next i
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Call Salut
End Sub
range toute cette procédure dans la meme feuille mais j'ai déduit la boucle a 600 car a chaque mouvement sur la feuille
la procédure se met en route
je ne trouve pas cela terrible qu'elle se mette en route a chaque fois
j'aimerai que tu m'en dise un peu plus sur ce que tu veux exactement car il y a d'autres solutions
avec un bouton sur la feuille ( la procédure es invisible ) et de plus tu protege avec un code le ( VBAProject )
voila a ++ -
En fait je veux que le -20 apparaisse automatiquement lorsque j'écris Salut dans la colonne A.
Comme j'ai d'autres information à mettre dans ma feuille excel, peut-être que je serais mieux de faire un formulaire. Comme autre information j'ai le # de projet (unique), le nom du client et le nom de la personne ressource.
Je pourrais peut-être mettre le if en appuyant sur le 'ok' du formulaire.
Qu'est-ce que vous en pensez ? -
Bonjour,
Suggestion :
Transformer votre routine en fonction comme suit :
Function Salut(ByVal Cible As Range) As String Application.Volatile If (LCase(Cible.Offset(0, 0).Value) = "salut") Then Salut = "-20" Else Salut = "" End If End Function '
Dans la cellule B1 :
Inséré formule / Formules personnalisée / Salut
[ =Salut(A1) ]
En modifiant la cellule A1, la cellule B1 réagit immédiatement.
Lupin -
C'est bien mais l'usager va avoir accès à la formule et c'est ce que je veux éviter.