IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Worksheet_Change si deux cellules sont modifiées


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Worksheet_Change si deux cellules sont modifiées
    Bonjour le forum,

    Je m'entête depuis quelques jours à créer un petit fichier Excel pour les éliminatoires de l'Euro 2016.
    J'ai donc inscrit tous les matchs, et lorsque le score d'un match est rentré, les tableaux des poules se mettent à jour automatiquement (rang, puis tri dans l'ordre du rang etc).
    Cependant je n'arrive pas à faire en sorte que rien ne se passe (pas de calcul dans les tableaux des poules) tant que le score des deux équipes n'est pas rentré. Actuellement, dès que je rentre un des deux chiffres et que je passe à la cellule d'à côté, tout s'actualise... Il faut que si l'une des cellules est vide, rien ne se passe.

    J'ai bien essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i = 3 to 81
    if cells(i,7).value = "" or cells(i,8).value = "" then exit sub
    end if
    next i
    seulement ce code ne fonctionne pas (plus aucun calcul ne se fait)

    Voici le bout du code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    If Not Intersect(Target, Range("G3:H50")) Is Nothing Then 'si l'intersection de ma cible et de la plage n'est pas rien alors...
     
                 With ActiveWorkbook.Worksheets("Feuil1").Sort
                     .SetRange Range("L3:V9")
                     .Header = xlYes
                     .MatchCase = False
                     .Orientation = xlTopToBottom
                     .SortMethod = xlPinYin
                     .Apply
                 End With
     
            End If
    Petite info, je suis novice en VBA...

    J'ai essayé aussi ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not Intersect(Target, Range("G3:H50")) Is Nothing and cells(i,7).value = "" or cells(i,8).value = "" Then
    'tri des tableaux
    End If
    Mais encore une fois cela ne fonctionnait pas (ce code était inclus dans une boucle for).

    Je suppose qu'il est possible de faire ce que je souhaite mais là je bloque un peu...
    Si quelqu'un a un bout de solution...

    Cordialement,
    Kbx59

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Salut Kbx59,

    Je pense après quelques tests que ceci devrait répondre à ton besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Not Intersect(Target, Range("C3:D30")) Is Nothing Then
        If Not Cells(Target.Row, 3) = "" And Not Cells(Target.Row, 4) = "" Then
                'code
        End If
    End If
    Les scores sont dans les colonnes C et D.
    A toi d'adapter !

    Tiens moi au courant !

    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Salut Kimy_Ire, salut le forum

    Super, c'est exactement ce qu'il me fallait ! Merci beaucoup !

    J'ai une autre petite question : comment faire pour qu'une msgbox s'affiche une fois, et pas à chaque calcul ?
    Je m'explique. Je voudrais faire en sorte que si il y a une différence de plus de 4 buts dans un match, une msgbox s'affiche avec un texte dedans. Le problème c'est qu'elle s'affiche à chaque calcul, et moi je voudrais qu'elle s'affiche uniquement au moment où le score en question est rentré. Comment faire ?

    Cordialement,
    Kbx59

Discussions similaires

  1. [PPT-2007] Vérifier si deux cellules d'un tableau powerpoint sont fusionnées
    Par stroumfette44 dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 02/04/2015, 11h55
  2. [JTable] Cellule non modifiable
    Par Mister Nono dans le forum Composants
    Réponses: 4
    Dernier message: 11/03/2006, 18h50
  3. Tester si deux dates sont dans la même semaine ?
    Par boulzor dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/02/2006, 19h15
  4. [Debutant] [JTable] Fusionner deux cellules
    Par devil26 dans le forum Composants
    Réponses: 4
    Dernier message: 03/05/2005, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo