erreur 1004 la méthode select de la classe worksheet a échoué

  • Initiateur de la discussion Initiateur de la discussion phil75016
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

phil75016

XLDnaute Junior
Bonjour

Sub imprime_les_feuilles_remplies()
Sheets("Charge").Select
For I = 1 To 4
Set mafeuille = Worksheets(I)
mafeuille.Select
If Cells(1, 52).Value > 0 Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
Next I
End Sub


J'ai cette macro dans un fichier que j'envoie à plusieurs personnes. Dans certains cas, lorsque ces personnes me retournent le fichier cette macro ne fonctionne plus et j'ai le blocage sur la ligne mafeuille.select. J'ai le même blocage si je remplace sheets("Charge").select par sheets(1).select. J'ai l'impression que si on ne met pas le nom entier de la feuille lorsque l'on sélectionne une feuille il y a ce bug. Merci pour votre aide.
 
Re : erreur 1004 la méthode select de la classe worksheet a échoué

Bonjour

Eviter l'utilisation de Select qui ralentit l'exécution .

Une solution:

Code:
Sub imprime_les_feuilles_remplies()
 For i = 1 To 4
    With Worksheets(i)
    If .Cells(1, 52).Value > 0 Then
        .PrintOut Copies:=1
    End If
    End With
 Next i
End Sub

A+
 
Re : erreur 1004 la méthode select de la classe worksheet a échoué

Bonjour

Eviter l'utilisation de Select qui ralentit l'exécution .

Une solution:

Code:
Sub imprime_les_feuilles_remplies()
 For i = 1 To 4
    With Worksheets(i)
    If .Cells(1, 52).Value > 0 Then
        .PrintOut Copies:=1
    End If
    End With
 Next i
End Sub

A+

Merci beaucoup, c'est bon même si je ne m'explique pas pourquoi çà ne fonctionne pas selon la personne qui me retourne le fichier. Est ce que çà peut venir de la version d'excel? Moi je suis en 20007.
 
Re : erreur 1004 la méthode select de la classe worksheet a échoué

Bonjour,

la ligne Sheets("Charge").select ne sert à rien, puisque tu sélectionnes et tu ne fais plus rien sur cette feuille

ensuite, la boucle de 1 à 4,
si tes collègues s'amusent à supprimer puis recréer des feuilles, les indices ne vont plus correspondre. donc ta macro planter.

si tu es sur d'avoir toujours que 4 feuilles de données + ta feuille "Charge"
tu peux faire une boucle comme ceci

Code:
Sub test()
For Each ws In Worksheets
    If ws.Name <> "Charge" Then
        If ws.Cells(1, 52).Value > 0 Then
            ws.PrintOut Copies:=1
        End If
    End If
Next ws
End Sub

ou plus court
Code:
Sub test()
For Each ws In Worksheets
    If (ws.Name <> "Charge") and (ws.Cells(1, 52).Value > 0) Then ws.PrintOut Copies:=1
Next ws
End Sub

PS: Hello All
 
Dernière édition:
Re : erreur 1004 la méthode select de la classe worksheet a échoué

Merci à toi car ta boucle est très interessante et me servira aussi pour d'autres macros. Mais pourquoi la seul instruction sheets(1).select ne fonctionne pas alors qu'elle fonctionne pour d'autres? Les personnes ne peuvent pas supprimer des feuilles ni en ajouter.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
455
Réponses
3
Affichages
518
Retour