• Initiateur de la discussion Initiateur de la discussion luc
  • 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 !

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
 
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
 
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
 
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
 
- 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

Réponses
10
Affichages
408
Retour