Erreur d'éxécution 424 objet requis

Résolu/Fermé
Trinna - 31 mai 2012 à 16:27
 Trinna - 31 mai 2012 à 17:15
Bonjour à tous,


J'ai lu tous vos commentaires sur le sujet et je ne trouve pas la solution à mon pb (c'est vrai je code depuis peu). ça plante à la fin du code "Set sh = s"

Ma macro fonctionne jusqu'au moment où je lui demande de lancer l'impression dune feuille déterminée si son nom correspond bien dans une liste (suite à une boucle For). je ne sais pas encore manipuler l'objet WorkSheets avec le "Set sh = Worksheet()...

Si quelqu'un veut bien jetter un coup d'oeil, merci


Sub Print_Reporting_FIN()
'le but de la macro est d'imprimer des feuiles d'un classeur sans avoir à les ouvrir 1 par 1 (1feuille sur 3 dans un classeur de 88 onglets).

...... la variable "s" a été déclarée précédemment dans le code afin de stocker les Noms des Feuilles du classeur et elle remplie parfaitement cette fonction.......

wk.Activate
Dim y As Integer
Dim NomsFeuilles() As String
ReDim NomsFeuilles(1 To Worksheets.Count)

Dim sh As Worksheets

For y = 1 To Worksheets.Count
NomsFeuilles(y) = Worksheets(y).Name

If NomsFeuilles(y) = s Then

Worksheets(y).Name = s

'faire de sh la feuille à imprimer en rapprochant le nom stocké dans s

Set sh = s

'Application.ActivePrinter = "Nom de mon imprimante"
Application.ActivePrinter = "\\srv-IMP\IMP-SGE-GBL-1 sur Ne03:"

With Worksheets(sh)
.PageSetup.BlackAndWhite = False
.PrintOut
End With

DoEvents
Else
' "mon autre code, mais j'en ai pas ! :p"
End If
Next y
'¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

Next xxx

'FERMER LE classeur
Application.DisplayAlerts = False
wk.Close
End Sub
'----------------------



1 réponse

Bonjour,

Enlève Set sh = s

Modifie
With Worksheets(sh)
en
With Worksheets(y)

;)
1
Merci Yoda,
ça marche nickel.

Bonne continuation...
0