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 :

objets range multiples


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut objets range multiples
    Bonjour
    j'ai compris le système for each cell in range pour balayer des cellules diverses et appliquer une action après analyse de chaque cellule. Par exemple, masquer la ligne correspondante si un cas est cochée "x". Mais je voudrais maintenant dire à excel ( en français basique)
    "examine les ensembles de cellules suivants "a1:c6, b2:c2;d12" ( par exemple)
    si tu trouves une seule "x" dans chaque plage selectionnée, alors masque les lignes correspondantes
    et là, je sèche
    mon idée que j'ai essayée était de faire un compteur en définissant une liste de Range("x1:y2") ??? Mais pas moyen
    merci beaucoup à qui me trouverait une idée !!
    R Boini
    :D

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Bonsoir Boini, bienvenue sur le forum.
    Tu peux tester ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sub test()
    dim Plage As Range, Cell As Range
        Set Plage = Range("a1:c6, b2:c2,d12")
        For each Cell in Plage
           If Cell = "coucou" then msgBox "c'est moi !"
        next
    end sub
    Bonne soirée où que tu sois

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Merci beaucoup pour ta réponse si rapide. Elle se rapproche de mes premiers essais et présente le même défaut que ce que j'avais tenté. Exemple: si j'ai un tableau avec un intitulé dans la colonne a et je coche avec un "X" (par exemple) une des cases réponses possibles. Ca peut donner: alors heureuse? cocher "un peu", "beaucoup", "pas du tout". Si il n'y a aucune des cases cochées (elle n'est pas concernée par la question...) alors je veux masquer la ligne concernée (afin de ne garder que les infos recueillies, pour allèger la présentation. Mais il faut donc qu'a chaque ligne je puisse tester la présence d'une réponse dans chaque plage sélectionnée. Sachant que toutes les plages n'ont pas le même nombre de cases, ne sont pas toutes forcément contigues ...C'est ça le bug !!

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si je reformule ta question, car je ne suis pas sûr d'avoir compris, tu souhaites parcourir une colonne et, pour chaque cellule de la colonne, vérifier sur la ligne de la cellule qu'une cellule de la ligne n'est pas cochée.
    C'est bien ça ?
    Si oui, alors ta plage discontinue ne sert à rien.
    Si oui, alors dans ton exemple ("a1:c6, b2:c2,d12") tu veux parcourir les cellules des lignes 1 à 6 et 12.
    Si non... qu'importe le nombre de cellules de ta ligne, c'est que je n'ai pas compris
    Tu peux préciser ?
    A+

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Bonsoir
    pour etre plus clair, ci joint un exemple de tableau que je veux traiter
    il y a ici deux parties. Dans la première , pour chaque ligne, soit on coche oui, soit on coche non, ou rien du tout.
    Dans la deuxième partie, pour chaque ligne je peux cocher une des six cases disponibles ou rien.
    Je peux faire une sub qui détermine que si rien n'est coché dans une ligne (en passant par une premiere fois un range ("")quelque chose ), alors je la masque ( ou toute autre action) ceci d'abord pour le premier tableau, puis une deuxiéme sub pour traiter le deuxième tableau, puis une troisième sur le même modèle. Le problème c'est qu'à la fin c'est lourd ( parce que j'ai quinze tableaux à traiter ) et un peu "beuh beuh de base" comme système. J'aurais donc voulu faire plus élégant en lui indiquant une bonne fois les range à traiter, même si elles sont de forme différentes et non contigues, et qu'ensuite il considère globalement chaque plage pour voir si elle est vide ou non, et non pas chaque cellule de chaque plage. Voila, c'est plus clair comme ça ?? en tout cas , j'ai essayé !!
    Fichiers attachés Fichiers attachés

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ok. Quelle est la finalité ? (je ne parle pas de la finalité médicale ) Que veux-tu obtenir ? Un tableau reprenant "tout ça"
    vertige vrai -> Non
    sensation vertigineuse -> Oui
    sensation de tête flottante, eau dans la tête, .. Autre -> Non
    gêne pour se déplacer dans les super-marchés -> Non
    cinétose -> etc
    Romberg -> RAS

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Pour cette page là, je veux masquer les lignes non utilisées, parce que la personne n'est pas concernée par cet item. De cette manière je peux imprimer un résumé du tableau , compact, facile à lire pour le destinataire, et le joindre au dossier . En effet, le tableau est long et il y a toujours de nombreux items non pertinents pour un patient donné . Ca fait donc souvent beaucoup de pages de tableaux avec plein de trous, et imprimer le tableau global, c'est illisible, consomme trop de papier ( merci la planète ) Je sais bien que je veux transformer excel en secrétaire, mais le pb, c'est que l'informatique de mon etablissement m'oblige a créer des fiches bilan dans excel, j'ai pas le choix. Donc depuis un an , je transforme excel en secrétaire qui rédige des courriers, résume des tableaux etc ...
    a part ça je fais subir bien d'autres traitement à ces tableaux, mais pour le reste, j'a i( en souffrant) réussi à me dépatouiller.
    Merci, à bientot
    R Boini

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 24/11/2006, 18h25
  2. [VBA-E]Pb avec objet Range
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/07/2006, 16h02
  3. [VBA-E] Accès à l'objet Range (oui puis non ?)
    Par gapgap dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/05/2006, 20h00
  4. L'objet Range - automation excel
    Par Celia1303 dans le forum Access
    Réponses: 6
    Dernier message: 21/12/2005, 17h03
  5. VBA Excel Débutant : Graphique et objet Range
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/11/2005, 18h34

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