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

Lecture d'une cellule et comparaison

  • Initiateur de la discussion Initiateur de la discussion gregou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gregou

Guest
bonjours à tous !

Je voudrais savoir comment on peut lire une valeur entrée dans une cellule la comparer avec d'autre et selectionner les valeurs l'encadrant le mieux possible puis effectuer un calcul se basant sur ces 2 valeur prédeterminé aupparavant.

En espérant être compréhensible, merci d'avance
 
Grrrr ... mon message ne passe pas.

Je te joins ma réponse dans un fichier !

Papaye [file name=Merevoilou.zip size=3602]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Merevoilou.zip[/file]
 

Pièces jointes

Je regarde ton .doc et je te dis quoi mais ca devrais allé sas trop de problème
En tout cas encore merci pour ton interet et l efficacite de tes réponses
 
Sans problème, tout est super bien expliqué, le seul hic c est que j arrive toujours pas faire fonctionner la macros uniquement lorsque la pompe hydraulique est selectionner

j'ai ecris ca mais ca ne marche pas !

Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row = 15 Or Target.Row = 22 Or Target.Row = 29) And _
Target.Column > 2 And Target.Column < 9 And Cells(4, 2) = 'Pompe hydraulique à main' Then Call Gregou(Target.Address)
End If
Else
Range(CibleAdresse).Offset(1, 0).Value = 0

End Sub

j'ai essayer plusieur position du End If avec ou sans else mais... non
 
j ai de nouveau test qui aboutisse pas mais ca avance un peu tout de meme puisque en position pompe le calcule se fait mais il plante en position balance au lieu de me mettre des zéros

voici le code :

Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row = 15 Or Target.Row = 22 Or Target.Row = 29) And _
Target.Column > 2 And Target.Column 2 And Target.Column < 9 And Cells(4, 2) = Sheets('Feuil2').Cells(11, 1)

Then Range(CibleAdresse).Offset(1, 0).Value = 0
End Sub


Le visual basic me dit que la méthode range de l objet worsheet a echoue ! et me souligne ce morceau de code : Then Range(CibleAdresse).Offset(1, 0).Value = 0
Que ce passe t'il ?
 
heu la manque un bout !

le code en entier:

Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row = 15 Or Target.Row = 22 Or Target.Row = 29) And _
Target.Column > 2 And Target.Column 2 And Target.Column < 9 And Cells(4, 2) = Sheets('Feuil2').Cells(11, 1)

Then Range(CibleAdresse).Offset(1, 0).Value = 0
End Sub
 
harg ca marche toujours pas bon voila le fichier sera plus simple [file name=macro_20060530100307.zip size=573]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/macro_20060530100307.zip[/file]
 

Pièces jointes

Bon ben ... tu peux faire :

Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row = 15 Or Target.Row = 22 Or Target.Row = 29) And _
Target.Column > 2 And Target.Column < 9 And Cells(4, 2).Text = 'Pompe hydraulique à main' Then Call Gregou(Target.Address)
End Sub

Ta macro ne se déclenchera que si tu sélectionnes la pompe et pas la balance.

C'est bon ?

Papaye
 
oui ca marche mais en faite sans vouloir faire le vieux relou ( même si c'est le cas...) je voulais que lorsque l'option balance soit prise les corrections soit égale a zéro
voila le pourquoi de mon entetement
 
Non ... c'est pas bon :

La macro suivante t'effacera en plus le correctif quand tu sélectionnes la balance et non le manomètre.

Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row = 15 Or Target.Row = 22 Or Target.Row = 29) And _
Target.Column > 2 And Target.Column 2 And Target.Column < 9 Then
If Cells(4, 2).Text = 'Pompe hydraulique à main' Then
Call Gregou(Target.Address)
Else
Range('C16:H16').Value = ''
Range('C23:H23').Value = ''
Range('C30:H30').Value = ''
End If
End If
End Sub

Papaye
 
le soucis viens du Range(CibleAdresse).Offset(1, 0).Value = 0 qui ne veux rien dire en faite !
Je ne sais comment nommer les cellules correspondant aux corrections (cellule C16, D16...C23,D23...et C30,D30...), Cible adresse renvoyant a la 2eme macro si je comprend bien ?!
 
On s'est croisé (rien de sexuel là dessous !),

Essayes une des deux macros, la première ne remet à zéro que le correctif en dessous de la cellule saisie.

La deuxième efface tout les correctifs !

Après c'est comme tu veux, veux tu n'effacer qu'un correctif, que les correctifs d'un tableau, que les correctifs d'une colonne, tous les correctifs ?

Je suis impatiente de le savoir !

Papaye
 
a ce point ?
Alors j'ai des petits soucis, le 1er c'est que ta derniere macro ne marche pas chez moi:

Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row = 15 Or Target.Row = 22 Or Target.Row = 29) And _
Target.Column > 2 And Target.Column 2 And Target.Column < 9 Then
If Cells(4, 2).Text = 'Pompe hydraulique à main' Then
Call Gregou(Target.Address)
Else
Range('C16:H16').Value = ''
Range('C23:H23').Value = ''
Range('C30:H30').Value = ''
End If
End If
End Sub

Il me dit Else sans If... je sais pas trop pourquoi mais bon, il veut rien savoir !

Le second probleme qui n'en est pas vraiment un c'est que ta 1er macro marche mais laisse la correction tel quelle sans remplacer le chiffre dans la cellule ' correction' par 0

En faite j'ai pas compris ce que tu m'as dit puisque pour moi la premiere macros ne remet pas a 0 le correctif en dessous de la cellule saisie ( ce que j aimerai avoir) et la seconde ne marchant pas elle n'efface pas tous les correctifs ( chose pour moi sans grand interet)

Ce que je désir c'est que lorsque la pompe hydraulique est selectionnée, les corrections se calcule via la macro comme depuis toujours et que les corrections soit bien afficher dans la cellule en dessous de la cellule d'entrée

Enfin lorsque la balance mano est selectionnée toutes mes corrections en dessous des cellules d'entrée affiche directement 0

voila j'espere etre clair ?!
 
bonne nouvelle cette macros marche mais ne fonction que pour la ligne 16:

Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row = 15 Or Target.Row = 22 Or Target.Row = 29) And _
Target.Column > 2 And Target.Column 2 And Target.Column < 9 And Cells(4, 2) = Sheets('Feuil2').Cells(11, 1)
Then Range('C16:H16').Value = 0
End Sub

comment faire pour l'étendre aux autres ligne ?
 
RRRrrrrrhhhh mes posts de code foire tout le temp !

le fichier correspondant [file name=macro_20060530110646.zip size=321]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/macro_20060530110646.zip[/file]
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

A
Réponses
7
Affichages
2 K
Compte Supprimé 979
C
S
Réponses
18
Affichages
3 K
D
  • Question Question
2 3
Réponses
31
Affichages
4 K
darknigthmare
D
P
  • Question Question
Réponses
1
Affichages
3 K
Patrosso
P
S
Réponses
6
Affichages
13 K
S
F
Réponses
9
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…