Une suite de logiciels de tableur Microsoft avec des outils pour analyser, créer des graphiques et communiquer des données
Cette réponse a été traduite automatiquement. Elle peut donc contenir des erreurs grammaticales ou des expressions inhabituelles.
Bonjour,
En supposant que les saisies soient effectuées dans la plage W15:BJ215 et que la quantité de forfaits de chaque client figure à la ligne 12 de la même colonne, une formule ne peut pas remplacer « ok » dans la cellule où elle est saisie. Taper « ok » écraserait la formule présente dans cette cellule.
Si une zone de résultat distincte vous convient, utilisez : =IF(LOWER(TRIM(W15))="ok",W$12,"")
Copiez la formule vers la droite et vers le bas. Elle affichera la quantité figurant à la ligne 12 de la colonne correspondant au client, dès lors que la cellule de saisie contient « ok ».
Pour remplacer « ok » directement dans la même cellule, utilisez plutôt un événement VBA « Worksheet_Change » :
1/ Cliquez avec le bouton droit sur l’onglet de la feuille de calcul concernée et sélectionnez « Visualiser le code ».
2/ Collez le code suivant dans la fenêtre de code de cette feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ChangedCells As Range
Dim Cell As Range
Set ChangedCells = Intersect(Target, Me.Range("W15:BJ215"))
If ChangedCells Is Nothing Then Exit Sub
On Error GoTo CleanUp
Application.EnableEvents = False
For Each Cell In ChangedCells.Cells
If Not IsError(Cell.Value2) Then
If StrComp(Trim$(CStr(Cell.Value2)), "ok", vbTextCompare) = 0 Then
Cell.Value2 = Me.Cells(12, Cell.Column).Value2
End If
End If
Next Cell
CleanUp:
Application.EnableEvents = True
End Sub
3/ Enregistrez le classeur au format « Classeur Excel prenant en charge les macros » (.xlsm).
Le code accepte la mention « ok » (quelle que soit la casse) et la remplace par la valeur située à la ligne 12 de la même colonne. Si la plage de saisie réelle diffère, modifiez la référence W15:BJ215 dans le code.
Références Microsoft :
Je vous recommande d'effectuer un test sur une copie du classeur au préalable, car la macro écrase le texte saisi. Si un lien Microsoft ne s'ouvre pas, veuillez réessayer ultérieurement.