Bonjour.
Ci-dessous le code que j'ai écris pour faire une copie de plusieurs ligne selectionné dans une listbox pour la copier dans un autre classeur.
Question peut-on le faire en une seule fois en faisant un genre de Range ("7:7,11:11,16:16").Select mais là il faut remplir une variable et je ne vois pas trop comment...
si quelqu'un a la solution...
MERCI

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Private Sub CommandButton3_Click()
 Workbooks.Open Filename:="D:\Bureautique\Mes Documents\Base.xlsx"
 With ListBox1
 Windows("BASE.xlsx").Activate
 ActiveWindow.LargeScroll ToRight:=-1
 Range("A1").Select
 Selection.CurrentRegion.Select
 nbre_de_ligne = Selection.Rows.Count
 Workbooks("COLLAGE.xlsm").Activate
 Sheets("DONNEES").Select
 For i = 0 To .ListCount - 1
 ' If .Selected(i) = True Then
 ' mess = mess & i + 2 & ":" & mess & i + 2
 ' If mess <> "" Then
 ' mess = mess & ","
 ' End If
 If .Selected(i) = True Then
 nbre_de_ligne = nbre_de_ligne + 1
 Windows("COLLAGE.xlsm").Activate
 Sheets("DONNEES").Select
 Cells(i + 2, 1).Select
 Range(Selection, Selection.End(xlToRight)).Select
 Selection.Copy
 
 Windows("BASE.xlsx").Activate
 Cells(nbre_de_ligne, 1).Select
 ActiveSheet.Paste
 
 End If
 Next
 ' Sheets ("PRINCIPAL")
 End With
 Windows("BASE.xlsx").Activate
 Application.DisplayAlerts = False ' supprime les messages d'alerte
 ActiveWorkbook.Save ' sauve le classeur meme s il existe sans demande confirmation
 Application.DisplayAlerts = True ' repositionne les messages d'alertes...
 ActiveWindow.Close
 Windows("COLLAGE.xlsm").Activate
 ' MsgBox mess
 ' Range("7:7,11:11,16:16").Select
 ' Range("A16").Activate
 ' Selection.Delete Shift:=xlUp
 
 
 End Sub