Je viens d'écrire, à l'intention d'un "lioné" ou d'un "ronien", une macro servant à copier les feuilles d'un classeur dans une nouvelle feuille crée pour l'occasion.
La macro fonctionne sans anicroche mais je ne comprends pas ni pourquoi ni comment.
La macro (En rouge la ligne "contestable" et contestée) :
Au pas par pas, si je glisse la souris sur FL1.name (ligne en rouge) j'ai le message "Name = <Variable objet ou nom de bloc non défini>"
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 Sub CopieToutesLesFeuillesAlaSuiteDansUneNouvelleFeuille() Dim LaFeuille As Worksheet Dim FL2 As Worksheet 'WorkBooks("NomDuClasseurConcerné.xls").Activate '-> A ADAPTER *** Set FL2 = ActiveSheet 'Feuille dont l'entête sera copiée -> A ADAPTER *** ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count) 'Ajoute une feuille Set FL1 = ActiveSheet 'instancie la feuille FL1.Name = "FeuilleCumul" 'Renomme la feuille FL2.Rows(1).Copy destination:=FL1.Range("A1") For Each LaFeuille In ActiveWorkbook.Worksheets 'Passe toutes les feuilles en revue... If Not LaFeuille.Name = FL1.Name Then '... à l'exception de la feuille créée 'Copie de la plage de donnée de chaque feuille et collage à partir de la... '... première cellule vide de la feuille ajoutée 'Corriger "A2" en "A1" si pas d'entête dans les feuilles copiées A ADAPTER *** LaFeuille.Range(LaFeuille.Range("A2:" & _ LaFeuille.Range("A1").SpecialCells(xlCellTypeLastCell).Address).Address).Copy _ destination:=Cells(FL1.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1, 1) DoEvents End If Next 'Copie du format de la feuille FL2 'FL2.Cells.Copy 'FL1.Cells.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ 'SkipBlanks:=False, Transpose:=False Set FL1 = Nothing 'libère la mémoire de l'instance Set FL2 = Nothing End Sub
Or la macro identifie bien la feuille.
Si je supprime name après FL1, j'ai une erreur "blocante"
Si je supprime name à LaFeuille et à FL1, itout.
L'explication d'un érudit me siérait beaucoup![]()
Par avance, merci.
Partager