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 :

Pb avec RANGE


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 268
    Par défaut Pb avec RANGE
    Bonjour
    Je souhaiterais selectionne des cellules non adjentes
    j'ai ecrit le code suivante mais l'argument range n'aime pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range(Cells(a, 6), Cells(a, 5), Cells(a, 9), Cells(a, 13), Cells(a, 25), Cells(a, 27), Cells(a, 29)).Select
                    Cells(a, 5).Activate
                    Selection.Copy

    comment faire ???????

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Cells ne fonctionne pas avec les lettre mais avec les nombres,
    s'écrit:
    Pour faire une multisélection avec Range uniquement tu dois écrire du genre range("a" & 6) et ainsi de suite, il me semble donc plus facile d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim MaPlage As Range
     
    Set MaPlage = Application.Union(Cells(1, 6), Cells(1, 5), Cells(1, 9))
     
    MaPlage.Copy
    Je n'ai pas remis toutes les cellules concernées mais tu le fera facilement, tu constateras aussi que je n'ai pas fait de Select, en effet, ce n'est pas nécessaire, donc à éviter afin de ne pas ralentir le code.

    A+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 268
    Par défaut
    je n'ai pas précisé que a est une variable
    je sais que ca fonctionne avec deux arguments

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For a = 2 To 1000
                If Cells(a, 6) = "Dépenses" Then
                    Range(Cells(a, 6), Cells(a, 5), Cells(a, 9), Cells(a, 13), Cells(a, 25), Cells(a, 27), Cells(a, 29)).Select
                    Cells(a, 5).Activate
                    Selection.Copy
    comment faire ??,

  4. #4
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Citation Envoyé par fmris Voir le message
    je n'ai pas précisé que a est une variable



    Suffit alors d'adapter ma réponse précédente...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim MaPlage As Range
    For a = 2 To 1000
                If Cells(a, 6) = "Dépenses" Then
                    Set MaPlage = Application.Union(Cells(a, 6), Cells(a, 5), Cells(a, 9), Cells(a, 13), Cells(a, 25), Cells(a, 27), Cells(a, 29))
                    MaPlage.Copy
                    Cells(a, 5).Activate
    '...la suite de ton code
    Ou sans passer par une variable qui récupère la Plage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For a = 2 To 1000
                If Cells(a, 6) = "Dépenses" Then
                    Application.Union(Cells(a, 6), Cells(a, 5), Cells(a, 9), Cells(a, 13), Cells(a, 25), Cells(a, 27), Cells(a, 29)).Copy
                    Cells(a, 5).Activate
    ...
    A+

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/09/2007, 09h29
  2. Macro VBA Excel, Pb avec Range
    Par GlamIS dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/08/2007, 05h19
  3. Problème avec Range.Formula
    Par zerti dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/07/2007, 17h25
  4. PB avec Range().select et copy
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/06/2007, 10h37
  5. Remplissage de plusieurs valeurs d'un tableau avec Range
    Par tonton fred dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/05/2007, 09h50

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