Bonjour à tous en cette nouvelle année,
Je cherche à réaliser une boite de dialogue temporaire pour sélectionner
certaines feuilles que l'on souhaite imprimer dans un classeur donné.
j'ai trouver un exemple - d'après un code diffusé par René Roy, mpfe - qui
construit effectivement un menu, mais il liste toute les feuiles du fichier.
Je souhaite la même chose mais limiter le choix paramétrable à certaines
feuilles du fichier.
Merci de l'aide.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anomymousA
bonjour,
je ne connais pas ce code mais je suppose que comme d'hab, il liste dans un listbox ou un combobox l'ensemble des feuilles. 2 méthodes sont souvent utilisées pour nourrir ce style de controles:
soit on balaye l'ensemble des feuilles par une boucle du style
for I=1 to worksheets.count blabala 'on nourrit le controle next
soit on déclare un tableau Array(......) si on connait par avance le nom des feuilles puis on passe directement le tableau à un listbox.
Bon, dans tous les cas, on n'invente rien et le code indique la méthode suivie. POur ne selectionner dans le contenu du controle qu'un certain nombre de feuilles , il faut restreindre leur source soit en éliminant certianes feuilles dans la boucle For en faisant un test sur leurs noms quand on les connait ou sur un critères qui leur appartiennent en propre, soit on modifie le Array pour n'y inclure que les feuilles qui t'interessent.
C'est ton choix. tu regardes le code et tu appliques l'une des 2 méthodes précédentes et tout devrait rouler sans problème.
A+
Bonjour à tous en cette nouvelle année, Je cherche à réaliser une boite de dialogue temporaire pour sélectionner certaines feuilles que l'on souhaite imprimer dans un classeur donné.
j'ai trouver un exemple - d'après un code diffusé par René Roy, mpfe - qui construit effectivement un menu, mais il liste toute les feuiles du fichier. Je souhaite la même chose mais limiter le choix paramétrable à certaines feuilles du fichier. Merci de l'aide.
bonjour,
je ne connais pas ce code mais je suppose que comme d'hab, il liste dans un
listbox ou un combobox l'ensemble des feuilles.
2 méthodes sont souvent utilisées pour nourrir ce style de controles:
soit on balaye l'ensemble des feuilles par une boucle du style
for I=1 to worksheets.count
blabala 'on nourrit le controle
next
soit on déclare un tableau Array(......) si on connait par avance le nom des
feuilles puis on passe directement le tableau à un listbox.
Bon, dans tous les cas, on n'invente rien et le code indique la méthode
suivie. POur ne selectionner dans le contenu du controle qu'un certain nombre
de feuilles , il faut restreindre leur source soit en éliminant certianes
feuilles dans la boucle For en faisant un test sur leurs noms quand on les
connait ou sur un critères qui leur appartiennent en propre, soit on modifie
le Array pour n'y inclure que les feuilles qui t'interessent.
C'est ton choix. tu regardes le code et tu appliques l'une des 2 méthodes
précédentes et tout devrait rouler sans problème.
A+
Bonjour à tous en cette nouvelle année,
Je cherche à réaliser une boite de dialogue temporaire pour sélectionner
certaines feuilles que l'on souhaite imprimer dans un classeur donné.
j'ai trouver un exemple - d'après un code diffusé par René Roy, mpfe - qui
construit effectivement un menu, mais il liste toute les feuiles du fichier.
Je souhaite la même chose mais limiter le choix paramétrable à certaines
feuilles du fichier.
Merci de l'aide.
je ne connais pas ce code mais je suppose que comme d'hab, il liste dans un listbox ou un combobox l'ensemble des feuilles. 2 méthodes sont souvent utilisées pour nourrir ce style de controles:
soit on balaye l'ensemble des feuilles par une boucle du style
for I=1 to worksheets.count blabala 'on nourrit le controle next
soit on déclare un tableau Array(......) si on connait par avance le nom des feuilles puis on passe directement le tableau à un listbox.
Bon, dans tous les cas, on n'invente rien et le code indique la méthode suivie. POur ne selectionner dans le contenu du controle qu'un certain nombre de feuilles , il faut restreindre leur source soit en éliminant certianes feuilles dans la boucle For en faisant un test sur leurs noms quand on les connait ou sur un critères qui leur appartiennent en propre, soit on modifie le Array pour n'y inclure que les feuilles qui t'interessent.
C'est ton choix. tu regardes le code et tu appliques l'une des 2 méthodes précédentes et tout devrait rouler sans problème.
A+
Bonjour à tous en cette nouvelle année, Je cherche à réaliser une boite de dialogue temporaire pour sélectionner certaines feuilles que l'on souhaite imprimer dans un classeur donné.
j'ai trouver un exemple - d'après un code diffusé par René Roy, mpfe - qui construit effectivement un menu, mais il liste toute les feuiles du fichier. Je souhaite la même chose mais limiter le choix paramétrable à certaines feuilles du fichier. Merci de l'aide.
Bob Phillips
Bonjour Markos,
Cette aide ?
Sub SelectSheets() Dim i As Integer Dim TopPos As Integer Dim iBooks As Integer Dim PrintDlg As DialogSheet Dim CurrentSheet As Worksheet Dim cb As CheckBox Application.ScreenUpdating = False
' Check for protected workbook If ActiveWorkbook.ProtectStructure Then MsgBox "Classeur est protégé.", vbCritical Exit Sub End If
' Add a temporary dialog sheet Set CurrentSheet = ActiveSheet Set PrintDlg = ActiveWorkbook.DialogSheets.Add
iBooks = 0
' Add the checkboxes TopPos = 40 With ActiveWorkbook For i = 1 To .Sheets.Count If .Sheets(i).Name <> PrintDlg.Name Then Set CurrentSheet = .Sheets(i) ' Skip empty sheets and hidden sheets iBooks = iBooks + 1 PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5 PrintDlg.CheckBoxes(iBooks).Text = _ Sheets(i).Name TopPos = TopPos + 13 End If Next i End With
' Move the OK and Cancel buttons PrintDlg.Buttons.Left = 240
' Reactivate original sheet CurrentSheet.Activate PrintDlg.Visible = False
' Set dialog height, width, and caption With PrintDlg.DialogFrame .Height = Application.Max _ (68, PrintDlg.DialogFrame.Top + TopPos - 34) .Width = 230 .Caption = "Choisissez les feuilles pour imprimer" End With
' Change tab order of OK and Cancel buttons ' so the 1st option button will have the focus PrintDlg.Buttons("Button 2").BringToFront PrintDlg.Buttons("Button 3").BringToFront
' Display the dialog box Application.ScreenUpdating = True If PrintDlg.Show Then For Each cb In PrintDlg.CheckBoxes If cb.Value = xlOn Then Sheets(cb.Caption).Printout End If Next cb Else MsgBox "Nothing selected" End If
Bonjour à tous en cette nouvelle année, Je cherche à réaliser une boite de dialogue temporaire pour sélectionner certaines feuilles que l'on souhaite imprimer dans un classeur donné.
j'ai trouver un exemple - d'après un code diffusé par René Roy, mpfe - qui
construit effectivement un menu, mais il liste toute les feuiles du fichier.
Je souhaite la même chose mais limiter le choix paramétrable à certaines feuilles du fichier. Merci de l'aide.
Bonjour Markos,
Cette aide ?
Sub SelectSheets()
Dim i As Integer
Dim TopPos As Integer
Dim iBooks As Integer
Dim PrintDlg As DialogSheet
Dim CurrentSheet As Worksheet
Dim cb As CheckBox
Application.ScreenUpdating = False
' Check for protected workbook
If ActiveWorkbook.ProtectStructure Then
MsgBox "Classeur est protégé.", vbCritical
Exit Sub
End If
' Add a temporary dialog sheet
Set CurrentSheet = ActiveSheet
Set PrintDlg = ActiveWorkbook.DialogSheets.Add
iBooks = 0
' Add the checkboxes
TopPos = 40
With ActiveWorkbook
For i = 1 To .Sheets.Count
If .Sheets(i).Name <> PrintDlg.Name Then
Set CurrentSheet = .Sheets(i)
' Skip empty sheets and hidden sheets
iBooks = iBooks + 1
PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
PrintDlg.CheckBoxes(iBooks).Text = _
Sheets(i).Name
TopPos = TopPos + 13
End If
Next i
End With
' Move the OK and Cancel buttons
PrintDlg.Buttons.Left = 240
' Reactivate original sheet
CurrentSheet.Activate
PrintDlg.Visible = False
' Set dialog height, width, and caption
With PrintDlg.DialogFrame
.Height = Application.Max _
(68, PrintDlg.DialogFrame.Top + TopPos - 34)
.Width = 230
.Caption = "Choisissez les feuilles pour imprimer"
End With
' Change tab order of OK and Cancel buttons
' so the 1st option button will have the focus
PrintDlg.Buttons("Button 2").BringToFront
PrintDlg.Buttons("Button 3").BringToFront
' Display the dialog box
Application.ScreenUpdating = True
If PrintDlg.Show Then
For Each cb In PrintDlg.CheckBoxes
If cb.Value = xlOn Then
Sheets(cb.Caption).Printout
End If
Next cb
Else
MsgBox "Nothing selected"
End If
Bob Phillips
"Markos" <markos.psb@tiscali.fr> wrote in message
news:%23ZKn22x8EHA.1404@TK2MSFTNGP11.phx.gbl...
Bonjour à tous en cette nouvelle année,
Je cherche à réaliser une boite de dialogue temporaire pour sélectionner
certaines feuilles que l'on souhaite imprimer dans un classeur donné.
j'ai trouver un exemple - d'après un code diffusé par René Roy, mpfe -
qui
construit effectivement un menu, mais il liste toute les feuiles du
fichier.
Je souhaite la même chose mais limiter le choix paramétrable à certaines
feuilles du fichier.
Merci de l'aide.
Sub SelectSheets() Dim i As Integer Dim TopPos As Integer Dim iBooks As Integer Dim PrintDlg As DialogSheet Dim CurrentSheet As Worksheet Dim cb As CheckBox Application.ScreenUpdating = False
' Check for protected workbook If ActiveWorkbook.ProtectStructure Then MsgBox "Classeur est protégé.", vbCritical Exit Sub End If
' Add a temporary dialog sheet Set CurrentSheet = ActiveSheet Set PrintDlg = ActiveWorkbook.DialogSheets.Add
iBooks = 0
' Add the checkboxes TopPos = 40 With ActiveWorkbook For i = 1 To .Sheets.Count If .Sheets(i).Name <> PrintDlg.Name Then Set CurrentSheet = .Sheets(i) ' Skip empty sheets and hidden sheets iBooks = iBooks + 1 PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5 PrintDlg.CheckBoxes(iBooks).Text = _ Sheets(i).Name TopPos = TopPos + 13 End If Next i End With
' Move the OK and Cancel buttons PrintDlg.Buttons.Left = 240
' Reactivate original sheet CurrentSheet.Activate PrintDlg.Visible = False
' Set dialog height, width, and caption With PrintDlg.DialogFrame .Height = Application.Max _ (68, PrintDlg.DialogFrame.Top + TopPos - 34) .Width = 230 .Caption = "Choisissez les feuilles pour imprimer" End With
' Change tab order of OK and Cancel buttons ' so the 1st option button will have the focus PrintDlg.Buttons("Button 2").BringToFront PrintDlg.Buttons("Button 3").BringToFront
' Display the dialog box Application.ScreenUpdating = True If PrintDlg.Show Then For Each cb In PrintDlg.CheckBoxes If cb.Value = xlOn Then Sheets(cb.Caption).Printout End If Next cb Else MsgBox "Nothing selected" End If
Bonjour à tous en cette nouvelle année, Je cherche à réaliser une boite de dialogue temporaire pour sélectionner certaines feuilles que l'on souhaite imprimer dans un classeur donné.
j'ai trouver un exemple - d'après un code diffusé par René Roy, mpfe - qui
construit effectivement un menu, mais il liste toute les feuiles du fichier.
Je souhaite la même chose mais limiter le choix paramétrable à certaines feuilles du fichier. Merci de l'aide.
Markos
Merci à vous deux, je vais essayer d'utiliser cette macro en incluant mes variables !!!! je dis bien essayer. A bientôt. "Bob Phillips" a écrit dans le message de news:
Bonjour Markos,
Cette aide ?
Sub SelectSheets() Dim i As Integer Dim TopPos As Integer Dim iBooks As Integer Dim PrintDlg As DialogSheet Dim CurrentSheet As Worksheet Dim cb As CheckBox Application.ScreenUpdating = False
' Check for protected workbook If ActiveWorkbook.ProtectStructure Then MsgBox "Classeur est protégé.", vbCritical Exit Sub End If
' Add a temporary dialog sheet Set CurrentSheet = ActiveSheet Set PrintDlg = ActiveWorkbook.DialogSheets.Add
iBooks = 0
' Add the checkboxes TopPos = 40 With ActiveWorkbook For i = 1 To .Sheets.Count If .Sheets(i).Name <> PrintDlg.Name Then Set CurrentSheet = .Sheets(i) ' Skip empty sheets and hidden sheets iBooks = iBooks + 1 PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5 PrintDlg.CheckBoxes(iBooks).Text = _ Sheets(i).Name TopPos = TopPos + 13 End If Next i End With
' Move the OK and Cancel buttons PrintDlg.Buttons.Left = 240
' Reactivate original sheet CurrentSheet.Activate PrintDlg.Visible = False
' Set dialog height, width, and caption With PrintDlg.DialogFrame .Height = Application.Max _ (68, PrintDlg.DialogFrame.Top + TopPos - 34) .Width = 230 .Caption = "Choisissez les feuilles pour imprimer" End With
' Change tab order of OK and Cancel buttons ' so the 1st option button will have the focus PrintDlg.Buttons("Button 2").BringToFront PrintDlg.Buttons("Button 3").BringToFront
' Display the dialog box Application.ScreenUpdating = True If PrintDlg.Show Then For Each cb In PrintDlg.CheckBoxes If cb.Value = xlOn Then Sheets(cb.Caption).Printout End If Next cb Else MsgBox "Nothing selected" End If
Bonjour à tous en cette nouvelle année, Je cherche à réaliser une boite de dialogue temporaire pour sélectionner certaines feuilles que l'on souhaite imprimer dans un classeur donné.
j'ai trouver un exemple - d'après un code diffusé par René Roy, mpfe - qui
construit effectivement un menu, mais il liste toute les feuiles du fichier.
Je souhaite la même chose mais limiter le choix paramétrable à certaines feuilles du fichier. Merci de l'aide.
Merci à vous deux,
je vais essayer d'utiliser cette macro en incluant mes variables !!!!
je dis bien essayer.
A bientôt.
"Bob Phillips" <phillips@tiscali.co.uk> a écrit dans le message de
news:OdVXKVy8EHA.2452@TK2MSFTNGP14.phx.gbl...
Bonjour Markos,
Cette aide ?
Sub SelectSheets()
Dim i As Integer
Dim TopPos As Integer
Dim iBooks As Integer
Dim PrintDlg As DialogSheet
Dim CurrentSheet As Worksheet
Dim cb As CheckBox
Application.ScreenUpdating = False
' Check for protected workbook
If ActiveWorkbook.ProtectStructure Then
MsgBox "Classeur est protégé.", vbCritical
Exit Sub
End If
' Add a temporary dialog sheet
Set CurrentSheet = ActiveSheet
Set PrintDlg = ActiveWorkbook.DialogSheets.Add
iBooks = 0
' Add the checkboxes
TopPos = 40
With ActiveWorkbook
For i = 1 To .Sheets.Count
If .Sheets(i).Name <> PrintDlg.Name Then
Set CurrentSheet = .Sheets(i)
' Skip empty sheets and hidden sheets
iBooks = iBooks + 1
PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
PrintDlg.CheckBoxes(iBooks).Text = _
Sheets(i).Name
TopPos = TopPos + 13
End If
Next i
End With
' Move the OK and Cancel buttons
PrintDlg.Buttons.Left = 240
' Reactivate original sheet
CurrentSheet.Activate
PrintDlg.Visible = False
' Set dialog height, width, and caption
With PrintDlg.DialogFrame
.Height = Application.Max _
(68, PrintDlg.DialogFrame.Top + TopPos - 34)
.Width = 230
.Caption = "Choisissez les feuilles pour imprimer"
End With
' Change tab order of OK and Cancel buttons
' so the 1st option button will have the focus
PrintDlg.Buttons("Button 2").BringToFront
PrintDlg.Buttons("Button 3").BringToFront
' Display the dialog box
Application.ScreenUpdating = True
If PrintDlg.Show Then
For Each cb In PrintDlg.CheckBoxes
If cb.Value = xlOn Then
Sheets(cb.Caption).Printout
End If
Next cb
Else
MsgBox "Nothing selected"
End If
Bob Phillips
"Markos" <markos.psb@tiscali.fr> wrote in message
news:%23ZKn22x8EHA.1404@TK2MSFTNGP11.phx.gbl...
Bonjour à tous en cette nouvelle année,
Je cherche à réaliser une boite de dialogue temporaire pour sélectionner
certaines feuilles que l'on souhaite imprimer dans un classeur donné.
j'ai trouver un exemple - d'après un code diffusé par René Roy, mpfe -
qui
construit effectivement un menu, mais il liste toute les feuiles du
fichier.
Je souhaite la même chose mais limiter le choix paramétrable à certaines
feuilles du fichier.
Merci de l'aide.
Merci à vous deux, je vais essayer d'utiliser cette macro en incluant mes variables !!!! je dis bien essayer. A bientôt. "Bob Phillips" a écrit dans le message de news:
Bonjour Markos,
Cette aide ?
Sub SelectSheets() Dim i As Integer Dim TopPos As Integer Dim iBooks As Integer Dim PrintDlg As DialogSheet Dim CurrentSheet As Worksheet Dim cb As CheckBox Application.ScreenUpdating = False
' Check for protected workbook If ActiveWorkbook.ProtectStructure Then MsgBox "Classeur est protégé.", vbCritical Exit Sub End If
' Add a temporary dialog sheet Set CurrentSheet = ActiveSheet Set PrintDlg = ActiveWorkbook.DialogSheets.Add
iBooks = 0
' Add the checkboxes TopPos = 40 With ActiveWorkbook For i = 1 To .Sheets.Count If .Sheets(i).Name <> PrintDlg.Name Then Set CurrentSheet = .Sheets(i) ' Skip empty sheets and hidden sheets iBooks = iBooks + 1 PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5 PrintDlg.CheckBoxes(iBooks).Text = _ Sheets(i).Name TopPos = TopPos + 13 End If Next i End With
' Move the OK and Cancel buttons PrintDlg.Buttons.Left = 240
' Reactivate original sheet CurrentSheet.Activate PrintDlg.Visible = False
' Set dialog height, width, and caption With PrintDlg.DialogFrame .Height = Application.Max _ (68, PrintDlg.DialogFrame.Top + TopPos - 34) .Width = 230 .Caption = "Choisissez les feuilles pour imprimer" End With
' Change tab order of OK and Cancel buttons ' so the 1st option button will have the focus PrintDlg.Buttons("Button 2").BringToFront PrintDlg.Buttons("Button 3").BringToFront
' Display the dialog box Application.ScreenUpdating = True If PrintDlg.Show Then For Each cb In PrintDlg.CheckBoxes If cb.Value = xlOn Then Sheets(cb.Caption).Printout End If Next cb Else MsgBox "Nothing selected" End If
Bonjour à tous en cette nouvelle année, Je cherche à réaliser une boite de dialogue temporaire pour sélectionner certaines feuilles que l'on souhaite imprimer dans un classeur donné.
j'ai trouver un exemple - d'après un code diffusé par René Roy, mpfe - qui
construit effectivement un menu, mais il liste toute les feuiles du fichier.
Je souhaite la même chose mais limiter le choix paramétrable à certaines feuilles du fichier. Merci de l'aide.