Bouton option VS Select case & With - End with

Le
Meg
Bonjour,

J'ai le code d'un petit userform que je voudrais optimiser. Alors voilà,
j'ai un With - End With à l'ntérieur du Select Case, mais je voudrais ne pas
avoir à le répéter à chaque Case, histoire d'avoir un code plus élégants. Je
ne sais pas trp comment imbriquer tout cela . Les lignes concernées dans le
code ci-dessous sont celles suivies d'un astérisque.

Merci pour votre aide !

Meg.

Private Sub CommandButton1_Click()
Dim MonImpression As Integer

Select Case MonImpression
Case OptionButton1
Application.ScreenUpdating = True*
With Worksheets("feuil1")*
.Visible = xlSheetVisible: .PrintOut: .Visible =
xlSheetHidden*
End With*
'Sheets("Feuil1").PrintOut Copies:=1, Collate:=True
Case OptionButton2
Sheets("Feuil2").PrintOut Copies:=1, Collate:=True
Case OptionButton3
Sheets("Feuil3").PrintOut Copies:=1, Collate:=True
Case OptionButton4
Sheets("Feuil4").PrintOut Copies:=1, Collate:=True
Case OptionButton5
Sheets("Feuil5").PrintOut Copies:=1, Collate:=True
Case Else
Sheets("Feuil6").PrintOut Copies:=1, Collate:=True
End Select

End Sub
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #4760141
Bonjour.
Essaie :

Application.ScreenUpdating = True
With Sheets("feuil1")
If OptionButton1 Then
.Visible = xlSheetVisible
.PrintOut
.Visible = xlSheetHidden
Else
For i = 2 To 6
If UserForm1.Controls("optionbutton" & i) Then ctr = i
Next i
Sheets("Feuil" & i).PrintOut Copies:=1, Collate:=True
End If
End With

Cordialement.
Daniel
End Sub
"Meg"
Bonjour,

J'ai le code d'un petit userform que je voudrais optimiser. Alors voilà,
j'ai un With - End With à l'ntérieur du Select Case, mais je voudrais ne
pas avoir à le répéter à chaque Case, histoire d'avoir un code plus
élégants. Je ne sais pas trp comment imbriquer tout cela . Les lignes
concernées dans le code ci-dessous sont celles suivies d'un astérisque.

Merci pour votre aide !

Meg.

Private Sub CommandButton1_Click()
Dim MonImpression As Integer

Select Case MonImpression
Case OptionButton1
Application.ScreenUpdating = True*
With Worksheets("feuil1")*
.Visible = xlSheetVisible: .PrintOut: .Visible =
xlSheetHidden*
End With*
'Sheets("Feuil1").PrintOut Copies:=1, Collate:=True
Case OptionButton2
Sheets("Feuil2").PrintOut Copies:=1, Collate:=True
Case OptionButton3
Sheets("Feuil3").PrintOut Copies:=1, Collate:=True
Case OptionButton4
Sheets("Feuil4").PrintOut Copies:=1, Collate:=True
Case OptionButton5
Sheets("Feuil5").PrintOut Copies:=1, Collate:=True
Case Else
Sheets("Feuil6").PrintOut Copies:=1, Collate:=True
End Select

End Sub



Meg
Le #4759071
Salut Daniel,

D'abord, je tiens à te remercier pour ton aide...

J'ai une erreur dans le code ci-dessous. Excel me dit que l'indice
n'appartient pas à la sélection.
Si je mets For i = 2 to 5, je n'ai plus l'erreur, mais il imprime toujours
la dernière feuille, sauf pour la première.
J'ai essayé plusieurs variantes de ton code, mais sans succès :-(
Il ne faut pas oublier que les feuilles 1 à 6 sont masquées.

As-tu une idée pour m'aider ?

Merci encore !

Meg.


"Daniel" %
Bonjour.
Essaie :

Application.ScreenUpdating = True
With Sheets("feuil1")
If OptionButton1 Then
.Visible = xlSheetVisible
.PrintOut
.Visible = xlSheetHidden
Else
For i = 2 To 6
If UserForm1.Controls("optionbutton" & i) Then ctr = i
Next i
Sheets("Feuil" & i).PrintOut Copies:=1, Collate:=True
End If
End With

Cordialement.
Daniel
End Sub
"Meg"
Bonjour,

J'ai le code d'un petit userform que je voudrais optimiser. Alors voilà,
j'ai un With - End With à l'ntérieur du Select Case, mais je voudrais ne
pas avoir à le répéter à chaque Case, histoire d'avoir un code plus
élégants. Je ne sais pas trp comment imbriquer tout cela . Les lignes
concernées dans le code ci-dessous sont celles suivies d'un astérisque.

Merci pour votre aide !

Meg.

Private Sub CommandButton1_Click()
Dim MonImpression As Integer

Select Case MonImpression
Case OptionButton1
Application.ScreenUpdating = True*
With Worksheets("feuil1")*
.Visible = xlSheetVisible: .PrintOut: .Visible =
xlSheetHidden*
End With*
'Sheets("Feuil1").PrintOut Copies:=1, Collate:=True
Case OptionButton2
Sheets("Feuil2").PrintOut Copies:=1, Collate:=True
Case OptionButton3
Sheets("Feuil3").PrintOut Copies:=1, Collate:=True
Case OptionButton4
Sheets("Feuil4").PrintOut Copies:=1, Collate:=True
Case OptionButton5
Sheets("Feuil5").PrintOut Copies:=1, Collate:=True
Case Else
Sheets("Feuil6").PrintOut Copies:=1, Collate:=True
End Select

End Sub







Daniel
Le #4759021
Bonsoir.
Oups.
Sheets("Feuil" & ctr).PrintOut Copies:=1, Collate:=True
Daniel
"Meg"
Salut Daniel,

D'abord, je tiens à te remercier pour ton aide...

J'ai une erreur dans le code ci-dessous. Excel me dit que l'indice
n'appartient pas à la sélection.
Si je mets For i = 2 to 5, je n'ai plus l'erreur, mais il imprime toujours
la dernière feuille, sauf pour la première.
J'ai essayé plusieurs variantes de ton code, mais sans succès :-(
Il ne faut pas oublier que les feuilles 1 à 6 sont masquées.

As-tu une idée pour m'aider ?

Merci encore !

Meg.


"Daniel" %
Bonjour.
Essaie :

Application.ScreenUpdating = True
With Sheets("feuil1")
If OptionButton1 Then
.Visible = xlSheetVisible
.PrintOut
.Visible = xlSheetHidden
Else
For i = 2 To 6
If UserForm1.Controls("optionbutton" & i) Then ctr = i
Next i
Sheets("Feuil" & i).PrintOut Copies:=1, Collate:=True
End If
End With

Cordialement.
Daniel
End Sub
"Meg"
Bonjour,

J'ai le code d'un petit userform que je voudrais optimiser. Alors voilà,
j'ai un With - End With à l'ntérieur du Select Case, mais je voudrais ne
pas avoir à le répéter à chaque Case, histoire d'avoir un code plus
élégants. Je ne sais pas trp comment imbriquer tout cela . Les lignes
concernées dans le code ci-dessous sont celles suivies d'un astérisque.

Merci pour votre aide !

Meg.

Private Sub CommandButton1_Click()
Dim MonImpression As Integer

Select Case MonImpression
Case OptionButton1
Application.ScreenUpdating = True*
With Worksheets("feuil1")*
.Visible = xlSheetVisible: .PrintOut: .Visible =
xlSheetHidden*
End With*
'Sheets("Feuil1").PrintOut Copies:=1, Collate:=True
Case OptionButton2
Sheets("Feuil2").PrintOut Copies:=1, Collate:=True
Case OptionButton3
Sheets("Feuil3").PrintOut Copies:=1, Collate:=True
Case OptionButton4
Sheets("Feuil4").PrintOut Copies:=1, Collate:=True
Case OptionButton5
Sheets("Feuil5").PrintOut Copies:=1, Collate:=True
Case Else
Sheets("Feuil6").PrintOut Copies:=1, Collate:=True
End Select

End Sub











jps
Le #4759011
hum
si ctr = i, n'est-ce pas la même chose que d'écrire ainsi, daniel?
jps (un peu endormi malgré tout)

"Daniel"
Bonsoir.
Oups.
Sheets("Feuil" & ctr).PrintOut Copies:=1, Collate:=True
Daniel
"Meg"
Salut Daniel,

D'abord, je tiens à te remercier pour ton aide...

J'ai une erreur dans le code ci-dessous. Excel me dit que l'indice
n'appartient pas à la sélection.
Si je mets For i = 2 to 5, je n'ai plus l'erreur, mais il imprime
toujours la dernière feuille, sauf pour la première.
J'ai essayé plusieurs variantes de ton code, mais sans succès :-(
Il ne faut pas oublier que les feuilles 1 à 6 sont masquées.

As-tu une idée pour m'aider ?

Merci encore !

Meg.


"Daniel" %
Bonjour.
Essaie :

Application.ScreenUpdating = True
With Sheets("feuil1")
If OptionButton1 Then
.Visible = xlSheetVisible
.PrintOut
.Visible = xlSheetHidden
Else
For i = 2 To 6
If UserForm1.Controls("optionbutton" & i) Then ctr = i
Next i
Sheets("Feuil" & i).PrintOut Copies:=1, Collate:=True
End If
End With

Cordialement.
Daniel
End Sub
"Meg"
Bonjour,

J'ai le code d'un petit userform que je voudrais optimiser. Alors
voilà, j'ai un With - End With à l'ntérieur du Select Case, mais je
voudrais ne pas avoir à le répéter à chaque Case, histoire d'avoir un
code plus élégants. Je ne sais pas trp comment imbriquer tout cela .
Les lignes concernées dans le code ci-dessous sont celles suivies d'un
astérisque.

Merci pour votre aide !

Meg.

Private Sub CommandButton1_Click()
Dim MonImpression As Integer

Select Case MonImpression
Case OptionButton1
Application.ScreenUpdating = True*
With Worksheets("feuil1")*
.Visible = xlSheetVisible: .PrintOut: .Visible =
xlSheetHidden*
End With*
'Sheets("Feuil1").PrintOut Copies:=1, Collate:=True
Case OptionButton2
Sheets("Feuil2").PrintOut Copies:=1, Collate:=True
Case OptionButton3
Sheets("Feuil3").PrintOut Copies:=1, Collate:=True
Case OptionButton4
Sheets("Feuil4").PrintOut Copies:=1, Collate:=True
Case OptionButton5
Sheets("Feuil5").PrintOut Copies:=1, Collate:=True
Case Else
Sheets("Feuil6").PrintOut Copies:=1, Collate:=True
End Select

End Sub















Meg
Le #4758981
Bonsoir,

En effet, le problème persiste.... :-(((

Merci pour votre aide !

Meg.


"jps"
hum
si ctr = i, n'est-ce pas la même chose que d'écrire ainsi, daniel?
jps (un peu endormi malgré tout)

"Daniel"
Bonsoir.
Oups.
Sheets("Feuil" & ctr).PrintOut Copies:=1, Collate:=True
Daniel
"Meg"
Salut Daniel,

D'abord, je tiens à te remercier pour ton aide...

J'ai une erreur dans le code ci-dessous. Excel me dit que l'indice
n'appartient pas à la sélection.
Si je mets For i = 2 to 5, je n'ai plus l'erreur, mais il imprime
toujours la dernière feuille, sauf pour la première.
J'ai essayé plusieurs variantes de ton code, mais sans succès :-(
Il ne faut pas oublier que les feuilles 1 à 6 sont masquées.

As-tu une idée pour m'aider ?

Merci encore !

Meg.


"Daniel" %
Bonjour.
Essaie :

Application.ScreenUpdating = True
With Sheets("feuil1")
If OptionButton1 Then
.Visible = xlSheetVisible
.PrintOut
.Visible = xlSheetHidden
Else
For i = 2 To 6
If UserForm1.Controls("optionbutton" & i) Then ctr = i
Next i
Sheets("Feuil" & i).PrintOut Copies:=1, Collate:=True
End If
End With

Cordialement.
Daniel
End Sub
"Meg"
Bonjour,

J'ai le code d'un petit userform que je voudrais optimiser. Alors
voilà, j'ai un With - End With à l'ntérieur du Select Case, mais je
voudrais ne pas avoir à le répéter à chaque Case, histoire d'avoir un
code plus élégants. Je ne sais pas trp comment imbriquer tout cela .
Les lignes concernées dans le code ci-dessous sont celles suivies d'un
astérisque.

Merci pour votre aide !

Meg.

Private Sub CommandButton1_Click()
Dim MonImpression As Integer

Select Case MonImpression
Case OptionButton1
Application.ScreenUpdating = True*
With Worksheets("feuil1")*
.Visible = xlSheetVisible: .PrintOut: .Visible =
xlSheetHidden*
End With*
'Sheets("Feuil1").PrintOut Copies:=1, Collate:=True
Case OptionButton2
Sheets("Feuil2").PrintOut Copies:=1, Collate:=True
Case OptionButton3
Sheets("Feuil3").PrintOut Copies:=1, Collate:=True
Case OptionButton4
Sheets("Feuil4").PrintOut Copies:=1, Collate:=True
Case OptionButton5
Sheets("Feuil5").PrintOut Copies:=1, Collate:=True
Case Else
Sheets("Feuil6").PrintOut Copies:=1, Collate:=True
End Select

End Sub



















Daniel
Le #4758911
Bonjour.
Non, à la fin de la boucle, i = 6 dans tous les cas. Ctr a la valeur de i
quand l'optionbutton est sélectionné.
Si l'optionbutton2.value = True, ctr=2 en fin de boucle.
Ou j'ai raté quelque chose.
Daniel
"jps"
hum
si ctr = i, n'est-ce pas la même chose que d'écrire ainsi, daniel?
jps (un peu endormi malgré tout)

"Daniel"
Bonsoir.
Oups.
Sheets("Feuil" & ctr).PrintOut Copies:=1, Collate:=True
Daniel
"Meg"
Salut Daniel,

D'abord, je tiens à te remercier pour ton aide...

J'ai une erreur dans le code ci-dessous. Excel me dit que l'indice
n'appartient pas à la sélection.
Si je mets For i = 2 to 5, je n'ai plus l'erreur, mais il imprime
toujours la dernière feuille, sauf pour la première.
J'ai essayé plusieurs variantes de ton code, mais sans succès :-(
Il ne faut pas oublier que les feuilles 1 à 6 sont masquées.

As-tu une idée pour m'aider ?

Merci encore !

Meg.


"Daniel" %
Bonjour.
Essaie :

Application.ScreenUpdating = True
With Sheets("feuil1")
If OptionButton1 Then
.Visible = xlSheetVisible
.PrintOut
.Visible = xlSheetHidden
Else
For i = 2 To 6
If UserForm1.Controls("optionbutton" & i) Then ctr = i
Next i
Sheets("Feuil" & i).PrintOut Copies:=1, Collate:=True
End If
End With

Cordialement.
Daniel
End Sub
"Meg"
Bonjour,

J'ai le code d'un petit userform que je voudrais optimiser. Alors
voilà, j'ai un With - End With à l'ntérieur du Select Case, mais je
voudrais ne pas avoir à le répéter à chaque Case, histoire d'avoir un
code plus élégants. Je ne sais pas trp comment imbriquer tout cela .
Les lignes concernées dans le code ci-dessous sont celles suivies d'un
astérisque.

Merci pour votre aide !

Meg.

Private Sub CommandButton1_Click()
Dim MonImpression As Integer

Select Case MonImpression
Case OptionButton1
Application.ScreenUpdating = True*
With Worksheets("feuil1")*
.Visible = xlSheetVisible: .PrintOut: .Visible =
xlSheetHidden*
End With*
'Sheets("Feuil1").PrintOut Copies:=1, Collate:=True
Case OptionButton2
Sheets("Feuil2").PrintOut Copies:=1, Collate:=True
Case OptionButton3
Sheets("Feuil3").PrintOut Copies:=1, Collate:=True
Case OptionButton4
Sheets("Feuil4").PrintOut Copies:=1, Collate:=True
Case OptionButton5
Sheets("Feuil5").PrintOut Copies:=1, Collate:=True
Case Else
Sheets("Feuil6").PrintOut Copies:=1, Collate:=True
End Select

End Sub



















Daniel
Le #4758901
Bonjour.
Quelqu'un peut-il prendre le relais. Je suis bloqué sur ce coup, et absent
popur la journée.
Merci.
Daniel
"Meg"
Bonsoir,

En effet, le problème persiste.... :-(((

Merci pour votre aide !

Meg.


"jps"
hum
si ctr = i, n'est-ce pas la même chose que d'écrire ainsi, daniel?
jps (un peu endormi malgré tout)

"Daniel"
Bonsoir.
Oups.
Sheets("Feuil" & ctr).PrintOut Copies:=1, Collate:=True
Daniel
"Meg"
Salut Daniel,

D'abord, je tiens à te remercier pour ton aide...

J'ai une erreur dans le code ci-dessous. Excel me dit que l'indice
n'appartient pas à la sélection.
Si je mets For i = 2 to 5, je n'ai plus l'erreur, mais il imprime
toujours la dernière feuille, sauf pour la première.
J'ai essayé plusieurs variantes de ton code, mais sans succès :-(
Il ne faut pas oublier que les feuilles 1 à 6 sont masquées.

As-tu une idée pour m'aider ?

Merci encore !

Meg.


"Daniel" %
Bonjour.
Essaie :

Application.ScreenUpdating = True
With Sheets("feuil1")
If OptionButton1 Then
.Visible = xlSheetVisible
.PrintOut
.Visible = xlSheetHidden
Else
For i = 2 To 6
If UserForm1.Controls("optionbutton" & i) Then ctr = i
Next i
Sheets("Feuil" & i).PrintOut Copies:=1, Collate:=True
End If
End With

Cordialement.
Daniel
End Sub
"Meg"
Bonjour,

J'ai le code d'un petit userform que je voudrais optimiser. Alors
voilà, j'ai un With - End With à l'ntérieur du Select Case, mais je
voudrais ne pas avoir à le répéter à chaque Case, histoire d'avoir un
code plus élégants. Je ne sais pas trp comment imbriquer tout cela .
Les lignes concernées dans le code ci-dessous sont celles suivies
d'un astérisque.

Merci pour votre aide !

Meg.

Private Sub CommandButton1_Click()
Dim MonImpression As Integer

Select Case MonImpression
Case OptionButton1
Application.ScreenUpdating = True*
With Worksheets("feuil1")*
.Visible = xlSheetVisible: .PrintOut: .Visible =
xlSheetHidden*
End With*
'Sheets("Feuil1").PrintOut Copies:=1, Collate:=True
Case OptionButton2
Sheets("Feuil2").PrintOut Copies:=1, Collate:=True
Case OptionButton3
Sheets("Feuil3").PrintOut Copies:=1, Collate:=True
Case OptionButton4
Sheets("Feuil4").PrintOut Copies:=1, Collate:=True
Case OptionButton5
Sheets("Feuil5").PrintOut Copies:=1, Collate:=True
Case Else
Sheets("Feuil6").PrintOut Copies:=1, Collate:=True
End Select

End Sub























jps
Le #4758861
sûrement pas moi, daniel, qui déjà n'avais rien compris à la valeur de
ctr....
il faut sauver le soldat Meg
debout les braves!
jps

"Daniel" %
Bonjour.
Quelqu'un peut-il prendre le relais. Je suis bloqué sur ce coup, et absent
popur la journée.
Merci.
Daniel
"Meg"
Bonsoir,

En effet, le problème persiste.... :-(((

Merci pour votre aide !

Meg.


"jps"
hum
si ctr = i, n'est-ce pas la même chose que d'écrire ainsi, daniel?
jps (un peu endormi malgré tout)

"Daniel"
Bonsoir.
Oups.
Sheets("Feuil" & ctr).PrintOut Copies:=1, Collate:=True
Daniel
"Meg"
Salut Daniel,

D'abord, je tiens à te remercier pour ton aide...

J'ai une erreur dans le code ci-dessous. Excel me dit que l'indice
n'appartient pas à la sélection.
Si je mets For i = 2 to 5, je n'ai plus l'erreur, mais il imprime
toujours la dernière feuille, sauf pour la première.
J'ai essayé plusieurs variantes de ton code, mais sans succès :-(
Il ne faut pas oublier que les feuilles 1 à 6 sont masquées.

As-tu une idée pour m'aider ?

Merci encore !

Meg.


"Daniel" %
Bonjour.
Essaie :

Application.ScreenUpdating = True
With Sheets("feuil1")
If OptionButton1 Then
.Visible = xlSheetVisible
.PrintOut
.Visible = xlSheetHidden
Else
For i = 2 To 6
If UserForm1.Controls("optionbutton" & i) Then ctr = i
Next i
Sheets("Feuil" & i).PrintOut Copies:=1, Collate:=True
End If
End With

Cordialement.
Daniel
End Sub
"Meg"
Bonjour,

J'ai le code d'un petit userform que je voudrais optimiser. Alors
voilà, j'ai un With - End With à l'ntérieur du Select Case, mais je
voudrais ne pas avoir à le répéter à chaque Case, histoire d'avoir
un code plus élégants. Je ne sais pas trp comment imbriquer tout
cela . Les lignes concernées dans le code ci-dessous sont celles
suivies d'un astérisque.

Merci pour votre aide !

Meg.

Private Sub CommandButton1_Click()
Dim MonImpression As Integer

Select Case MonImpression
Case OptionButton1
Application.ScreenUpdating = True*
With Worksheets("feuil1")*
.Visible = xlSheetVisible: .PrintOut: .Visible =
xlSheetHidden*
End With*
'Sheets("Feuil1").PrintOut Copies:=1, Collate:=True
Case OptionButton2
Sheets("Feuil2").PrintOut Copies:=1, Collate:=True
Case OptionButton3
Sheets("Feuil3").PrintOut Copies:=1, Collate:=True
Case OptionButton4
Sheets("Feuil4").PrintOut Copies:=1, Collate:=True
Case OptionButton5
Sheets("Feuil5").PrintOut Copies:=1, Collate:=True
Case Else
Sheets("Feuil6").PrintOut Copies:=1, Collate:=True
End Select

End Sub



























Daniel
Le #4758851
Regarde le classeur à l'adresse :

http://cjoint.com/?iDjWrU1Lbt
Le code du bouton du userform est :
Private Sub CommandButton1_Click()
For i = 1 To 6
If UserForm1.Controls("optionbutton" & i) Then ctr = i
Next i
With Sheets("Feuil" & ctr)
.Visible = xlSheetVisible
MsgBox "Feuil" & ctr
.PrintOut Copies:=1, Collate:=True
.Visible = xlSheetHidden
End With
Me.Hide
End Sub

Daniel
"Meg"
Bonsoir,

En effet, le problème persiste.... :-(((

Merci pour votre aide !

Meg.


"jps"
hum
si ctr = i, n'est-ce pas la même chose que d'écrire ainsi, daniel?
jps (un peu endormi malgré tout)

"Daniel"
Bonsoir.
Oups.
Sheets("Feuil" & ctr).PrintOut Copies:=1, Collate:=True
Daniel
"Meg"
Salut Daniel,

D'abord, je tiens à te remercier pour ton aide...

J'ai une erreur dans le code ci-dessous. Excel me dit que l'indice
n'appartient pas à la sélection.
Si je mets For i = 2 to 5, je n'ai plus l'erreur, mais il imprime
toujours la dernière feuille, sauf pour la première.
J'ai essayé plusieurs variantes de ton code, mais sans succès :-(
Il ne faut pas oublier que les feuilles 1 à 6 sont masquées.

As-tu une idée pour m'aider ?

Merci encore !

Meg.


"Daniel" %
Bonjour.
Essaie :

Application.ScreenUpdating = True
With Sheets("feuil1")
If OptionButton1 Then
.Visible = xlSheetVisible
.PrintOut
.Visible = xlSheetHidden
Else
For i = 2 To 6
If UserForm1.Controls("optionbutton" & i) Then ctr = i
Next i
Sheets("Feuil" & i).PrintOut Copies:=1, Collate:=True
End If
End With

Cordialement.
Daniel
End Sub
"Meg"
Bonjour,

J'ai le code d'un petit userform que je voudrais optimiser. Alors
voilà, j'ai un With - End With à l'ntérieur du Select Case, mais je
voudrais ne pas avoir à le répéter à chaque Case, histoire d'avoir un
code plus élégants. Je ne sais pas trp comment imbriquer tout cela .
Les lignes concernées dans le code ci-dessous sont celles suivies
d'un astérisque.

Merci pour votre aide !

Meg.

Private Sub CommandButton1_Click()
Dim MonImpression As Integer

Select Case MonImpression
Case OptionButton1
Application.ScreenUpdating = True*
With Worksheets("feuil1")*
.Visible = xlSheetVisible: .PrintOut: .Visible =
xlSheetHidden*
End With*
'Sheets("Feuil1").PrintOut Copies:=1, Collate:=True
Case OptionButton2
Sheets("Feuil2").PrintOut Copies:=1, Collate:=True
Case OptionButton3
Sheets("Feuil3").PrintOut Copies:=1, Collate:=True
Case OptionButton4
Sheets("Feuil4").PrintOut Copies:=1, Collate:=True
Case OptionButton5
Sheets("Feuil5").PrintOut Copies:=1, Collate:=True
Case Else
Sheets("Feuil6").PrintOut Copies:=1, Collate:=True
End Select

End Sub























Meg
Le #4680371
Bonjour Daniel,

J'ai suivi le lien que tu as donné et j'ai essayé le code. Le code
fonctionne très bien. J'imagine que ça devait être la première partie du
code (La condition If - Then) qui posait problème.

Peu importe, le problème est résolu.

Merci !

Meg.

"Daniel"
Bonjour.
Non, à la fin de la boucle, i = 6 dans tous les cas. Ctr a la valeur de i
quand l'optionbutton est sélectionné.
Si l'optionbutton2.value = True, ctr=2 en fin de boucle.
Ou j'ai raté quelque chose.
Daniel
"jps"
hum
si ctr = i, n'est-ce pas la même chose que d'écrire ainsi, daniel?
jps (un peu endormi malgré tout)

"Daniel"
Bonsoir.
Oups.
Sheets("Feuil" & ctr).PrintOut Copies:=1, Collate:=True
Daniel
"Meg"
Salut Daniel,

D'abord, je tiens à te remercier pour ton aide...

J'ai une erreur dans le code ci-dessous. Excel me dit que l'indice
n'appartient pas à la sélection.
Si je mets For i = 2 to 5, je n'ai plus l'erreur, mais il imprime
toujours la dernière feuille, sauf pour la première.
J'ai essayé plusieurs variantes de ton code, mais sans succès :-(
Il ne faut pas oublier que les feuilles 1 à 6 sont masquées.

As-tu une idée pour m'aider ?

Merci encore !

Meg.


"Daniel" %
Bonjour.
Essaie :

Application.ScreenUpdating = True
With Sheets("feuil1")
If OptionButton1 Then
.Visible = xlSheetVisible
.PrintOut
.Visible = xlSheetHidden
Else
For i = 2 To 6
If UserForm1.Controls("optionbutton" & i) Then ctr = i
Next i
Sheets("Feuil" & i).PrintOut Copies:=1, Collate:=True
End If
End With

Cordialement.
Daniel
End Sub
"Meg"
Bonjour,

J'ai le code d'un petit userform que je voudrais optimiser. Alors
voilà, j'ai un With - End With à l'ntérieur du Select Case, mais je
voudrais ne pas avoir à le répéter à chaque Case, histoire d'avoir un
code plus élégants. Je ne sais pas trp comment imbriquer tout cela .
Les lignes concernées dans le code ci-dessous sont celles suivies
d'un astérisque.

Merci pour votre aide !

Meg.

Private Sub CommandButton1_Click()
Dim MonImpression As Integer

Select Case MonImpression
Case OptionButton1
Application.ScreenUpdating = True*
With Worksheets("feuil1")*
.Visible = xlSheetVisible: .PrintOut: .Visible =
xlSheetHidden*
End With*
'Sheets("Feuil1").PrintOut Copies:=1, Collate:=True
Case OptionButton2
Sheets("Feuil2").PrintOut Copies:=1, Collate:=True
Case OptionButton3
Sheets("Feuil3").PrintOut Copies:=1, Collate:=True
Case OptionButton4
Sheets("Feuil4").PrintOut Copies:=1, Collate:=True
Case OptionButton5
Sheets("Feuil5").PrintOut Copies:=1, Collate:=True
Case Else
Sheets("Feuil6").PrintOut Copies:=1, Collate:=True
End Select

End Sub























Publicité
Poster une réponse
Anonyme