Sélection de feuilles en fonction d'une cellule

Bonjour à toutes & à tous,

Je cherche en vain à sélectionner des feuilles en fonction de la valeur d'une cellule

A1 : Nom Feuille 1 // B1 : Oui

A2 : Nom Feuille 1 // B2 : Oui

A3 : Nom Feuille 1 // B3 : NON

A4 : Nom Feuille 1 // B4 : Oui

A5 : Nom Feuille 1 // B5 : NON

A6: Nom Feuille 1 // B6 : Oui

A7 : Nom Feuille 1 // B7 : Oui

A8: Nom Feuille 1 // B8 : Oui

Je souhaiterai ne sélectionner que les feuilles 1.2.4.6.7.8 par exemple

J'arrive à en sélectionner plusieurs en fonction de la valeur d'une cellule mais là je flanche car il y a trop de conditions...

Et comment faire après pour désélectionner le groupe de feuille ?

Merci d'avance pour vos réponses.

Geof

Bonjour Geof,

voici un exemple,

Bonjour i2010,

Super merci, c'est exactement ce qu'il me fallait

Du coup j'en profite pour te demander 2 autres petites choses :

  • Comment faire pour désélectionner le groupe de feuille une fois la macro exécutée,
  • Et comment adapter la macro pour mettre le numéro de la feuille plutôt que le nom (je sais que j'avais demandé par rapport aux noms au départ )

Merci d'avance pour ton aide.

re,

1 - pour dissocier les feuilles, il suffit dans sélectionner une seule

Sub DissocierFeuille()
Sheets(1).Select
End Sub

2 - pour le numéro de la feuille

Sheets(1).Select False

Isabelle,

Merci pour ta réponse mais je connaissais pour le numéro de feuille comme çà, je me suis mal exprimé désolé, je ne sais pas comment intégrer "Array" dans ton code en fait.

'Module Impression

Sub Aperçu()
Call Selectionner_Feuilles
??? .PrintPreview
Call Enregister_XLS
Call Enregistrer_PDF
Call Dissocier_Feuilles
End Sub

Sub Selectionner_Feuilles()
'Ne Sélectionne que les feuilles renseignées (FR) &
'Sélectionne automatiquement les Feuilles Récap et TCD-GCD
FR = Sheets(7).Range("Q104:U111").Value
For i = LBound(FR) To UBound(FR)
If FR(i, 5) = "1" Then Sheets(FR(i, 1)).Select False
Next i
'Selection.PrintPreview ???
End Sub

Sub Dissocier_Feuilles()
Sheets(1).Select
End Sub

En fait je n'arrive pas à Enregistrer une fois les feuilles selectionnées.

Je ne sais pas quoi mettre avant le .printpreview pour qu'il n'affiche que celles sélectionnées.

Enregistrer XLS et PDF ça c'est bon elles fonctionnent mais justement elles m'enregistrent toutes les 2 tous les onglets.

Merci d'avance.

re,

à tester,

ActiveWorkbook.PrintPreview

Re,

J’essaye ça lundi et te redis ça.

En attendant merci pour l’intérêt porté.

Bon week end.

Bonjour Isabelle,

Je viens de tester :

ActiveWorkbook fonctionne bien pour PrintPreview mais pas pour l'enregistrement au format Excel ni au format PDF

Par contre pour le PrintPreview il me met quand même à l'aperçu la Feuille 1 (sur laquelle est déclenché la macro) même si la condition n'est pas respectée. Je pense qu'il la voit comme feuille active aussi, je ne sais pas.

Comment faire pour l'enregistrement en PDF et Excel pour qu'il ne sélectionne uniquement les feuilles souhaitées ?

Sub Enregistrer_PDF()

Dim Chemin As String, Nom_Fichier As String, Mois As String, Année As String
Chemin = ThisWorkbook.Path & "\"
Nom_Fichier = Sheets(1).Range("H2")
Mois = Sheets(2).Range("E2")
Année = Sheets(2).Range("D2")

If MsgBox("Voulez-vous enregister le fichier au format PDF ?" & Chr(10) & _
Nom_Fichier & " - " & Mois & " " & Année & Chr(10) & Chr(10) & _
"Attention si le fichier existe déjà, il sera écrasé !", vbYesNo + vbExclamation, "Demande de confirmation") = vbYes Then

Call Selectionner_Feuilles

'Enregistre en PDF
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Chemin & Nom_Fichier & " - " & Mois & " " & Année, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

Call Dissocier_Feuilles

End If

End Sub

Sub Enregistrer_XLS()

Dim Chemin As String, Nom_Fichier As String, Mois As String, Année As String
Chemin = ThisWorkbook.Path & "\"
Nom_Fichier = Sheets(1).Range("H2")
Mois = Sheets(2).Range("E2")
Année = Sheets(2).Range("D2")

Call Selectionner_Feuilles

If MsgBox("Voulez-vous enregister le fichier au format Excel ?" & Chr(10) & _
Nom_Fichier & " - " & Mois & " " & Année & Chr(10) & Chr(10) & _
"Attention si le fichier existe déjà, il sera écrasé !", vbYesNo + vbExclamation, "Demande de confirmation") = vbYes Then

'Enregistre le fichier Excel et conserve le modèle
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs Filename:=Chemin & Nom_Fichier & " - " & Mois & " " & Année & ".xlsm"
Application.DisplayAlerts = True

Call Dissocier_Feuilles

End If
End Sub

Merci d'avance pour ton retour.

Geof

ActiveWorkbook fonctionne bien pour PrintPreview mais pas pour l'enregistrement au format Excel ni au format PDF

Par contre pour le PrintPreview il me met quand même à l'aperçu la Feuille 1 (sur laquelle est déclenché la macro) même si la condition n'est pas respectée. Je pense qu'il la voit comme feuille active aussi, je ne sais pas.

Geof

Bonjour Geof,

essaie avec

ActiveWindow.SelectedSheets.PrintPreview

Bonjour Isabelle,

Pour l'aperçu cela fonctionne j'ai réussi à contourné le problème mais je n'arrive pas à enregistrer uniquement les feuilles sélectionnées en PDF et XLS

Je ne vois pas comment adapter ce code en fait :

'Enregistre le fichier Excel et conserve le modèle
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs Filename:=Chemin & Nom_Fichier & " - " & Mois & " " & Année & ".xlsm"
Application.DisplayAlerts = True

'Enregistre en PDF
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Chemin & Nom_Fichier & " - " & Mois & " " & Année, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

Merci

Geof

J'ai trouvé pour le PDF : il fallait simplement remplacer ActiveWorkbook par ActiveSheet

'Enregistre en PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Chemin & Nom_Fichier & " - " & Mois & " " & Année, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

Par contre pour l'enregistrement uniquement des feuilles sélectionnées vers un nouveau fichier Excel, je ne trouve pas

as-tu essayé avec

Selection.ExportAsFixedFormat...

Bonjour i2010,

Je viens de voir et j'en suis désolé, que je ne t'avais pas répondu

Cela fonctionne parfaitement

Merci beaucoup pour ton aide

@ bientôt

Geof

Rechercher des sujets similaires à "selection feuilles fonction"