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 :

Une collection de "Range" !?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Par défaut Une collection de "Range" !?
    Je voudrais créer une collection de range pour pouvoir facilement les intégrer a une boucle !!!!
    En trainant a droite a gauche j'ai trouve des bouts de code mais même si je me sens prêt du but.. CA COINCE !!!!

    Voila mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    'Je declare mes range a inclure dans ma collection
    Dim MaPlage1 As Range
    Dim MaPlage2 As Range
     
    Set MaPlage1 = runs2.Range("E5:K9")
    Set MaPlage2 = runs2.Range("G5:K9")
     
    'Je creer ma collection et je lui attribue les différents range (je pense que c'est par la que ca va pas)
     
    Dim Alljobs As New Collection
     
    Alljobs.Add (MaPlage1)
    Alljobs.Add (MaPlage2)
     
     
    For i = 1 To 20
     
    main.Range("io_job" & i & "_date").Value = Alljobs.Item(1).Cells(1, 1).Value
    main.Range("io_job" & i & "_by").Value = Alljobs.Item(1).Cells(1, 2).Value
    etc...
     
     
    next i
    J'ai "Objet required" en retour !!!! bouuuuu

    HELLPPPPP....... c'a fais trop d'heures que cela me prend la tête.. J'ai beau retourner le code dans tous les sens en espérant que cela passe.. MAIS RIEN !!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir Michocs17141,

    Où avez-vous inséré ce code :

    dans une feuille ?
    dans un module ?

    Que représente runs2 dans "runs2.Range("E5:K9")" ?

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonsoir,

    Je ne suis pas sur d'avoir compris, mais as tu pensé a utiliser la propriété Areas?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub Rangecollection()
        Dim BigRange As Range, SmallRange As Range
        Set BigRange = Range("A1:A10,B6:D5,E4:F12")
        For Each SmallRange In BigRange.Areas
            SmallRange.Interior.ColorIndex = 6
        Next
    End Sub
    Sinon pour comprendre ce qui se passe, met un point d'arret sur ta boucle for, supprime les parentheses autour de MaPlage2 et garde les autour de maplage1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Alljobs.Add (MaPlage1)
    Alljobs.Add MaPlage2
    Affiche la fenetre variable locales, tu verras que dans ta collection tu as en fait récupéré une variable tableau, et non un objet Range, d'ou l'erreur.

    Cordialement,

    Tirex28/

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Par défaut Victoireeee.............
    Houraaaaa.....

    Donc pour les détails:

    - Le code était dans un module.
    - "run2" est une page.

    La solution, et merci encore, est: "PAS DE PARENTHÈSES" sniffff tout ce temps pour ça !!!

    Mais bon, maintenant je suis heureux ca marche !!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Alljobs.Add MaPlage2

    Encore merci !!!!!

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

Discussions similaires

  1. supprimer une table qui a des quotes dans son nom
    Par kleenex dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 16h03

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