Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

HeAdLeSs

Excel et VBA

Messages recommandés

Bonjour à tous,

 

Un petit problème, je n'arrive pas à trouver ce que je veux sur google.

 

C'est simple, j'ai fait une macro qui test la valeur de telle cellule et la copie dans telle ou telle autre suivant ma condition. Jusqu'à là tout va bien. Le problème c'est que je suis obligé d'exécuter la macro et moi je desire que ce soit fait automatiquement c'est à dire quand je change la valeur de ma cellule il me reteste celle-ci sans que j'ai à faire alt+f8 et exécuter macro...

 

J'ai bien pensé à faire en sorte que la macro se rappelle elle même mais c'est pas vraiment une idée satisfaisante donc je préfère éviter...

 

Merci +a+

Partager ce message


Lien à poster
Partager sur d’autres sites

En fait je me suis acharné et j'ai trouvé par moi-même...

 

Voilà le code pour les générations futures :

Sub Worksheet_Change(ByVal Target As Excel.Range)
   If Target.Address = "$B$31" Or Target.Address = "$C$31" Or Target.Address = "$D$31" Then //condition sur la valeur de telle cellule
      If Target.Value <> 0 Then //condition qui provoque l'execution de la suite (toujours valable)
   Sheets("Feuil1").Select
   Range("E32").Select
   Var = Range("E32").Value //inistialisation de la variable Var qui contient la valeur dela cellule E32
       If Var >= 0 Then //condition sur l'opération de copier/coller des valeurs entre les cellules
       Sheets("Feuil4").Range("G11").Value = Var
       Sheets("Feuil4").Range("H11").Value = 0
       Else
       Sheets("Feuil4").Range("H11").Value = Var
       Sheets("Feuil4").Range("G11").Value = 0
       End If
       End If
   End If
End Sub

Modifié par laubean

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

C'est juste une question de placement de ton code :

 

Tu fais ALT F11 pour activer VBA puis tu double-clique sur "ThisWorkBook".

En haut de la fenêtre de code, déroule la liste "Général" pour afficher "WorkBook" puis, dans la liste des évènements, choisis "SheetChange", tu obtiendras ceci :

 

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'
'Ton code
'
End Sub

 

Tu n'as plus qu'à placer le code de ta macro là et tester.

 

A+

Horatio

Modifié par laubean

Partager ce message


Lien à poster
Partager sur d’autres sites

lol,

 

merci quand même :P

 

Par contre avec ta méthode ca detecte tous les changements de toutes les cellules ou pas ? car moi j'ai du spécifier comme tu peux le voir...

 

 

+a+

Partager ce message


Lien à poster
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×
×
  • Créer...