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

Passage d'une feuille à une autre

C

Chouchane

Guest
Bonjour à tous

J'ai un petit pb pour écrire une macro excel.

Je souhaite:
- Regarder dans la cellule A1 de la feuille 2
- Comparer ce qu'il y a dans cette cellule avec ce qui se trouve dans la cellule A1 de la feuille 1
- Ecrire "ok" dans la cellule B1 si il y a la meme chose dans les 2 cellules

Je ne veux jamais ecrire quoique ce soit quelque part d'autre.

Merci d'avance et bonne semaine à tous

Chouchane
 
R

Robert

Guest
Salut Chouchane, salut le forum

tu n'as pas précisé dans quelle feuille tu voulais écrire "OK". Je te l'ai mis dans la feuille 1. Modifie la macro si ça va pas...


Public Sub ok()
If Sheets("Feuil1").Range("A1").Value = _
Sheets("Feuil2").Range("A1").Value Then
Sheets("Feuil1").Range("B1").Value = "ok"
End If
End sub

À plus,

Robert
 
C

Chouchane

Guest
Merci beaucoup c super!

J'ai encore une autre question : si je veux par exemple que B2 prenne toujours la valeur B1 meme si je modifie la valeur de B1 apres execution de la macro, que dois-je faire?

(Je suppose que dans l'expression :
Sheets("Feuil1").Range("B2").Value
il faut modifier value par autre chose, mais quoi?)

Merci encore

Chouchane
 
C

Chouchane

Guest
Merci d'avoir répondu et aussi vite, mais en fait ce que je veux c'est que B2 prenne sa valeur initiale * B1

On peut faire :
Range("B2") = Range("B2") * Range("B1")

Le problème c'est que si je mofifie B1 après l'exécution de la macro, B2 ne varie pas...

Merci d'avance

Chouchane
 
R

Robert

Guest
Re...

Hé oui, directement dans la cellule, tu obtiens une référence circulaire et Excel n’aime pas ça du tout.

Il y a la possibilité d’utiliser ton code à chaque changement de la cellule active. Pour cela :
Copie le code ci-dessous. Ouvre VBE. Double clique sur la feuille contenant B1 et B2. Clique dans le grand cadre à droite et colle le code.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("B2") = Range("B2") * Range("B1")
End Sub

À plus,

Robert
 

Discussions similaires

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