XL 2013 MACRO DANS VBA POUR AUTOMATISER LES CALCULS SANS actionner un bouton macro

mcj1997

XLDnaute Accro
Bonjour,

En PJ un fichier dans lequel je n'arrive pas à automatiser ma macro "divise" sans avoir à lancer la macro
+ 2 problématiques.

Merci d'avance,
 

Pièces jointes

  • VBA.xls
    35 KB · Affichages: 76
  • VBA.xls
    35 KB · Affichages: 71

gilbert_RGI

XLDnaute Barbatruc
Re : MACRO DANS VBA POUR AUTOMATISER LES CALCULS SANS actionner un bouton macro

Bonjour

une macro peut se lancer suivant un événement dans la feuille de calcul
ou pleins d'autres actions

Cet événement peut être par exemple la sélection d'une cellule, la saisie d'une valeur, l'ouverture d'un classeur, l'activation d'une feuille de calcul ou encore la sélection d'une commande de menu.

A vous de dire ce que vous désirez
 

gilbert_RGI

XLDnaute Barbatruc
Re : MACRO DANS VBA POUR AUTOMATISER LES CALCULS SANS actionner un bouton macro

l' événement se produit lorsque les cellules de la feuille de calcul sont modifiées par l'utilisateur ou par un lien externe.

à mettre dans le module de la feuille

Private Sub Worksheet_Change(ByVal Target As Range)

Target étant la cellule

méthode pour sélectionner une cellule ici BG7 est lancer la macro MAJ

If Not Intersect(Target, Range("BG7")) Is Nothing Then MAJ
 

mcj1997

XLDnaute Accro
Re : MACRO DANS VBA POUR AUTOMATISER LES CALCULS SANS actionner un bouton macro

l' événement se produit lorsque les cellules de la feuille de calcul sont modifiées par l'utilisateur ou par un lien externe.

à mettre dans le module de la feuille

Private Sub Worksheet_Change(ByVal Target As Range)

Target étant la cellule

méthode pour sélectionner une cellule ici BG7 est lancer la macro MAJ

If Not Intersect(Target, Range("BG7")) Is Nothing Then MAJ

Pour la question 1 = lorsque je rajoute la ligne "Private Sub Worksheet_Change(ByVal Target As Range)" cela ne fonctionne pas.

Sub division()
For I = 4 To 50
Private Sub Worksheet_Change(ByVal Target As Range)

If Range("c" & I).Value <> "" And (Range("b" & I).Value <> 0 Or Range("b" & I).Value <> "") Then
Range("d" & I).Value = Range("c" & I).Value / Range("b" & I).Value
Else
Range("d" & I).Value = ""
End If
Next
End Sub


Question 2 = c'est cette formule que je souhaite faire tourner dans toutes les cases de la colonne G (de G4 à G50) =SOMME.SI($I$1:$BP$1;$G$2;I4:BP4)

Question 3 = je souhaite une formule dans vba de I4 à BP4 qui m'additionne les lignes 5 et 6 soit en I4 = i5 + i6 / en J4 = J5 + J6 et ainsi de suite.
 

gilbert_RGI

XLDnaute Barbatruc
Re : MACRO DANS VBA POUR AUTOMATISER LES CALCULS SANS actionner un bouton macro

bonjour,

Pour la question 1 = lorsque je rajoute la ligne "Private Sub Worksheet_Change(ByVal Target As Range)" cela ne fonctionne pas.

normal ce n'est pas ce que j'ai écrisPrivate Sub est une procédure qu'il faut placer dans le module de la feuil1
dans cette procédure entre le sub et end sub on sélectionne les cellules auxquelles on veut appliquer la macro
exemple pour BG7
If Not Intersect(Target, Range("BG7")) Is Nothing Then divisionalors comme ça à chaque changement de valeur de BG7 la macro division est lancée
 

mcj1997

XLDnaute Accro
Re : MACRO DANS VBA POUR AUTOMATISER LES CALCULS SANS actionner un bouton macro

bonjour,

Pour la question 1 = lorsque je rajoute la ligne "Private Sub Worksheet_Change(ByVal Target As Range)" cela ne fonctionne pas.

normal ce n'est pas ce que j'ai écrisPrivate Sub est une procédure qu'il faut placer dans le module de la feuil1
dans cette procédure entre le sub et end sub on sélectionne les cellules auxquelles on veut appliquer la macro
exemple pour BG7
If Not Intersect(Target, Range("BG7")) Is Nothing Then divisionalors comme ça à chaque changement de valeur de BG7 la macro division est lancée

Bonjour,

Pour la question 1, je souhaite avoir dans la colonne D la division les valeurs de la colonne C par les valeurs de la colonne B.

La case BG7 fait partie de la question 2.

Merci d'avance,
 

Discussions similaires

Réponses
8
Affichages
386

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé