macro automatique de condition

T

Thomas

Guest
Bonjour à tous,

j'ai besoin de créer une macro qui remplit automatiquement une valeur dans une cellule cible quand on remplit une certaine valeur donnée dans une autre cellule (du genre formule de condition mais sans écrire la formule dans la cellule cible).
D'avance merci
Thomas
 
D

David

Guest
Salut
Je te conseille de placer une textbox sur la case que tu veux remplir automatiquement. Ensuite doubleclique dessus pour faire apparaitre la procedure, et entre:

If textbox1.value = 'ma valeur' then cells(ligne cellule cible, colonne cellule cible).value = 'mon autre valeur' ...


Tu peux en plus modifier les options de ta textbox pour qu'elle devienne 'invisible' et qu'on ait l'impression de rentrer la valeur dans une cellule du classeur.

SpecialEffect = 0 - fmSpecialEffectFlat

Voila c comme ca que je ferai
A plus
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Thomas, bonjour le forum,

Thomas je te propose cette macro événementielle à placer dans le composant WorkSheet de VBE :


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = '$A$1' Then Range('B1').Value = 'A1 éditée' '(cible et source à adapter)
End Sub

Édition

Bonjour David, on s'est croisé.

Message édité par: Robert, à: 30/09/2005 11:20
 
T

Thomas

Guest
Merci bien pour vos réponses (merci David mais le textbox ne va pas dans mon tableau).
Robert si tu peux STP développer un peu plus ta réponse ; mon ex c'est si la cellule(13,2)='1' alors la cellule (13,15)='0.5'. Merci!!
Thomas
 
T

Thomas

Guest
Encore une question sur ce sujet (eh oui j'ai du mal...:))
Comment faire la meme chose mais sur une avec une boucle car la macro doit vérifier plusieurs lignes (la concretement dans l'exemple les lignes 13, 14, 15 et 16)...j'ai essayé une boucle ca marche pas...
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Essaie comme ça :
Private Sub Worksheet_Change(ByVal Target As Range)
'condition 1 : le changement s'effectue dans pa plage B11:B16 autrement dit,
'si l'intersection de la cellule changée avec la plage B11:B16 n'est pas vide
If Not Application.Intersect(Target, Range(Cells(13, 2), Cells(16, 2))) Is Nothing Then
'condition 2 : si la cellule vaut '1' alors la 13ème cellule à sa droite vaut '0.5'
If Target.Value = '1' Then Target.Offset(0, 13).Value = '0.5'
End If 'fin de la condition 1
End Sub
 

Discussions similaires

Réponses
2
Affichages
205
Réponses
30
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 895
Messages
2 093 384
Membres
105 715
dernier inscrit
Yoenai