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

Le
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.
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
Joner
Le #4460401
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.




isabelle
Le #4460371
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.






FFO
Le #4460361
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.






Joner
Le #4484671
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.









Joner
Le #4484641
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.








isabelle
Le #4484571
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.










FFO
Le #4484531
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.










bonero
Le #21436741
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
Publicité
Poster une réponse
Anonyme