Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

test cellule 5 colonne active...

Y

ya_v_ka

Guest
salut tout le monde...
et oui y'en a qui rigolent, mais je suis encore coincé...
je cherche à faire un test en VBA du genre:

If colonneactive.celluleligne5 = X then
msgbox "pas de ca Lisette !"
else:
moncodenormal...

mais j'y arrive pas.... alors une fois encore je m'en remets à vous

merci d'avance ;-)

ya'v
 
P

Pierre

Guest
Bonjour,

Essaye le test suivant :

If Cells(5,ActiveCell.Column).Value=X then
msgbox "pas de ca Lisette !"
else:
moncodenormal...

Il faut au préalable sélectionner une cellule dans la colonne désirée.

Bon courage.
 
R

Robert

Guest
Bonsoir Ya_v_ka, bonsoir le forum,

Ce que je te propose risque de ne pas te convenir car je n'ai pas bien compris ta requête. Les codes ci-dessous font la chose suivante:
Si, dans n'importe quelle colonne de la ligne 5, tu cherches à modifier une cellule dans laquelle il est écrit "X", un message t'en empêche...'
Si il y a autre chose que "X" dans la cellule ou si tu te trouves sur une autre ligne que la ligne 5 il n'y a pas de message et ton code moncodenormal suis son cours... Est-ce ça ?

Si oui, copie les lignes ci-dessous dans le composant VBA correspondant à la feuille dans laquelle tu voudrais qu'elles agissent [Feuil1(Feuil1)] par exemple. Pour cela, copie les lignes de code puis clique avec le bouton droit sur l'onglet de la feuille dans ton classeur et choisis l'option [Visualiser le code] et colle les lignes. [Alt]+[F11] pour revenir à Excel...

début du code
Private valeur As Variant 'déclare la variable valeur

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'à chaque changement de sélection
If Target.Row = 5 Then 'si cellule dans ligne 5
valeur = Target.Value 'définit la variable valeur (contenu de la cellule)
End If 'fin condition
End Sub

Private Sub Worksheet_Change(ByVal Target As Range) 'à chaque modification d'une cellule
If valeur = "X" Then 'si le contenu avant modification (valeur) était = à X
Target.Select 'sélectionne la cellule (remonte car la touche [Entrée] a fait descendre)
Target.Value = "X" 'réécrit "X" dans la cellule (au lieu de la valeur modifiée)
MsgBox ("Pas de ça Lisette!") 'message
Target.Offset(1, 0).Select 'descend d'une ligne
Target.Select 'remonte d'une ligne (pour actualiser la variable valeur)
Exit Sub 'sort de la procédure
Else 'sinon
'moncodenormal
End If 'fin de la condition
End Sub
fin du code

À plus,

Robert
 
R

Robert

Guest
Re Ya_v_ka, le forum, bonsoir Pierre,

J'avais pas réactualisé... J'arrive après la "bataille"... C'est parce que j'ai le cerveau lent et qu'il y a du vent...

Hé bien mDF, on ne fait plus profiter les copains ? C'est dommage car tes plans sont toujours excellents...

À plus,

Robert
 
Y

ya_v_ka

Guest
en fait la réponse était:

If Cells(5,ActiveCell.Column)="X" then
msgbox "pas de ca Lisette !"
else:
moncodenormal... ' qui me rajoute un colonne entière, sans risque de toucher au colonnes marquées d'un "X", qui sont celles des dates à gauche et des résultats à droite... et comme en rajoutant des colonnes, celle des résultats change de position...il me fallait juste un test simple !

Merci à tous en tous cas...
ya'v
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…