[VBA] + Excel + if
Résolu/Fermé
jcdepot
Messages postés
13
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
24 avril 2020
-
22 août 2007 à 03:50
jcdepot Messages postés 13 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 avril 2020 - 30 août 2007 à 19:09
jcdepot Messages postés 13 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 avril 2020 - 30 août 2007 à 19:09
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!
A voir également:
- [VBA] + Excel + if
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
11 réponses
qmike
Messages postés
1509
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
18 juin 2012
594
22 août 2007 à 08:38
22 août 2007 à 08:38
Bonjour
essais ceci
If [(A1)] = "Salut" Then [B1] = [B1] - 20
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
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
jcdepot
Messages postés
13
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
24 avril 2020
24 août 2007 à 02:42
24 août 2007 à 02:42
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...
Une autre question: Comment je fais pour la formule s'applique à toute la colonne et non seulement à la cellule A1 ?
Merci pour ton aide...
jcdepot
Messages postés
13
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
24 avril 2020
24 août 2007 à 02:44
24 août 2007 à 02:44
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 !
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
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
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
jcdepot
Messages postés
13
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
24 avril 2020
27 août 2007 à 18:34
27 août 2007 à 18:34
Hourra, ça fonctionne !!!
Maintenant que puis-je faire pour que ça se fasse automatiquement (sans avoir à exécuter la macro).
Merci !
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 ++
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 ++
jcdepot
Messages postés
13
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
24 avril 2020
30 août 2007 à 14:27
30 août 2007 à 14:27
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 ?
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 ?
Utilisateur anonyme
30 août 2007 à 17:13
30 août 2007 à 17:13
Bonjour,
Suggestion :
Transformer votre routine en fonction comme suit :
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
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
jcdepot
Messages postés
13
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
24 avril 2020
30 août 2007 à 19:09
30 août 2007 à 19:09
C'est bien mais l'usager va avoir accès à la formule et c'est ce que je veux éviter.