Boucle sur nombre d'onglets variable

JBOBO

XLDnaute Accro
Bonjour à tous,

Je me rapproche de vous pour m'aider à resoudre mon probleme.
J'ai une macro qui me creer un certains nombres d'onglets dans un classeur.
Ces onglets portent tous un nom à 6 Chiffres et sont de couleurs rouge.
Sur chaque onglet, je peux lancer une macro qui m'enregistre l'onglet actif comme un nouveau classeur avec le nom de l'onglet, qui me le transforme en PDF et qui me l'envoi ensuite par mail.

Est il possible d'effectuer une boucle de cette macro sur tous les onglets qui sont formatés de la meme façon. (de façon à ne pas avoir besoin de lancer la macro pour chaque onglet).

Merci d'avance pour vos réponses.
 

JBOBO

XLDnaute Accro
Re : Boucle sur nombre d'onglets variable

Re-bonjour

Merci pour ta réponse mais ça ne marche pas excel boucle sur le 1er onglet uniquement. je me le code au cas ou quelqu'un pourrait me le décortiquer.

Code:
Sub testo()
    'selection et copy dans nveau classeur de la Feuille active et modèle(2)
    'debut essai boucle
    For Each ws In Worksheets
    If Len(ws.Name) = 6 And IsNumeric(ws.Name) Then
    'debut macro sans la boucle
    Sheets(Array(ActiveSheet.Name, "modèle (2)")).Copy
    Application.DisplayAlerts = False
    Sheets("modèle (2)").Select
    ActiveWindow.SelectedSheets.Visible = False
    ' Le chemin du fichier en cours : ThisWorkbook.Päth
    ActiveWorkbook.SaveAs Filename:= _
        ThisWorkbook.Path & "\" & "FactMat - " & Range("H8").Text & " - " & ActiveSheet.Name & " - " & Range("J79").Text & ".xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
        
    Application.ActivePrinter = "Sowedoo PDF 4 sur Ne00:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "Sowedoo PDF 4 sur Ne00:"
    'Envoi mail
    Set MonOutlook = CreateObject("Outlook.Application")
    Set MonMessage = MonOutlook.CreateItem(0)
    With MonMessage
    ad = Range("j3").Value
    'corps = Range("j4").Value
    If ad <> "" Then .to = ad
    .Subject = "Facturation"
    .Body = "Bonjour," & vbCrLf & "ci-joint votre facture"
    .attachments.Add "D:\Data\" & "FactMat - " & Range("H8").Text & " - " & ActiveSheet.Name & " - " & Range("J79").Text & ".pdf" ', FileFormat:= _"
    .display
    End With
    'Fin envoi mail
    ActiveWindow.Close
    FileCopy "D:\Data\" & "FactMat - " & Range("H8").Text & " - " & ActiveSheet.Name & " - " & Range("J79").Text & ".pdf", ThisWorkbook.Path & "\" & "FactMat - " & Range("H8").Text & " - " & ActiveSheet.Name & " - " & Range("J79").Text & ".pdf"
    Kill (ThisWorkbook.Path & "\" & "FactMat - " & Range("H8").Text & " - " & ActiveSheet.Name & " - " & Range("J79").Text & ".xls") ', FileFormat:= _"
    Kill ("D:\Data\" & "FactMat - " & Range("H8").Text & " - " & ActiveSheet.Name & " - " & Range("J79").Text & ".pdf")
    
    Application.DisplayAlerts = True
    'fin macro sans la boucle
    End If
    Next
    'fin de la boucle (les 2 dernières lignes)
End Sub

Merci d'avance au cas ou quelqu'un arrive à me dépatouiller ce code car pour moi ça devient trop compliqué.
 

JBOBO

XLDnaute Accro
Re : Boucle sur nombre d'onglets variable

Merci bcq ça marche nickel - Vraiment trop fort
Un grand merci à toi Pascal XLD et également à tous le Forum
Je n'ose imaginer ce que l'on ferait sans vous, nous autres les novices.
 

Discussions similaires

Réponses
5
Affichages
218
Réponses
12
Affichages
248

Statistiques des forums

Discussions
312 330
Messages
2 087 341
Membres
103 524
dernier inscrit
Smile1813