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 :

Sélection d'un nombre n de plages


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 Sélection d'un nombre n de plages
    Salut le forum,

    Voilà je dois sélectionner sur une feuille un nombre n de plages dont la taille est connue (ligne 6 à 66 d'une colonne) mais dont l'emplacement est variable (toutes les deux colonnes).

    Exemple pour n = 2

    je sélectionne (B6:B66) et (D666)


    J'ai fais ce petit bout de code mais ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim n As Integer, i As Integer
    n = Sheets("generalites").Range("F7").Value
    Sheets("DONNEES VITESSES").Activate
    Dim MaPlage As Range, Plage1 As Range
     
     
    For i = 1 To n
    Set Plage1 = Range(Cells(6, i * 2), Cells(66, i * 2))
     
    Set MaPlage = Union(MaPlage, Plage1)
    Next i
    ça bloque sur le union

    J'ai essayé de faire plein de choses différentes mais rien ne fonctionne.

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Par défaut
    Bonjour,

    Il faut que tu affecte 2 plages à maplage, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 To n
    Set Plage1 = Range(Cells(6, i * 2), Cells(66, i * 2))
    set Plage2 = range("A2") 
    Set MaPlage = Union(Plage2, Plage1)
    Next i

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Par défaut
    Ouais ça fonctionne, mais que pour n=2

    Quand je passe à n=3 (par exemple), il doit me sélectionner les lignes 6 à 66 des colonnes B, D et F, or avec ce code, je n'ai que les colonnes B et F.

    En fait, à chaque tour de boucle je veux qu'il me rajoute une sélection à la sélection existante C'est pas évident

  4. #4
    Membre chevronné
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Par défaut
    Tu peux essayer 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
    For i = 1 To n
        Select Case i
            Case 1
            Set plage1 = Range(Cells(6, i * 2), Cells(66, i * 2))
     
            Case Else
            Set Plage2 = Range(Cells(6, i * 2), Cells(66, i * 2))
            Set plage1 = Union(plage1, Plage2)
     
        End Select
        plage1.Select
    Next i
    Set Plage1 = Nothing
    Set plage2 = Nothing
    A savoir que pour incrémenter i de 2 en 2, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For i = 2 To n * 2 step 2
    '... etc

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Par défaut
    Merci ça roule au poil.

    Je n'étais pas loin du résultat mais je n'étais pas allé dans cette direction.
    Par contre je ne veux pas incrémenter mon i de 2 en 2, c'est pour ça que j'ai laissé à Step 1

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

Discussions similaires

  1. [Toutes versions] Fonction récupérant le plus petit nombre d'une plage
    Par muriellelapuce dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/11/2010, 11h07
  2. [AC-2007] Sélection stricte des nombres dans un champ texte
    Par Razorback dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 17/08/2009, 09h32
  3. sélection d'un nombre de balises freres variables
    Par smoothie dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/08/2008, 09h34
  4. sélection d'un nombre d'enregistrements dans une requête
    Par dodie84 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 24/04/2008, 13h59
  5. Réponses: 2
    Dernier message: 08/02/2006, 16h54

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