VBA Sélection feuille active Aléatoire
bonjour je n'ai pas réussi à trouver sur le forum la réponse a ma question j'espère l'obtenir avec ce post merci d'avance pour votre aide
si dessous mon code pour générer un pdf en fonction des feuilles actives
Dans ce code il y a que 2 conditions mes cela peux monter a 20
la feuille accueil doit toujours rester visible mes ne jamais être pris en compte dans la génération du pdf, il ce peux que les deux feuilles ne soit pas
avce ce bout tous fonctionne mes si une des feuille n'est pas active alors ca bug
Sheets(Array("PLATS TEMOINS", "EXCEDENTS")).Select
Sub Boucle_les_feuilles_sélectionnées_Enregistrer_au_format_PDF()
'bloc les animations
Application.ScreenUpdating = False
'Creation variables
Dim ws As Worksheet
Dim sheetArray As Variant
'vérifie que la valeur est vrai
If Sheets("Accueil").Range("D41") = "Vrai" Then
Sheets("PLATS TEMOINS").Visible = xlSheetVisible
Sheets("PLATS TEMOINS").Activate
End If
If Sheets("Accueil").Range("D44") = "Vrai" Then
Sheets("EXCEDENTS").Visible = xlSheetVisible
Sheets("EXCEDENTS").Activate
End If
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
je souhaiterais sélectionnée toute les feuilles sauf la feuille accueil"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
'Capturer les feuilles sélectionnées
Set sheetArray = ActiveWindow.SelectedSheets
'Boucle à travers chaque feuille de calcul sélectionnée
For Each ws In sheetArray
ws.Select
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "/" & ws.Name & ".pdf"
Next ws
'Resélectionnez les feuilles sélectionnées
sheetArray.Select
'laisse visible la page d'acceuil uniquement
For Each ws In Sheets
If ws.Name <> "Accueil" Then ws.Visible = False
Next ws
'Réactive les animations
Application.ScreenUpdating = True
End Subbonjour,
essaie ceci
Sub Boucle_les_feuilles_sélectionnées_Enregistrer_au_format_PDF()
'bloc les animations
Application.ScreenUpdating = False
'Creation variables
Dim ws As Worksheet
Dim sheetArray As Variant
'vérifie que la valeur est vrai
If Sheets("Accueil").Range("D41") = "Vrai" Then 'si chaine de caractère ="Vrai"
'If Sheets("Accueil").Range("D41") Then 'si booléen VRAI ou FAUX
Sheets("PLATS TEMOINS").Visible = xlSheetVisible
End If
If Sheets("Accueil").Range("D44") = "Vrai" Then
Sheets("EXCEDENTS").Visible = xlSheetVisible
End If
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
'je souhaiterais sélectionner toutes les feuilles sauf la feuille accueil"
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
'"
'Capturer les feuilles sélectionnées
'Boucle à travers chaque feuille de calcul sélectionnée
For Each ws In Worksheets
If ws.Name <> "Accueil" Then
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "/" & ws.Name & ".pdf"
End If
Next ws
'Resélectionnez les feuilles sélectionnées
'laisse visible la page d'acceuil uniquement
For Each ws In Worksheets
If ws.Name <> "Accueil" Then ws.Visible = False
Next ws
'Réactive les animations
Application.ScreenUpdating = True
End Subapres réflexion je pense que je devrais boucler sur le numéro des feuilles active mes je n'arrive pas a trouver mon bonheur
si quelqu'un connait la procédure je suis preneur et l'en remercie d'avance
Bonjour,
je me suis basé sur ceci
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
'je souhaiterais sélectionner toutes les feuilles sauf la feuille accueil"
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
c'est ce que fait la macro proposée.
si tu veux exporter toutes les feuilles sélectionnées, puis les rendre invisibles,( sauf accueil)
Sub Boucle_les_feuilles_sélectionnées_Enregistrer_au_format_PDF()
'bloc les animations
Application.ScreenUpdating = False
'Creation variables
Dim ws As Worksheet
Dim sheetArray As Variant
'vérifie que la valeur est vrai
If Sheets("Accueil").Range("D41") = "Vrai" Then 'si chaine de caractère ="Vrai"
'If Sheets("Accueil").Range("D41") Then 'si booléen VRAI ou FAUX
Sheets("PLATS TEMOINS").Visible = xlSheetVisible
End If
If Sheets("Accueil").Range("D44") = "Vrai" Then
Sheets("EXCEDENTS").Visible = xlSheetVisible
End If
listesheets = "PLATS TEMOINS,EXCEDENTS"
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
'je souhaiterais sélectionner toutes les feuilles sélectionnées + plats temoins et excedents, sauf la feuille accueil"
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
'"
'Capturer les feuilles sélectionnées
'Boucle à travers chaque feuille de calcul sélectionnée
For Each ws In ActiveWindow.SelectedSheets
If ws.Name <> "Accueil" Then
listesheets = listesheets & "," & ws.Name
End If
Next ws
For Each wsn In Split(listesheets, ",")
Set ws = Sheets(wsn)
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "/" & ws.Name & ".pdf"
Next wsn
'Resélectionnez les feuilles sélectionnées
'laisse visible la page d'acceuil uniquement
For Each ws In Worksheets
If ws.Name <> "Accueil" Then ws.Visible = False
Next ws
'Réactive les animations
Application.ScreenUpdating = True
End Subsi tu veux exporter uniquement plats temoins et excedents
Sub Boucle_les_feuilles_sélectionnées_Enregistrer_au_format_PDF()
'bloc les animations
Application.ScreenUpdating = False
listesheets = "PLATS TEMOINS,EXCEDENTS"
For Each wsn In Split(listesheets, ",")
Set ws = Sheets(wsn)
ws.Visible = xlSheetVisible
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\" & wsn & ".pdf"
ws.Visible = False
Next wsn
'Réactive les animations
Application.ScreenUpdating = True
End SubMerci H2so4 c'est exactement cela que je souhaitais désolé pour la mauvaise formulation

