Problème avec ActiveSheet.Name = c.Value

  • Initiateur de la discussion Initiateur de la discussion a26
  • 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 !

a26

XLDnaute Occasionnel
Bonjour,
Après élaboration d'un fichier d'extraction de données vers plusieurs onglets dont la solution m'avait été donnée par JB, j'ai essayé de le transposer à un autre fichier, mais je bute toujours sur le même problème. La macro exécute le transfert mais celle-ci s'arrête à ActiveSheet.Name = c.Value et chaque fois m'ajoute une feuille supplémentaire.
J'ai remarqué que la ligne R2 de Catégorie ne fonctionnait pas.
Avez-vous une solution à ce problème.
Merci.
 

Pièces jointes

Re : Problème avec ActiveSheet.Name = c.Value

Bonjour,

Code:
Sub Extrait_1()
  Set f = Sheets("arrivée")
  Application.DisplayAlerts = False
  Application.ScreenUpdating = False
  '--- Liste des services
  f.[A9:H10000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=f.[r1], Unique:=True
  For Each c In f.Range("R2:R" & f.[R65000].End(xlUp).Row)   ' pour chaque service
   If c.Value <> "" Then
     f.[R2] = c.Value
     On Error Resume Next
     Sheets(c.Value).Delete
     On Error GoTo 0
     Sheets.Add After:=Sheets(Sheets.Count)   ' création
     ActiveSheet.Name = c.Value
     [k1] = f.[r1]
     [K2] = c.Value
     [k1:k2].Font.Bold = True
     [k1].Interior.ColorIndex = 36
     '-- extraction
     f.[A9:H10000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=f.[R1:R2], CopyToRange:=[A1]
    End If
   Next c
End Sub

JB
 
Re : Problème avec ActiveSheet.Name = c.Value

bonjour a26
tu as une erreur lorsque c est vide,un test sur c devrait résoudre le problème
Code:
Sub Extrait_1()
  Set f = Sheets("arrivée")
  Application.DisplayAlerts = False
  Application.ScreenUpdating = False
  '--- Liste des services
  f.[A9:H10000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=f.[r1], Unique:=True
  For Each c In f.Range("R2:R" & f.[R65000].End(xlUp).Row)   ' pour chaque service
   If c <> "" Then
     f.[R2] = c.Value
     On Error Resume Next
     Sheets(c.Value).Delete
     On Error GoTo 0
     Sheets.Add After:=Sheets(Sheets.Count)   ' création
     ActiveSheet.Name = c.Value
     [k1] = f.[r1]
     [K2] = c.Value
     [k1:k2].Font.Bold = True
     [k1].Interior.ColorIndex = 36
     '-- extraction
     f.[A9:H10000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=f.[R1:R2], CopyToRange:=[A1]
     End If
   Next c
   
End Sub

edit bonjour à tous
 
Re : Problème avec ActiveSheet.Name = c.Value

Bonjour JB et gilbert_RGI,
Je viens de tester avec le code de JB, le résultat est parfait.
Merci à tous les deux pour la solution au problème.
Cordialement,
a26
 
- 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

Discussions similaires

Réponses
5
Affichages
682
E
Réponses
5
Affichages
2 K
EDI9366
E
B
Réponses
9
Affichages
1 K
X
Réponses
0
Affichages
1 K
X
Retour