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 :

Tester les cellules d'un Range


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut Tester les cellules d'un Range
    Bonjour à tous, forum bonjour,

    Je cherche a tester chaque cellule d'un range sur plusieurs critères.

    1-La cellule contient une formule
    2-La valeur de la cellule n'est pas un nombre
    3-La cellule n'est pas vide
    4-La cellule ne contient pas d'erreur
    5-La cellule n'a pas de couleur de fond

    J'ai trouver le code ci dessous qui je pense correspondrai a mon besoin MAIS je ne suis sur de rien car la macro démarre puis plus rien je ne sais pas si elle
    a bien fonctionné et vérifier si tous les critères sont corrects ou pas, mais aucune info ne s'affiche.

    Donc je souhaiterai svp avoir d'afficher sous forme d'un petit compte rendu plus d'infos quand au déroulement de la macro.

    Résultat souhaiter : Un petit compte rendu :

    1-La cellule contient une formule = OK où Pas
    2-La valeur de la cellule n'est pas un nombre = OK où Pas
    3-La cellule n'est pas vide = OK où Pas
    4-La cellule ne contient pas d'erreur = OK où Pas
    5-La cellule n'a pas de couleur de fond = OK où Pas

    --- Pour Infos --- La colonne (E) contient une formule et La colonne (F) contient également une formule MAIS ce n'ai pas la même que la colonne (E)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub Test_Colonne()
      Dim cell As Range
        For Each cell In Range("E3:F100").SpecialCells(xlCellTypeFormulas, 2)
             If Not cell = "" And cell.Interior.Pattern = xlNone Then cell.Interior.Color = RGB(192, 192, 192)
        Next cell
    End Sub
    Merci pour votre aide, bonne journée a vous.

    Cdlt VieuxRay

  2. #2
    Membre expérimenté
    Homme Profil pro
    chef de projet transverse MOE
    Inscrit en
    Janvier 2015
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : chef de projet transverse MOE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 121
    Par défaut
    Bonjour,

    pas de piste sur les changements nécessaires, mais une aide pour voir ce qui se passe:
    Tu affiches ta macro, tu te places sur la ligne For et tu places un point d'arrêt (clic tout a gauche sur la ligne avec ton For).
    Ensuite tu places des espions sur les valeurs testées pour voir ce qu'il y a dedans et tu utilises la touche F8 pour debogguer en pas à pas.
    Cela devrait déjà t'aider à cibler ce qui ne marche pas et bien voir ce que fait la macro.
    ²
    Bonne chance.

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut Tylert,

    Merci pour ta réponse,

    J'ai suivi les conseils, mais ca ne me donne rien sinon que ca a l'air de fonctionner
    ca défile quand j'appuie sur F8 mais rien ne s'affiche dans la fenètre d'exécution espion.

    Merci pour ton aide

    Cdlt Ray

  4. #4
    Membre expérimenté
    Homme Profil pro
    chef de projet transverse MOE
    Inscrit en
    Janvier 2015
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : chef de projet transverse MOE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 121
    Par défaut
    Il faut que tu ajoutes un espion sur les variables ou fonctions de ton code
    Tu sélectionnes une variable, puis clic droit et Ajouter un espion. tu verras les valeurs et tu pourras comprendre pourquoi les conditions de tests ne sont pas vérifiées.

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    une piste pour vérifier s'il y a formule / numérique / non vide / pas de fond ...manque l'erreur à tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub tester()
    Dim maFeuille As Worksheet
    Dim cellule As Range
         Set maFeuille = ActiveSheet
            For Each cellule In maFeuille.Range("A2:A" & maFeuille.Range("A" & Rows.Count).End(xlUp).Row)
     
            If cellule.HasFormula Then Cells(cellule.Row, 2) = "OK"
            If IsNumeric(cellule) = True Then Cells(cellule.Row, 3) = "OK"
            If cellule <> "" Then Cells(cellule.Row, 4) = "OK"
            If cellule.Interior.ColorIndex = xlColorIndexNone Then Cells(cellule.Row, 6) = "OK"
            Next
    End Sub

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    et si on ajoute la gestion des erreur peut être ça sera 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
    Sub tester()
    Dim maFeuille As Worksheet
    Dim cellule As Range
         Set maFeuille = ActiveSheet
            For Each cellule In maFeuille.Range("A2:A" & maFeuille.Range("A" & Rows.Count).End(xlUp).Row)
            On Error Resume Next
            If cellule.HasFormula Then Cells(cellule.Row, 2) = "OK"
            If IsNumeric(cellule) = True Then Cells(cellule.Row, 3) = "OK"
            If cellule <> "" Then Cells(cellule.Row, 4) = "OK"
            If Not IsError(cellule) Then Cells(cellule.Row, 5) = "OK"
            If cellule.Interior.ColorIndex = xlColorIndexNone Then Cells(cellule.Row, 6) = "OK"
            Next
    End Sub

  7. #7
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut Bennasr,

    Merci pour ta réponse,

    Ca m'a l'air de fonctionner mise a part que ca m'affiche du haut en bas de la colonne (E) sur fond rouge "OK" pas très esthétique.

    Le range a tester est (E3:F100) .

    Peut t'on afficher les résultats par Ex dans un Msgbox ou autre sur 5 lignes

    1-La cellule contient une formule = OK où sinon "manque 3 formules" E12-E25-F121
    2-La valeur de la cellule n'est pas un nombre = OK où Pas "idem"
    3-La cellule n'est pas vide = OK où Pas "idem"
    4-La cellule ne contient pas d'erreur = OK où Pas "idem"
    5-La cellule n'a pas de couleur de fond = OK où "cellule en couleur" E17-F36

    Merci pour ton aide, bonne après midi a toi.

    Cdlt Ray

Discussions similaires

  1. Connaitre le range de la(les) cellule(s) copiée(s)
    Par bobLab dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/08/2019, 15h16
  2. [XL-2007] Tester les cellules d'un Range
    Par eliot.raymond dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/12/2018, 11h56
  3. [XL-2007] [VBA] remplir un range de cellule avec les valeurs d'autres ranges
    Par cladsam dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/08/2012, 15h12
  4. [XL-97] Tester les caractères barrés dans une cellule
    Par mkweb dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/11/2009, 08h06
  5. [CR9] Colorier les cellules d'un tableau croisé
    Par Koko22 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2003, 16h57

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