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 :

Définir une plage dans une boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 49
    Par défaut Définir une plage dans une boucle
    Voici ce que j'essaie de faire:

    j'ai une feuille avec plusieurs cellules en jaune, je ne sais pas combien de cellules sont en jaune et je veux le savoir.

    J'ai fais un bouton, lorsque j'appuie sur ce bouton le nombre de cellule en jaune apparait comme nom du bouton, si il y a 40 cellules en jaune le bouton se nomme maintenant 40, simple mais pas simple.

    Je crois que ma boucle est mal formulée car le script fais exactement ce que je veux mais s'arrête à la deuxième colonne au lieu de se rendre à la dernière. Si j'ai donc 6 cellule jaune au total dans les deux première colonne le bouton se nommera 6, je veux qu'il se rende à la dernière sans que je sache d'avance quelle colonne est la dernière.

    Voici le code que j'ai pondu, je me trompe à quel endroit?

    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
     
    Sub findmyyellow()
     
    Dim i As Long
    i = 0
     
    Dim thecell As Range
    Dim colend As Long
     
    Set thecell = Range("A1")
    Set colend = Range("A1").End(xlToRight).Columns
     
     
    For i = 1 To colend
     
        Do
     
            If thecell.Interior.ColorIndex = 6 Then
                i = i + 1
                Set thecell = thecell.Offset(1, 0)
            Else
                Set thecell = thecell.Offset(1, 0)
            End If
     
        Loop Until IsEmpty(thecell)
     
    thecell.Offset(0, 1).Select
     
    Next i
     
    ActiveSheet.Buttons(Application.Caller).Select
    Selection.Characters.Text = i
     
    End Sub
    merci de votre aide, certains de mes pépins demande encore de la compréhension de ma part avant que je les flag comme résolu mais je remercie la communauté du forum des dévellopeur pour leur aide fort précieuse, très apprécié. J'apprend sur le tas, par moi-même et bien que vba soit simple je me butte sur beaucoup de détails .

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
    Dim plage As Range, Cel As Range
    Dim LastLig As Long, nb As Long
    Dim LastCol As Integer
     
    LastLig = Range("A36556").End(xlUp).Row
    LastCol = Range("IV1").End(xlToLeft).Column
    Set plage = Range(Cells(1, 1), Cells(LastLig, LastCol))
    For Each Cel In plage
       If Cel.Interior.ColorIndex = 6 Then nb = nb + 1
    Next Cel
    CommandButton1.Caption = nb 
    End Sub
    Pour la boucle sur ta plage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 49
    Par défaut
    C'est officiel vous allez devenir mon héros
    je croyais qu'une boucle ne pouvais pas automatiquement s'effectuer dans une plage définie je croyais qu'on devais définir la progression de la boucle dans cette plage (d'abord les rangés ensuite les collones), la méthode que vous me montrez est bien plus simple.

    Merci beaucoup pour votre aide, j'ai modifié le tout pour correspondre à ma feuille et ça marche très bien.

    Pour faire un suivi, je me casse encore le coco sur les tableaux croisé dynamique mais je me répond seul par essaie-erreur je vais updater le thread bientôt.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/07/2014, 17h57
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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