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 :

Problème de soustraction dans Boucle For each


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 70
    Points
    70
    Par défaut Problème de soustraction dans Boucle For each
    Bonjour, j'ai un petit soucis avec mon code. Je veux que dans mon code, on me renvoie la soustraction de 2 cellules. J'ai testé avec une msgbox et tout semble aller. On me renvoie la bonne valeur. Cependant, lorsque la soustraction me renvoie la bonne valeur, je voudrais qu'il me colore en rouge la cellule active dans ma boucle For Each ainsi que la cellule à sa droite (même ligne, + 1 colonne). C'est là que j'ai l'impression que ça bug. On dirait que ma boucle "For Each Cell in Range..." n'accepte que les cellules active et ne veut pas faire de "Offset".

    Avez-vous des suggestions ou des solutions?

    Merci. Voici mon code en gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub Worksheet_Change(ByVal target As Range)
     
    Dim Soustraction As Double
    Dim cell As Range
    Dim ligne As Integer
    Dim col As Integer
     
    ligne = Target.Row
    col = Target.Column
     
     
    For Each cell In Range("H" & ligne & ":AR" & ligne)
     
    Soustraction = Target.Offset(0, 0).value  - Target.Offset(0, 1).value
     
        'Mise en forme Conditionnelle Heure de Diner
     
                    If Soustraction = "1" Then
                                        'Heure de Diner
                                        If cell.Offset((-ligne + 3), 0).Value < Target.Offset(0, -3).Value + "0,12501" And cell.Offset((-ligne + 3), 0).Value > Target.Offset(0, -3).Value + "0,12499" And Target.Offset(0, 0).Value < 15 And Target.Offset(0, 0).Value > 0 Then
     
                                                cell.Interior.Color = 255
                                                cell.FormulaR1C1 = ""
                                                cell.Offset(0, 1).Interior.Color = 255
                                                cell.Offset(0, 1).FormulaR1C1 = ""
     
                                        End If
                    Else
                                        'Heure de Diner
                                        If cell.Offset((-ligne + 3), 0).Value < Target.Offset(0, -3).Value + "0,12501" And cell.Offset((-ligne + 3), 0).Value > Target.Offset(0, -3).Value + "0,12499" And Target.Offset(0, 0).Value < 15 And Target.Offset(0, 0).Value > 0 Then
     
                                                cell.Interior.Color = 255
                                                cell.FormulaR1C1 = ""
     
     
                                        End If
                    End If
     
    Next Cell

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Remplace par
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    target.Offset(0, -3).Value + "0,12499"
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    target.Offset(0, -3).Value + 0.12499
    Patrice

  3. #3
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 70
    Points
    70
    Par défaut
    Merci Patrice740, mais malheureusement ceci ne corrigeait en rien mon problème.

    J'ai décidé d'ajouter un OR dans ma condition logique, ce qui m'a permis spécifier les caractéristiques de la case à droite de ma cellule.

    Merci quand même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'index dans boucle for
    Par cocacola0589 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 09/02/2010, 18h22
  2. comment effacer un element dans un collection dans une boucle for each
    Par medkarim dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 17/10/2008, 12h48
  3. [XSLT][débutant] Problème xsl:value-of dans xsl:for-each
    Par Choubie dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 09/05/2007, 16h30
  4. problème dans boucle for de lecture de fichier ini
    Par chourmo dans le forum Delphi
    Réponses: 3
    Dernier message: 06/07/2006, 09h31
  5. [XML-XPATH] Problème dans un for each
    Par stailer dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 26/12/2005, 12h11

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