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 :

Fontion Range ()


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Ingénieur Etudes
    Inscrit en
    Juillet 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 52
    Par défaut Fontion Range ()
    Bonjour,

    Je voudrais savoir s'il est possible de selectionner avec la fonction range(), deux plages de données différentes.

    Par exemple, si Plage1 est de Cells(2,1) à Cells(10,1) et Plage2 de Cells(2,3) à Cells(10,3)), est ce qu'on peut ecrire : Range(Plage1 & Plage2)

    j'ai essayé mais je n'arrive pas !!!

    Merci pour votre réponse !!!

  2. #2
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    Bonjour,

    J'espere que c'est bien ce que tu veux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A2:A10,C2:C10").Select
    J'ai mis Select pour que tu voie la sélection mais met ce que tu fait comme action après

    Bastien

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Petit exemple avec 3 plages nommées Table1, Table2, Table3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Dim sht As Worksheet: Set sht = ThisWorkbook.Worksheets("Feuil1")
     Dim rng(3) As Range
     Dim i As Byte
     Dim myCells As String
     For i = 1 To 3: Set rng(i) = Range("Table" & i): Next
     myCells = rng(1).Address & "," & rng(2).Address & "," & rng(3).Address
     Range(myCells).Select
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre confirmé
    Profil pro
    Ingénieur Etudes
    Inscrit en
    Juillet 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 52
    Par défaut
    Merci pour vos réponses. Mais je voudrais écrire la fonction Range () avec l'écriture 'Cells(1,1)' et non 'A1'.

    Voici la ligne de code incrémentée dans ma boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetCourceData Source:=ThisWorkbook.Worksheets(2).Range(???), PlotBy:=xlColumns
    sachant que ??? doit renvoyer à Plage1 et Plage2 (qui sont dynamiques).

    Merci encore

  5. #5
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    voila je pense que sa marche et colle avec ce que tu veux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim r1 as range
    dim r2 as range
     
    set r1 = range(cells(2,1),cells(10,1))
    set r2 = range(cells(2,3),cells(10,3))
     
    range(r1.address & "," & r2.address).select
    C'est quasi le meme code que corona

    Bastien

  6. #6
    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
    Bonjour

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Plage As Range
     
    With Sheets("Feuil2")
        Set Plage = Union(.Range(.Cells(2, 1), .Cells(10, 1)), .Range(.Cells(2, 3), .Cells(10, 3)))
    End With
     
    Charts(1).SetSourceData Source:=Plage, PlotBy:=xlColumns

  7. #7
    Membre confirmé
    Profil pro
    Ingénieur Etudes
    Inscrit en
    Juillet 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 52
    Par défaut
    Merci pour vos réponse. j'ai essayé d'intégrer vos 2 méthodes et ca a l'air de marcher, par contre il me genere deux courbes dans le graphe au lieu d'un seul. je ne comprends pas ??????

    voici le 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
    With Worksheet (1) 
        Set Plage1 = .Range(.Cells(iX, jX), .Cells(DerniereLigne, jX))
        Set Plage2 = .Range(.Cells(iY, jY), .Cells(DerniereLigne, jY))
        Set Plage0 = Union( Plage1, Plage2)
    End With
     
    With graphe
        .ChartArea.Clear
        .SetSourceData Source:=Plage0, PlotBy:=xlColumns
        .ChartType = xlXYScatter
        .SeriesCollection(1).XValues = Plage1 
        .SeriesCollection(1).Values = Plage2
        .Location Where:=xlLocationAsNewSheet
     End With

  8. #8
    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
    With graphe
        .SetSourceData Source:=Plage0, PlotBy:=xlColumns
        .ChartType = xlXYScatter
    End With

  9. #9
    Membre confirmé
    Profil pro
    Ingénieur Etudes
    Inscrit en
    Juillet 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 52
    Par défaut
    Merci mercatog pour ta réponse. J'ai essayé tes lignes de codes mais ca m'a affiché toujours deux courbes sur un graphe; j'ai dû surement oublier quelque chose dans mon explication ...

    Au final, j'ai essayé plusieurs combinaisons et ça marche.

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

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