slection multiple

  • Initiateur de la discussion jasmin
  • Date de début
J

jasmin

Guest
Bonjour,

dans une macro, je souahite sélectionner un Range du type :

Range("A5:A14","C5:C14) i.e. : colonnes non contigües

mais je ne connais pas justement les noms A5 etc ... (tout dépend de la sélection de l'utilisateur)

or avec une commande du type :

Range(Cells(i, j), Cells(k, j)) je ne parviens pas à entrer une seconde colonne (par exemple :

Range(Cells(i, j):Cells(k, j), Cells(i, l):Cells(k, l))

j'ai essayé avec Union etc ... mais je ne trouve pas !!
Qq1 peut-il m'aider ?

merci

jasmin
 
B

Bernard

Guest
Bonsoir Jasmin

Essayes cette macro, tu avais les bons ingrédients !


Sub MaPlage()
Dim i As Byte, j As Byte

i = 5
j = 1
Range("A5:A14,C5:C14").Select

'C'est la même avec des variables.

Union(Range(Cells(i, j), Cells(i + 9, j)), Range(Cells(i, j + 2), Cells(i + 9, j + 2))).Select

End Sub

Cordialement

Bernard
 
J

jasmin

Guest
Re:Re: slection multiple

Merci Bernard pour cette macro

Néanmoins mon problème subsiste car je suis déjà dans une macro et cette macro doit me renvoyer automatiquement un graphe et pour cela je dois appeler la commande :

ActiveChart.SetSourceData Source:=Sheets(nom_f).Union(Range(Cells(i, j), Cells(i + 5, j)), Range(Cells(i, j + 3), Cells(i + 5, j + 3)))

or ce qui se trouve à partir de Union ne lui plaît pas !
je ne vois pas trop comment imbriquer ta macro dans la mienne ?

ou peut être est-ce parce que cet Union... n'est pas utilisé comme dans ta macro ?

encore merci pour l'astuce en tout cas.

Jasmin
 
B

Bernard

Guest
Re Jasmin

Afin de pouvoir sélectioner les données, le graphique doit être inactif ;
Il faut également déclarer la plage des données du graphique ;

Macro modifiée :

Sub PlageGraph ()
Dim i As Byte, j As Byte
Dim Myplage As Range
i = 5
j = 1

Sheets("Feuil1").Select
Range("A1").Select

Set Myplage = Application.Union(Range(Cells(i, j), Cells(i + 5, j)), Range(Cells(i, j + 3), Cells(i + 5, j + 3)))

ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Myplage

Range("A1").Select
End Sub

Cordialement

Bernard
 

Discussions similaires