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 :

analyse d'une plage à partir de la cellule active


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Par défaut analyse d'une plage à partir de la cellule active
    Et hop, deuxième post de la journée.

    Reproblème.
    J'ai besoin d'analyser une plage de cellule selon 2 critères.
    Pour cela j'ai créé une boucle for next qui analyse ma plage avec ce code :

    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
     
    Dim i As Integer
    Dim limhaute
    Dim limbasse
     
    limhaute = Range("F1").Value
    limbasse = Range("F2").Value
     
    For i = 0 To 15
    If Cells(15 - i, 1).Value >= limhaute Then
    Cells(15 - i, 1).Style = "style x"
    Cells(15 - i, 1).Activate
    Exit For
    End If
    Next i
    Ce qui me met en noir la dernière cellule à remplir le critère N°1 et active cette cellule.
    Maintenant je voudrais analyser le reste de ma plage selon un autre critère à partir de cette cellule active.

    Mais pour l'instant je coince un poil!!

  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
    i te donne le N° de ligne... Pour analyser la suite de ta plage, tu fais une boucle partant de i
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For j = i to derniereligne
    Par contre, si tu ne trouves pas la données, ton i sera = à 16. Si cette éventualité est possible, j'utiliserais un boolean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim ok as boolean
    For i = 0 To 15
    If Cells(15 - i, 1).Value >= limhaute Then
        Cells(15 - i, 1).Style = "style x"
        Cells(15 - i, 1).Activate
        Ok = True
        Exit For
    End If
    Next i
    If ok then
         For j = i to derniereligne
            ...
         Next
    End if

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Par défaut
    Ok ça fonctionne en reprenant j = i.
    C'est une méthode que je ne connaissais pas.
    Mais c'est normal aussi, je suis encore une bite en vba

    Merci et à tout à l'heure sûrement pour un nouveau problème!!!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Par défaut
    j'anticipe alors!

    si tu vas de 0 à 15 concernant i alors ton 15 - i ira de 15 à... 0 ! et tu auras un bug (je pense).
    Prends i de 0 à 14

    Bonne journée

  5. #5
    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
    Comprends pas. Si la donnée n'est pas trouvée dans la première boucle, alors i aura 16 pour valeur. 16 devient la ligne suivante. Donc la boucle suivante commence à la ligne 1 de la recherche commençant sur la ligne i.
    Précise ce que tu veux dire.
    A+

    Edit
    J'ajoute que si la donnée n'est pas trouvée on n'entre pas dans la boucle suivante...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Par défaut
    Je sais pas, ça se trouve je raconte n'importe quoi!

    Je pensais que dans cette partie là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For i = 0 To 15
    If Cells(15 - i, 1).Value >= limhaute Then
    Lorsque i = 15 alors is cherchera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells(0, 1).Value >= limhaute Then
    et buggera... je dis du caca?

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/02/2011, 11h08
  2. [XL-2003] Instancier une Plage à partir de celulles de différentes Feuilles
    Par henripec dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/09/2009, 15h55
  3. compter sur une ligne à partir de derniere cellule non vide
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/04/2009, 18h23
  4. Insertion de données dans une plage à partir d'un formulaire
    Par andre55 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/10/2007, 10h48
  5. Remplir une plage à partir d'un tableau
    Par roudy78 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/05/2007, 10h56

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