Bonjour à tous,
J'essaie de faire une petite macro pour la copie de plusieurs feuilles dans un seul nouveau workbook. Je me suis inspiré de l'enregistreur de macro, mais impossible de le faire.
Explication du 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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Dim cell As Excel.Range Dim wksSheet As Worksheet Dim lNbrSheet As Long Dim lCounter As Long Dim strSelect As String lNbrSheet = shtDefPrin.Range("rngListSheets").Cells.Count lCounter = 1 For Each cell In shtDefPrin.Range("rngListSheets") For Each wksSheet In ThisWorkbook.Worksheets If cell.Value = wksSheet.Name Then If lCounter = 1 And lNbrSheet = 1 Then strSelect = """" & wksSheet.Name & """" lCounter = lCounter + 1 ElseIf lCounter = 1 And lNbrSheet > 1 Then strSelect = """" & wksSheet.Name & """, """ lCounter = lCounter + 1 ElseIf lCounter > 1 And lNbrSheet > lCounter Then strSelect = strSelect & wksSheet.Name & """, """ lCounter = lCounter + 1 ElseIf lCounter = lNbrSheet Then strSelect = strSelect & wksSheet.Name & """" End If End If Next Next if lCounter = lNbrSheet then Sheets(Array(strSelect)).Copy end if
Je parcours mon range qui contient un x nbr de cellule. 1 cellule contient un nom de feuille. Je peux en copier un nombre aléatoire. Ensuite je crontrole que le nom de feuille existe et je construis ma string.
Si je stoppe sur la dernière ligne et que je remplace ma variable strSelect par son contenu ca fonctionne mais pas avec la varaiable.
Merci d'avance de votre
Partager