Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/11/2011, 16h18   #1
Invité de passage
 
Inscription : novembre 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 1
Points : 1
Points : 1
Par défaut Executer une macro lorsqu'une cellule se modifie suite à un calcul

Bonjour à tous,

Je viens de m'inscrire sur le forum pour solliciter votre aide. Je suis débutant sur vba, j'ai créé un code qui m'aide dans mon travail mais pour aller encore plus loin j'ai besoin d'un coup de pousse.

Mon code s'exécute à l'ouverture de la feuille excel et dès que la valeur de la cellule AQ1 change. En meme temps grace à valprec je mémorise l'ancienne valeur. Tout comme se qui est proposé dans cette discussion

Maintenant j'ai besoin que mon code s'exécute si AQ1 AQ2 AQ3 ou AQ4 changent, et meme temps il faut que je mémorise les LES VALEURS qui ont changées.
J'ai donc besoin de 4 valprec différentes sur une même feuille, est-ce possible ou faut il utiliser une autre fonction?

Merci d'avance
gregoozz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 10h54   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

J'ai modifié le code en te laissant écrire la macro "macro1" pour laquelle je n'ai pas de billes.
1. dans un module standard, tu mets :

Code :
1
2
3
4
Public ResAQ1
Public ResAQ2
Public ResAQ3
Public ResAQ4
2. dans "ThisWorkbook, tu mets :

Code :
1
2
3
4
5
6
7
8
Private Sub Workbook_Open()
    With Feuil1
        ResAQ1 = .[AQ1]
        ResAQ2 = .[AQ2]
        ResAQ3 = .[AQ3]
        ResAQ4 = .[AQ4]
    End With
End Sub
3. Dans le module de la feuille, tu mets :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub Worksheet_Calculate()
    Call Verif
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Intersect(Target, Range("AQ1,AQ2,AQ3,AQ4")) Is Nothing Then Exit Sub
    Verif Target
End Sub
 
Private Sub Verif(Optional c As Range)
    If c Is Nothing Then
        ResAQ1 = [AQ1]
        ResAQ2 = [AQ2]
        ResAQ3 = [AQ3]
        ResAQ4 = [AQ4]
    Else
        Select Case c.Address(0, 0)
            Case "AQ1": ResAQ1 = Target.Value
            Case "AQ2": ResAQ2 = Target.Value
            Case "AQ3": ResAQ3 = Target.Value
            Case "AQ4": ResAQ4 = Target.Value
        End Select
    End If
    'Macro1
End Sub
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h18.


 
 
 
 
Partenaires

Hébergement Web