Bonjour,
Afin de compiler des données mensuelles dans un onglet global, j'ai monté ce code :
Problème, ma dernière instruction avant le Next consiste à récupérer le nom de l'onglet (qui n'est autre que le mois...) pour le coller en colonne A de mon onglet global. Ca me créé un décalage car malgré l'absence d'onglet, la boucle continue pour m'insérer le nom du dernier onglet jusqu'à 13...
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 Application.ScreenUpdating = False Dim SN As Byte, SNN As String, FR As Long, LR As Long On Error Resume Next For SN = 2 To 13 SNN = Sheets(SN).Name With Sheets(SN) .Range("A2:" & .Range("A2").SpecialCells(xlCellTypeLastCell).Address).Copy Sheets(1).Range("B65536").End(xlUp).Offset(1, 0) End With With Sheets(1) FR = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Row LR = .Cells(.Rows.Count, 2).End(xlUp).Row .Range("A" & FR & ":A" & LR).Value = SNN End With Next End Sub
J'ai pensé à faire ceci comme ci-dessous pour parer à ce souci :
Bien entendu ça ne marche pas (je ne maîtrise pas encore ce type de boucle)
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 Application.ScreenUpdating = False Dim SN As Byte, SNN As String, FR As Long, LR As Long SN = 2 Do While SN <> 0 SNN = Sheets(SN).Name With Sheets(SN) .Range("A2:" & .Range("A2").SpecialCells(xlCellTypeLastCell).Address).Copy Sheets(1).Range("B65536").End(xlUp).Offset(1, 0) End With With Sheets(1) FR = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Row LR = .Cells(.Rows.Count, 2).End(xlUp).Row .Range("A" & FR & ":A" & LR).Value = SNN End With SN = SN + 1 Loop End Sub
Ce que je veux dire ici :C'est que si il n'y a plus d'onglet, alors on sort de la boucle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Do While SN <> 0
Pourriez-vous m'aider SVP ?
Merci d'avance !
Partager