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 :

Exécuter deux conditions dans la même boucle. [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2018
    Messages : 23
    Par défaut Exécuter deux conditions dans la même boucle.
    Bonjour,

    J'ai actuellement un petit soucis au niveau de mon code. Lorsque je lance ma macro, seulement une des deux condition s'éxécute. (IsNumeric ne fonctionne pas.) Quelqu'un aurait une idée ?

    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
    Sub bouclecolonneC()
        Dim FL1, x
        Set FL1 = Worksheets("Feuil1")
        NoCol = 3 'lecture de la colonne C
        For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
            Var = FL1.Cells(NoLig, NoCol)
            If Not IsNumeric(Var) Then
            If IsEmpty(Var) = False Then
            Else
            Rows(NoLig & ":" & NoLig).Font.Color = RGB(255, 0, 0) 'rouge
           mess = mess & vbCrLf & "La colonne Prix 1 est éronnée. " & NoLig
        End If
        End If
        Next
         x = FreeFile
        Open Environ("userprofile") & "\DeskTop\rapport d'erreur.txt" For Output As #x: Print #x, mess: Close #x
        Set FL1 = Nothing
    End Sub

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Elhyra, bonjour le forum,

    Peut-être comme ça :
    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
    Sub bouclecolonneC()
    Dim FL1 , x
     
    Set FL1 = Worksheets("Feuil1")
    NoCol = 3 'lecture de la colonne C
    For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
        Var = FL1.Cells(NoLig, NoCol)
        If Var <> "" And IsNumeric(Var) = True Then
            Rows(NoLig & ":" & NoLig).Font.Color = RGB(255, 0, 0) 'rouge
            mess = mess & vbCrLf & "La colonne Prix 1 est éronnée. " & NoLig
        End If
    Next
    x = FreeFile
    Open Environ("userprofile") & "\DeskTop\rapport d'erreur.txt" For Output As #x: Print #x, mess: Close #x
    Set FL1 = Nothing
    End Sub
    Remarque : Telles que déclarées actuellement, tes variables sont de type variant. Ce n'est pas la meilleures option... De plus, pourquoi déclarer certaines variable et pas d'autres ?!...

  3. #3
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2018
    Messages : 23
    Par défaut
    Salut,

    Eh bien à vrai dire je n'y ai pas trop pensé, et pour ce qui est de ton code il fait l'inverse de ce que je veux. En gros au lieu de surligner la ligne en rouge, il va la laisser tel qu'elle mais il va surligner toutes les autres lignes pleine en rouge, (En gros si la cellule est pleine alors = faux, alors que sa devrait être l'inverse.)

    Merci tout de même pour ta réponse, c'est gentil !

  4. #4
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Et comme ça ? :

    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
    Sub bouclecolonneC()
    Dim FL1, x
     
    Set FL1 = Worksheets("Feuil1")
    NoCol = 3 'lecture de la colonne C
    For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
        Var = FL1.Cells(NoLig, NoCol)
        If Var = "" Or IsNumeric(Var) = True Then
            Rows(NoLig & ":" & NoLig).Font.Color = RGB(255, 0, 0) 'rouge
            mess = mess & vbCrLf & "La colonne Prix 1 est éronnée. " & NoLig
        End If
    Next
    x = FreeFile
    Open Environ("userprofile") & "\DeskTop\rapport d'erreur.txt" For Output As #x: Print #x, mess: Close #x
    Set FL1 = Nothing
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2018
    Messages : 23
    Par défaut
    Parfait, c'est exactement ça oui, j'ai juste eu à changer le True en False.

    Merci de ton aide !

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

Discussions similaires

  1. [XL-2007] Deux variables dans une même boucle
    Par swiMa dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/05/2014, 16h57
  2. itération sur deux tableaux dans la même boucle
    Par romson2 dans le forum Struts 2
    Réponses: 0
    Dernier message: 06/06/2012, 10h06
  3. VMR9 : deux vidéos != dans une même fenêtre.
    Par LapinGarou dans le forum MFC
    Réponses: 4
    Dernier message: 12/04/2006, 20h45
  4. [VBS] -- [InputBox] Deux inputbox dans la même fenêtre
    Par Edoxituz dans le forum VBScript
    Réponses: 16
    Dernier message: 26/02/2006, 23h29
  5. [FLASH MX2004] Deux conditions dans une boucle
    Par pierrot10 dans le forum Flash
    Réponses: 1
    Dernier message: 06/11/2005, 17h31

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