• Initiateur de la discussion Initiateur de la discussion Damoiselle
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Damoiselle

Guest
Bonjour

Je souhaite selectionner un ensemble de lignes via une liste d'index qui ne sont pas forcement consecutifs

For i = 1 To dim
indexLigne = ListeLignes(i)
ActiveSheet.Selection.AddRange (Rows(indexLigne))
Next i

J'ai testé, indexLigne prend les bonnes valeurs, mais à l'écran, les lignes ne sont pas sélectionnées. Que manquerait-il ?
Merci bien
 
Re : Multiselection

Bonjour,
En adaptant à ton problème et en considérant que je fais une sélection sur 3 colonnes ...
Code:
Sub MultiSelect()
    Dim MonAdresse As String
    NbLgn = 4
    For i = 1 To NbLgn
        MonAdresse = IIf(MonAdresse = "", Cells(i, 1).Address, MonAdresse & "," & Cells(i, 1).Address)
        MonAdresse = MonAdresse & ":" & Cells(i, 3).Address
    Next
    Range(MonAdresse).Select
End Sub
 
Re : Multiselection

Bonsoir Damoiselle, RENAUDER,

Content de te croiser dans un fil Eric 🙂
Je n'ai cependant pas interprété la question de Damoiselle comme toi... Je crois qu'il s'agit de lignes entières et que ces lignes ne sont pas forcément contigües (liste des lignes non contigües mémorisées dans un tableau).
Code:
[COLOR=NAVY]Dim[/COLOR] Plage [COLOR=NAVY]As[/COLOR] Range
[COLOR=NAVY]Dim[/COLOR] ListeLignes() [COLOR=NAVY]As Long
Dim[/COLOR] i [COLOR=NAVY]As Long[/COLOR]
    [COLOR=GREEN]'...[/COLOR]
    [COLOR=GREEN]'...[/COLOR]
    [COLOR=GREEN]'...[/COLOR]
    [COLOR=NAVY]Set[/COLOR] Plage = Rows(ListeLignes(1))
    [COLOR=NAVY]For[/COLOR] i = 2 [COLOR=NAVY]To UBound[/COLOR](ListeLignes)
        [COLOR=NAVY]Set[/COLOR] Plage = Union(Plage, Rows(ListeLignes(i)))
    [COLOR=NAVY]Next[/COLOR] i
    Plage.[COLOR=NAVY]Select[/COLOR]
    [COLOR=GREEN]'...[/COLOR]
    [COLOR=GREEN]'...[/COLOR]
    [COLOR=GREEN]'...[/COLOR]
Damoiselle, si je puis me permettre : nommer une variable "dim" n'est pas vraiment une bonne idée et risque fort de te causer quelques soucis...

Cordialement,
 
Re : Multiselection

Merci beaucoup,
Effectivement il s'agit de lignes entières et non forcement consecutives

J'ai teste et melangé un peu toutes ce que j'ai trouvé. Voilà ce qui a fini par marché :


Dim maPlage As Range
maPlage.Clear
For i = 1 To dimListeLigne
Indexligne = ListeLigne(i)
If maPlage Is Nothing Then
Set maPlage = Cells(Indexligne, 1).EntireRow
Else
Set maPlage = Union(maPlage, Cells(Indexligne, 1).EntireRow)
End If
Next i
maPlage.Select

Ca marche
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
905
Réponses
2
Affichages
525
Réponses
10
Affichages
659
Réponses
40
Affichages
3 K
Retour