Probleme VBA

Vincb9 -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterais faire quelquepas simple à expliquer.
En faite avec Userform j'y arrive mais pas avec des cellules directement mais c'est peut-être impossible.

imaginez que j'ai une cellule "A1" ou j'ai mon cout de revient
en "A2" j'ai mon coeff et en "A3" j'ai mon prix de vente

Je voudrais que lorsque je modifie mon coeff le prix de vente change automatiquement et inversement or si j'ai une formule dans ces cellule je vais l'effacer en écrivant.
Je ne veux ni bouton, ni raccourcis clavier pour activer la macro
J'ai bien réussi en mettant des textbox mais je voudrais le faire sans !

Quelqu'un à une idée ??

vince



4 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
re

est ce que celà correspond ?

Const plage = "B2:B3"      

Private Sub Worksheet_Change(ByVal Target As Range)      
Dim li As Long      
If Not Intersect(Target, Range(plage)) Is Nothing Then      
  li = Target.Row      
    Select Case li      
      Case 2      
        Cells(3, 2) = Cells(2, 2) * Cells(1, 2)      
      Case 3      
        Cells(2, 2) = Cells(3, 2) / Cells(1, 2)      
    End Select      
End If      
End Sub  
 
    A        B   
1  PR       12   
2  Coeff     5   
3  PV       60   

bonne suite
1
Vincb9
 
tu es un dieu ccm81 merci beaucoup
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
de rien
et dieu n'a rien à voir avec tout ça

RQ. si le pb est bouclé peux tu le (les) mettre à Résolu

bonne suite
0
Vincb9
 
par contre je vois marqué Const plage = "B2:B3"
je met quoi si mon cout de revient est en D74
mon coeff en X74 et mon prix de vente en X77 ??
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
re

Const PR = "B1"
Const Coeff = "D2"
Const PV = "B3"

Private Sub Worksheet_Change(ByVal Target As Range)
Dim plage As Range
Dim ad As String
Set plage = Union(Range(Coeff), Range(PV))
If Not Intersect(Target, plage) Is Nothing Then
  ad = Target.Address
  ad = Replace(ad, "$", "")
    Select Case ad
      Case Coeff
         Range(PV) = Range(PR) * Range(Coeff)
      Case PV
         Range(Coeff) = Range(PV) / Range(PR)
    End Select
End If
End Sub

et tu mets ce que tu veux pour les constantes
bonne suite
0