Probleme VBA

Fermé
Vincb9 - 24 avril 2012 à 17:31
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 24 avril 2012 à 18:24
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 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 427
Modifié par ccm81 le 24/04/2012 à 17:54
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
tu es un dieu ccm81 merci beaucoup
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 427
24 avril 2012 à 17:56
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
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 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 427
24 avril 2012 à 18:24
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