Calcul en "continu"

  • Initiateur de la discussion luc
  • Date de début
L

luc

Guest
Bonjour, tout le monde le monde,
J’ai un souci sur VBA Excel – je souhaite avoir une macro qui calcule en continu le produit de deux cellules (ex =A1*B1) sans que la formule soit inscrite dans la cellule et sans que j’ai besoin de lancer la macro --> que se soit en continu.
Par ex : je souhaite que en C1 la macro calcul en temps reel le produit de A1 et B1. Lorsque je change A1, C1 doit changer. ceci doit etre piloté par la macro et aucune formule ne doit etre inscrite en C1

Pourriez vous m’indiquer SVP la marche a suivre ?
Merci d’avance !!!

Bien cordialement,

Luc
 
P

PhiBou

Guest
Bonjour Luc, le Forum

Il faut que tu utilises une évènementielle

Dans VBA, tu double-cliques sur le nom de ta feuille et tu copies
ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = '$A$1' Then
Range('C1') = Range('A1') * Range('B1')
End If
End Sub

Bonne journée

PhiBou
 
L

Luc

Guest
Merci !!!

Juste une autre question :)

je désire avoir le code ci-dessous pour mon 'calcul en continu'. Mon problème est que je dois faire ce calcul 30 fois dans des cellules différentes (a chaque fois tout est décalé de 13 lignes)... Donc taper 30 fois le code... Auriez vous une combine avec des variables pour éviter de refaire 30 fois la manip ?

Merci beaucoup !!


Code :
Private Sub Worksheet_Change(ByVal Target As Range)
'Grand Total
'Original Budget
If Target.Address = '$E$7' Then
Range('E1129') = Range('E7') + Range('E417')
End If
If Target.Address = '$E$417' Then
Range('E1129') = Range('E7') + Range('E417')
End If
'Budget
If Target.Address = '$E$15' Then
Range('E1130') = Range('E15') + Range('E421')
End If
If Target.Address = '$E$421' Then
Range('E1130') = Range('E15') + Range('E421')
End If
'Budget Over (-) / Under (+)
If Target.Address = '$E$1130' Then
Range('E1131') = Range('E1129') - Range('E1130')
'Range('E1132') = (Range('E1129') - Range('E1130')) / Range('E1129')
End If
If Target.Address = '$E$1129' Then
Range('E1131') = Range('E1129') - Range('E1130')
End If
'Budget Over (-) / Under (+)
If Target.Address = '$E$1130' Then
Range('E1132') = (Range('E1129') - Range('E1130')) / Range('E1129')
End If
If Target.Address = '$E$1129' Then
Range('E1132') = (Range('E1129') - Range('E1130')) / Range('E1129')
End If


Bien cordialement,

Luc
 
P

PhiBou

Guest
Bonjour Luc, le Forum

Il faut utiliser une boucle avec un pas 13. Ci-joint le début du programme modifié :

For i = 0 To 390 Step 13
If Target.Address = '$E$' & 7 + i Then
Range('E' & 1129 + i) = Range('E' & 7 + i) + Range('E' & 417 + i)
End If
If Target.Address = '$E$' & 417 + i Then
Range('E' & 1129 + i) = Range('E' & 7 + i) + Range('E' & 417 + i)
End If
.
.
.
etc
.
.
.
Next i

Bonne journée

PhiBou
 

Discussions similaires

Statistiques des forums

Discussions
312 414
Messages
2 088 230
Membres
103 775
dernier inscrit
CriCri92