Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur d'exécution 1004 - erreur définie par l'application ou par l'objet

6 réponses
Avatar
j-pascal
Bonjour,

Je ne comprends pas pourquoi j'ai le message ci-dessus pour ce bout de
code :

Sheets(Worksheets.Count).Select
Range("A16:G600,L16:M600,O16:O600").Select
'Selection.ClearContents
End With


Merci pour vos lumières,

JP

PS : Je sais qu'il faut limiter les "Select", mais je vois ça plus tard

6 réponses

Avatar
Jacky
Bonjour,

Ce code n'est pas complet, ou le "End With" est de trop.
Ceci efface le contenu des plages " A16:G600,L16:M600,O16:O600" de la
dernière feuille du classeur actif (sans selection)

Sheets(Worksheets.Count).Range("A16:G600,L16:M600,O16:O600").ClearContents

--
Salutations
JJ


"j-pascal" a écrit dans le message de news:

Bonjour,

Je ne comprends pas pourquoi j'ai le message ci-dessus pour ce bout de
code :

Sheets(Worksheets.Count).Select
Range("A16:G600,L16:M600,O16:O600").Select
'Selection.ClearContents
End With


Merci pour vos lumières,

JP

PS : Je sais qu'il faut limiter les "Select", mais je vois ça plus tard




Avatar
j-pascal
Bonjour,

Désolé, j'ai mal recopié. J'ai toujours le même code d'erreur avec :

'------------
Sub essai_sél()
Sheets(Worksheets.Count).Select
Range("A16:G600,L16:M600,O16:O600").Select
End Sub
'------------

Je suis sur la feuille n°1 (ie)
Je lance ce code depuis un module standard
Le dernier onglet devient l'onglet sélectionné (donc actif ?)
Le code d'erreur apparaît!

JP

PS : je préfère gérer la sélection avant de passer à l'effacement.

Bonjour,

Ce code n'est pas complet, ou le "End With" est de trop.
Ceci efface le contenu des plages " A16:G600,L16:M600,O16:O600" de la
dernière feuille du classeur actif (sans selection)

Sheets(Worksheets.Count).Range("A16:G600,L16:M600,O16:O600").ClearContents

--
Salutations
JJ


"j-pascal" a écrit dans le message de news:

Bonjour,

Je ne comprends pas pourquoi j'ai le message ci-dessus pour ce bout de code
:

Sheets(Worksheets.Count).Select
Range("A16:G600,L16:M600,O16:O600").Select
'Selection.ClearContents
End With


Merci pour vos lumières,

JP

PS : Je sais qu'il faut limiter les "Select", mais je vois ça plus tard






Avatar
j-pascal
Même si je remplace la zone de sélection multiple par [a12].select (ie)
j'ai le msg d'erreur !


Bonjour,

Ce code n'est pas complet, ou le "End With" est de trop.
Ceci efface le contenu des plages " A16:G600,L16:M600,O16:O600" de la
dernière feuille du classeur actif (sans selection)

Sheets(Worksheets.Count).Range("A16:G600,L16:M600,O16:O600").ClearContents

--
Salutations
JJ


"j-pascal" a écrit dans le message de news:

Bonjour,

Je ne comprends pas pourquoi j'ai le message ci-dessus pour ce bout de code
:

Sheets(Worksheets.Count).Select
Range("A16:G600,L16:M600,O16:O600").Select
'Selection.ClearContents
End With


Merci pour vos lumières,

JP

PS : Je sais qu'il faut limiter les "Select", mais je vois ça plus tard






Avatar
j-pascal
Oups, mon code est dans un module de feuille (qui n'est pas la dernière
feuille ...)

Dommage que VBA ne soit pas plus explicite sur la nature des erreurs
;-)

Bonjour,

Ce code n'est pas complet, ou le "End With" est de trop.
Ceci efface le contenu des plages " A16:G600,L16:M600,O16:O600" de la
dernière feuille du classeur actif (sans selection)

Sheets(Worksheets.Count).Range("A16:G600,L16:M600,O16:O600").ClearContents

--
Salutations
JJ


"j-pascal" a écrit dans le message de news:

Bonjour,

Je ne comprends pas pourquoi j'ai le message ci-dessus pour ce bout de code
:

Sheets(Worksheets.Count).Select
Range("A16:G600,L16:M600,O16:O600").Select
'Selection.ClearContents
End With


Merci pour vos lumières,

JP

PS : Je sais qu'il faut limiter les "Select", mais je vois ça plus tard






Avatar
FFO
Salut Pascal

Ce code fonctionne trés bien chez moi
Prend un classeur tout neuf et refais des essais avec ce code

Dis nous !!!!!
Avatar
j-pascal
Bonjour MichDenis,

C'est noté, merci.

JP

Bonjour J-Pascal,

Si tu utilisais ce type de syntaxe, tu pourrais écrire ton code
de la même manière que ce dernier soit dans un module standard
ou un module feuille. Il est en plus facile à lire.

with Sheets(Worksheets.Count)
with .Range("A16:G600,L16:M600,O16:O600")
.ClearContents
End With
End With

Il est préférable de remplacer ceci : Sheets(Worksheets.Count)
par la propriété "Name" de l'objet "Feuille" présent dans la
fenêtre de l'éditeur de code. Le code devient :

with Feuil4 'Ou autre
with .Range("A16:G600,L16:M600,O16:O600")
.ClearContents
End With
End With

Cette façon d'écrire rend ton code à l'épreuve de la modification
de l'ordre des feuilles ou de leur nom d'onglet de feuille.




"j-pascal" a écrit dans le message de groupe de
discussion : Bonjour,

Je ne comprends pas pourquoi j'ai le message ci-dessus pour ce bout de
code :

Sheets(Worksheets.Count).Select
Range("A16:G600,L16:M600,O16:O600").Select
'Selection.ClearContents
End With


Merci pour vos lumières,

JP

PS : Je sais qu'il faut limiter les "Select", mais je vois ça plus tard