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

Erreur 1004 - Application-defined error or object-defined error

8 réponses
Avatar
Joner
Bonjour à tous

Est-ce quelqu'un pourrait me dire pourquoi cette macro toute simple génère
ce code d'erreur lorsqu'elle arrive sur la 4e ligne...

Sheets.Add
ActiveSheet.Name = "Traitement"
Sheets("Traitement").Select
Range("A1").Select

Je suppose que c'est le ActiveSheet qui pose problème car si je mets
ActiveSheet.Range("A1").select cela fonctionne bien.

8 réponses

Avatar
Joner
Oups j'ai cliqué un peu trop vite sur envoyer...

En fait quand on fait Sheets.add, il crée une feuille qui s'appelle
"Sheet2", puis "Sheet3" et ainsi de suite si on exécute la macro plusieurs
fois dans la même session. Le seul moyen de lui dire que j'aimerais changer
le nom de la feuille qu'il vient de créer est justement d'utiliser
ActiveSheet...

Merci à tous de votre aide et bonne fin de journée

Vincent




Bonjour à tous

Est-ce quelqu'un pourrait me dire pourquoi cette macro toute simple génère
ce code d'erreur lorsqu'elle arrive sur la 4e ligne...

Sheets.Add
ActiveSheet.Name = "Traitement"
Sheets("Traitement").Select
Range("A1").Select

Je suppose que c'est le ActiveSheet qui pose problème car si je mets
ActiveSheet.Range("A1").select cela fonctionne bien.




Avatar
isabelle
bonjour Vincent,

la macro est t'elle exécutée via un bouton de control ?

isabelle


Oups j'ai cliqué un peu trop vite sur envoyer...

En fait quand on fait Sheets.add, il crée une feuille qui s'appelle
"Sheet2", puis "Sheet3" et ainsi de suite si on exécute la macro plusieurs
fois dans la même session. Le seul moyen de lui dire que j'aimerais changer
le nom de la feuille qu'il vient de créer est justement d'utiliser
ActiveSheet...

Merci à tous de votre aide et bonne fin de journée

Vincent





Bonjour à tous

Est-ce quelqu'un pourrait me dire pourquoi cette macro toute simple génère
ce code d'erreur lorsqu'elle arrive sur la 4e ligne...

Sheets.Add
ActiveSheet.Name = "Traitement"
Sheets("Traitement").Select
Range("A1").Select

Je suppose que c'est le ActiveSheet qui pose problème car si je mets
ActiveSheet.Range("A1").select cela fonctionne bien.






Avatar
Joner
Tu veux parler de ça: Private Sub CommandButton1_Click() ?

Oui c'est prévu comme ça pour après mais pour l'instant je la teste depuis
l'éditeur VBA et j'emploie le triangle vert "run"


bonjour Vincent,

la macro est t'elle exécutée via un bouton de control ?

isabelle


Oups j'ai cliqué un peu trop vite sur envoyer...

En fait quand on fait Sheets.add, il crée une feuille qui s'appelle
"Sheet2", puis "Sheet3" et ainsi de suite si on exécute la macro plusieurs
fois dans la même session. Le seul moyen de lui dire que j'aimerais changer
le nom de la feuille qu'il vient de créer est justement d'utiliser
ActiveSheet...

Merci à tous de votre aide et bonne fin de journée

Vincent





Bonjour à tous

Est-ce quelqu'un pourrait me dire pourquoi cette macro toute simple génère
ce code d'erreur lorsqu'elle arrive sur la 4e ligne...

Sheets.Add
ActiveSheet.Name = "Traitement"
Sheets("Traitement").Select
Range("A1").Select

Je suppose que c'est le ActiveSheet qui pose problème car si je mets
ActiveSheet.Range("A1").select cela fonctionne bien.









Avatar
FFO
Salut Joner

dans ta Macro tu demandes à créer une feuille que tu renome "Traitement"
Mais si tu l'actives 2 fois tu vas créer et demander de renommer 2 feuilles
avec le même nom d'ou le message d'erreur la 2° fois

Je te propose dans le même esprit mais sans renomer les feuilles le code
suivant :

Sheets.Add
Onglet = ActiveSheet.Name
Sheets(Onglet).Select
Range("A1").Select

Si tu souhaites maintenant les renomer il faut déterminer des noms
différents avec une structure déterminées que l'on pourrait intégrer dans le
code le but étant d'éviter 2 noms identiques

Dis mois !!!

Oups j'ai cliqué un peu trop vite sur envoyer...

En fait quand on fait Sheets.add, il crée une feuille qui s'appelle
"Sheet2", puis "Sheet3" et ainsi de suite si on exécute la macro plusieurs
fois dans la même session. Le seul moyen de lui dire que j'aimerais changer
le nom de la feuille qu'il vient de créer est justement d'utiliser
ActiveSheet...

Merci à tous de votre aide et bonne fin de journée

Vincent




Bonjour à tous

Est-ce quelqu'un pourrait me dire pourquoi cette macro toute simple génère
ce code d'erreur lorsqu'elle arrive sur la 4e ligne...

Sheets.Add
ActiveSheet.Name = "Traitement"
Sheets("Traitement").Select
Range("A1").Select

Je suppose que c'est le ActiveSheet qui pose problème car si je mets
ActiveSheet.Range("A1").select cela fonctionne bien.






Avatar
Joner
FFO le problème ne vient pas de là car chaque fois que je relance la macro
pour ces tests, j'efface d'abord la feuille Traitement.

Mon problème est que j'aimerais éviter d'ajouter ActiveSheet. à chaque ligne
de ma macro car elle est longue...


Salut Joner

dans ta Macro tu demandes à créer une feuille que tu renome "Traitement"
Mais si tu l'actives 2 fois tu vas créer et demander de renommer 2 feuilles
avec le même nom d'ou le message d'erreur la 2° fois

Je te propose dans le même esprit mais sans renomer les feuilles le code
suivant :

Sheets.Add
Onglet = ActiveSheet.Name
Sheets(Onglet).Select
Range("A1").Select

Si tu souhaites maintenant les renomer il faut déterminer des noms
différents avec une structure déterminées que l'on pourrait intégrer dans le
code le but étant d'éviter 2 noms identiques

Dis mois !!!

Oups j'ai cliqué un peu trop vite sur envoyer...

En fait quand on fait Sheets.add, il crée une feuille qui s'appelle
"Sheet2", puis "Sheet3" et ainsi de suite si on exécute la macro plusieurs
fois dans la même session. Le seul moyen de lui dire que j'aimerais changer
le nom de la feuille qu'il vient de créer est justement d'utiliser
ActiveSheet...

Merci à tous de votre aide et bonne fin de journée

Vincent




Bonjour à tous

Est-ce quelqu'un pourrait me dire pourquoi cette macro toute simple génère
ce code d'erreur lorsqu'elle arrive sur la 4e ligne...

Sheets.Add
ActiveSheet.Name = "Traitement"
Sheets("Traitement").Select
Range("A1").Select

Je suppose que c'est le ActiveSheet qui pose problème car si je mets
ActiveSheet.Range("A1").select cela fonctionne bien.








Avatar
isabelle
bonjour ,

remplace ces deux lignes

Sheets("Traitement").Select
Range("A1").Select

par

Application.Goto Sheets("Traitement").Range("A1")

isabelle


FFO le problème ne vient pas de là car chaque fois que je relance la macro
pour ces tests, j'efface d'abord la feuille Traitement.

Mon problème est que j'aimerais éviter d'ajouter ActiveSheet. à chaque ligne
de ma macro car elle est longue...



Salut Joner

dans ta Macro tu demandes à créer une feuille que tu renome "Traitement"
Mais si tu l'actives 2 fois tu vas créer et demander de renommer 2 feuilles
avec le même nom d'ou le message d'erreur la 2° fois

Je te propose dans le même esprit mais sans renomer les feuilles le code
suivant :

Sheets.Add
Onglet = ActiveSheet.Name
Sheets(Onglet).Select
Range("A1").Select

Si tu souhaites maintenant les renomer il faut déterminer des noms
différents avec une structure déterminées que l'on pourrait intégrer dans le
code le but étant d'éviter 2 noms identiques

Dis mois !!!


Oups j'ai cliqué un peu trop vite sur envoyer...

En fait quand on fait Sheets.add, il crée une feuille qui s'appelle
"Sheet2", puis "Sheet3" et ainsi de suite si on exécute la macro plusieurs
fois dans la même session. Le seul moyen de lui dire que j'aimerais changer
le nom de la feuille qu'il vient de créer est justement d'utiliser
ActiveSheet...

Merci à tous de votre aide et bonne fin de journée

Vincent





Bonjour à tous

Est-ce quelqu'un pourrait me dire pourquoi cette macro toute simple génère
ce code d'erreur lorsqu'elle arrive sur la 4e ligne...

Sheets.Add
ActiveSheet.Name = "Traitement"
Sheets("Traitement").Select
Range("A1").Select

Je suppose que c'est le ActiveSheet qui pose problème car si je mets
ActiveSheet.Range("A1").select cela fonctionne bien.










Avatar
FFO
Je ne comprends pas ton objectif et pourquoi tu dois répéter ActiveSheet
De quelle ligne tu parles
Merci pour les précisions


FFO le problème ne vient pas de là car chaque fois que je relance la macro
pour ces tests, j'efface d'abord la feuille Traitement.

Mon problème est que j'aimerais éviter d'ajouter ActiveSheet. à chaque ligne
de ma macro car elle est longue...


Salut Joner

dans ta Macro tu demandes à créer une feuille que tu renome "Traitement"
Mais si tu l'actives 2 fois tu vas créer et demander de renommer 2 feuilles
avec le même nom d'ou le message d'erreur la 2° fois

Je te propose dans le même esprit mais sans renomer les feuilles le code
suivant :

Sheets.Add
Onglet = ActiveSheet.Name
Sheets(Onglet).Select
Range("A1").Select

Si tu souhaites maintenant les renomer il faut déterminer des noms
différents avec une structure déterminées que l'on pourrait intégrer dans le
code le but étant d'éviter 2 noms identiques

Dis mois !!!

Oups j'ai cliqué un peu trop vite sur envoyer...

En fait quand on fait Sheets.add, il crée une feuille qui s'appelle
"Sheet2", puis "Sheet3" et ainsi de suite si on exécute la macro plusieurs
fois dans la même session. Le seul moyen de lui dire que j'aimerais changer
le nom de la feuille qu'il vient de créer est justement d'utiliser
ActiveSheet...

Merci à tous de votre aide et bonne fin de journée

Vincent




Bonjour à tous

Est-ce quelqu'un pourrait me dire pourquoi cette macro toute simple génère
ce code d'erreur lorsqu'elle arrive sur la 4e ligne...

Sheets.Add
ActiveSheet.Name = "Traitement"
Sheets("Traitement").Select
Range("A1").Select

Je suppose que c'est le ActiveSheet qui pose problème car si je mets
ActiveSheet.Range("A1").select cela fonctionne bien.










Avatar
bonero
FdeCourt a écrit le 25/03/2010 à 11h31 :
Salut,

Effectivement, il s'agit probablement d'un bug de l'enregistreur de
macro. Sous Excel 2000, il y a la même anomalie.
Pour que ta macro fonctionne, il suffit juste de mettre les bonne
référence en formula1 et 2 ("¶" et "Ç")

Cordialement,

F.


merci FdeCourt pour t reponse,
ce probleme de rien du tout a failli me rendre fou hier.lol
j etais persuade d avoir fait la bonne chose.
mais en meme temps je ne voulais pas trop vite accuser le logiciel.
maintenant je sais que VBA aussi `PEUT` avoir TORT. lol

thanks a lot and have a nice day