Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Changer la valeur d'une cellule

6 réponses
Avatar
Sophie
Bonjour à tous,
Je voudais que la valeur d'une cellule change, en changant la valeur d'une
autre cellule...
Voici un exemple simplifié:
dans la case A1: j'ai inscrit "D".
dans la case A2: j'ai inscrit "=changevalue(A1)".
et voici la fonction:
Function changevalue(x)
If x = "D" Then
Cells(1, 3).Value = "Fonctionne"
End If
End Function
Je veux faire changer la valeur d'une cellule avec: celles(1,3).value="X".
Pourquoi ca ne fonctionne pas?

Merci!
Sophie

6 réponses

Avatar
Tatanka
Bonsoir Sophie,

Peut-être ainsi :
Function changevalue(x)
If x = "D" Then changevalue = "Fonctionne" Else changevalue = ""
End Function
En C3 : =changevalue(A1)

Est-ce que ça te convient ?

Serge


"Sophie" a écrit dans le message de news:
Bonjour à tous,
Je voudais que la valeur d'une cellule change, en changant la valeur d'une
autre cellule...
Voici un exemple simplifié:
dans la case A1: j'ai inscrit "D".
dans la case A2: j'ai inscrit "=changevalue(A1)".
et voici la fonction:
Function changevalue(x)
If x = "D" Then
Cells(1, 3).Value = "Fonctionne"
End If
End Function
Je veux faire changer la valeur d'une cellule avec: celles(1,3).value="X".
Pourquoi ca ne fonctionne pas?

Merci!
Sophie


Avatar
isabelle
bonjour sophie,

Function changevalue(cellule As Range)
If cellule = "D" Then
changevalue = "Fonctionne"
Else
changevalue = "Erreur"
End If
End Function

avec
=changevalue(A1)
si la cellule A1 = D le résultat est = "Fonctionne" si non c'est = à "Erreur"

isabelle

Bonjour à tous,
Je voudais que la valeur d'une cellule change, en changant la valeur d'une
autre cellule...
Voici un exemple simplifié:
dans la case A1: j'ai inscrit "D".
dans la case A2: j'ai inscrit "=changevalue(A1)".
et voici la fonction:
Function changevalue(x)
If x = "D" Then
Cells(1, 3).Value = "Fonctionne"
End If
End Function
Je veux faire changer la valeur d'une cellule avec: celles(1,3).value="X".
Pourquoi ca ne fonctionne pas?

Merci!
Sophie


Avatar
Sophie
Bonjour Isabelle et Tatanka,
Je ne peux pas écrire de formule dans la case où je veux que la valeur
change ( la case A3)! Car dans la case A3 je veux être libre de modifier son
contenu. Mais par défaut, lorsque je taperai "D", dans la case A1, le
contenu de A3 deviendra "fonctionne" par défaut. Je ne comprend pas pourquoi
l'instruction Celles(1, 3).Value = "Fonctionne", ne fonctionne pas...

Merci de votre aide!
Sophie
Avatar
isabelle
bonjour Sophie,

une fonction ne peut que retourner une valeur dans la cellule ou elle est inscrit,
elle ne peut pas modifier une autre cellule.

pour ce faire il y a les procédure événementielle de la feuille que tu peut utiliser.
par exemple :

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

ou bien:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

isabelle


Bonjour Isabelle et Tatanka,
Je ne peux pas écrire de formule dans la case où je veux que la valeur
change ( la case A3)! Car dans la case A3 je veux être libre de modifier son
contenu. Mais par défaut, lorsque je taperai "D", dans la case A1, le
contenu de A3 deviendra "fonctionne" par défaut. Je ne comprend pas pourquoi
l'instruction Celles(1, 3).Value = "Fonctionne", ne fonctionne pas...

Merci de votre aide!
Sophie


Avatar
Tatanka
Bonsoir Sophie,

Essaie ceci :
Fais un clic droit sur l'onglet de ta feuille,
clique sur « Visualiser le code » et colle
cette macro dans la feuille vierge qui devrait apparaître :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1]) Is Nothing Then
If [a1] = "D" Then [a3] = "Fonctionne"
End If
End Sub

Si tu entres D en A1, « Fonctionne » apparaîtra en A3.
Si tu entres autre chose que D ou si tu effaces D, que
veux-tu voir en A3 ?

Serge


"Sophie" a écrit dans le message de news:
Bonjour Isabelle et Tatanka,
Je ne peux pas écrire de formule dans la case où je veux que la valeur
change ( la case A3)! Car dans la case A3 je veux être libre de modifier son
contenu. Mais par défaut, lorsque je taperai "D", dans la case A1, le
contenu de A3 deviendra "fonctionne" par défaut. Je ne comprend pas pourquoi
l'instruction Celles(1, 3).Value = "Fonctionne", ne fonctionne pas...

Merci de votre aide!
Sophie


Avatar
Sophie
Merci Serge!
Ca fonctionne!! Je vais ajouter else [a3] = ""....
Merci, à toi et Isabelle...