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

Message d'erreur a l execution d'une macro

18 réponses
Avatar
PG49
Bonjour,

Je ne comprends pas pourquoi :
Ma macro s'execute correctement en temps normal.
Mais si j'active la macro complémentaire Utilitaire d'analyse (pour utiliser
la fonction mois.decaler()) le message d'erreur apparait sur la ligne de
code :

MAJBD.Range("X2:X7,AA2:AA7").Select

Erreur d'execution '1004' :
La méthode 'Range' de l'objet '_Worksheet' a échoué

Si je rentre en déboguage et pousuit la macro par F5 cela se passe bien

MAJBD est le nom de la feuille.

D'ou provient ce blocage ?

(Excel 2003 et windoxs XP pro)

MERCI
--
.

8 réponses

1 2
Avatar
MichDenis
Si tu as une feuille qui a comme propriété "Name" dans la fenêtre
de l'éditeur de code "MAJBD", si le code que je t'ai proposé
ne fonctionne pas, retourne ton Excel à Microsoft !



"PG49" a écrit dans le message de news:
Toujours Hélas
L'arret se fait sur la ligne
.Range("X2:X7,AA2:AA7").Select

MERCI


"MichDenis" a écrit dans le message de news:

With MAJBD
.select
.Range("X2:X7,AA2:AA7").Select
End with





"PG49" a écrit dans le message de news:

Bonjour,

Je ne comprends pas pourquoi :
Ma macro s'execute correctement en temps normal.
Mais si j'active la macro complémentaire Utilitaire d'analyse (pour
utiliser
la fonction mois.decaler()) le message d'erreur apparait sur la ligne de
code :

MAJBD.Range("X2:X7,AA2:AA7").Select

Erreur d'execution '1004' :
La méthode 'Range' de l'objet '_Worksheet' a échoué

Si je rentre en déboguage et pousuit la macro par F5 cela se passe bien

MAJBD est le nom de la feuille.

D'ou provient ce blocage ?

(Excel 2003 et windoxs XP pro)

MERCI
--
.





Avatar
PG49
SI SI j'ai bien une feuille qui a comme propriété "Name" dans la fenêtre
de l'éditeur de code "MAJBD" (sans les " ")


"MichDenis" a écrit dans le message de news:

Si tu as une feuille qui a comme propriété "Name" dans la fenêtre
de l'éditeur de code "MAJBD", si le code que je t'ai proposé
ne fonctionne pas, retourne ton Excel à Microsoft !



"PG49" a écrit dans le message de news:

Toujours Hélas
L'arret se fait sur la ligne
.Range("X2:X7,AA2:AA7").Select

MERCI


"MichDenis" a écrit dans le message de news:

With MAJBD
.select
.Range("X2:X7,AA2:AA7").Select
End with





"PG49" a écrit dans le message de news:

Bonjour,

Je ne comprends pas pourquoi :
Ma macro s'execute correctement en temps normal.
Mais si j'active la macro complémentaire Utilitaire d'analyse (pour
utiliser
la fonction mois.decaler()) le message d'erreur apparait sur la ligne de
code :

MAJBD.Range("X2:X7,AA2:AA7").Select

Erreur d'execution '1004' :
La méthode 'Range' de l'objet '_Worksheet' a échoué

Si je rentre en déboguage et pousuit la macro par F5 cela se passe bien

MAJBD est le nom de la feuille.

D'ou provient ce blocage ?

(Excel 2003 et windoxs XP pro)

MERCI
--
.










Avatar
Modeste
Bonsour® PG49 avec ferveur ;o))) vous nous disiez :

SI SI j'ai bien une feuille qui a comme propriété "Name" dans la
fenêtre de l'éditeur de code "MAJBD" (sans les " ")

"MichDenis" a écrit dans le message de news:

Si tu as une feuille qui a comme propriété "Name" dans la fenêtre
de l'éditeur de code "MAJBD", si le code que je t'ai proposé
ne fonctionne pas, retourne ton Excel à Microsoft !

"PG49" a écrit dans le message de news:

Toujours Hélas
L'arret se fait sur la ligne
.Range("X2:X7,AA2:AA7").Select



comme l'a précisé "Michel" ;o)))
il faut nécessairement que la feuille MAJBD soit selectionnée ou activée

Propriété Range telle qu'elle s'applique aux objets Application, Range et
Worksheet.
Cette propriété renvoie un objet Range qui représente une cellule ou une plage
de cellules.
expression.Range(Cell1, Cell2)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
expression Obligatoire. Expression qui renvoie un des objets ci-dessus.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

assurement ce code fonctionne !!!!
With MAJBD
.Activate
.Range("X2:X7,AA2:AA7").Select
End With

@+
;o)))


Avatar
PG49
Oui le code fonctionne quand la macro complémentaire utilitaire d'analyse
n'ai pas activé
Mais quand cette dernière est activée il se passe le phénomène étrange que :
le message d'erreur suivant apparait
Erreur d'execution '1004' :
La méthode 'Range' de l'objet '_Worksheet' a échoué
Mais si on poursuit la macro celle ci continue normalement
En fait c'est comme si il y avait un point d'arret sur cette ligne (avec le
message d'erreur en prime) quand la macro complémentaire utilitaire
d'analyse ai activé.



"Modeste" a écrit dans le message de news:
uo$W7$
Bonsour® PG49 avec ferveur ;o))) vous nous disiez :

SI SI j'ai bien une feuille qui a comme propriété "Name" dans la
fenêtre de l'éditeur de code "MAJBD" (sans les " ")

"MichDenis" a écrit dans le message de news:

Si tu as une feuille qui a comme propriété "Name" dans la fenêtre
de l'éditeur de code "MAJBD", si le code que je t'ai proposé
ne fonctionne pas, retourne ton Excel à Microsoft !

"PG49" a écrit dans le message de news:

Toujours Hélas
L'arret se fait sur la ligne
.Range("X2:X7,AA2:AA7").Select



comme l'a précisé "Michel" ;o)))
il faut nécessairement que la feuille MAJBD soit selectionnée ou activée

Propriété Range telle qu'elle s'applique aux objets Application, Range et
Worksheet.
Cette propriété renvoie un objet Range qui représente une cellule ou une
plage de cellules.
expression.Range(Cell1, Cell2)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
expression Obligatoire. Expression qui renvoie un des objets
ci-dessus.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

assurement ce code fonctionne !!!!
With MAJBD
.Activate
.Range("X2:X7,AA2:AA7").Select
End With

@+
;o)))





Avatar
MichDenis
Publie ici même la totalité de ta macro.



"PG49" a écrit dans le message de news: %
Oui le code fonctionne quand la macro complémentaire utilitaire d'analyse
n'ai pas activé
Mais quand cette dernière est activée il se passe le phénomène étrange que :
le message d'erreur suivant apparait
Erreur d'execution '1004' :
La méthode 'Range' de l'objet '_Worksheet' a échoué
Mais si on poursuit la macro celle ci continue normalement
En fait c'est comme si il y avait un point d'arret sur cette ligne (avec le
message d'erreur en prime) quand la macro complémentaire utilitaire
d'analyse ai activé.



"Modeste" a écrit dans le message de news:
uo$W7$
Bonsour® PG49 avec ferveur ;o))) vous nous disiez :

SI SI j'ai bien une feuille qui a comme propriété "Name" dans la
fenêtre de l'éditeur de code "MAJBD" (sans les " ")

"MichDenis" a écrit dans le message de news:

Si tu as une feuille qui a comme propriété "Name" dans la fenêtre
de l'éditeur de code "MAJBD", si le code que je t'ai proposé
ne fonctionne pas, retourne ton Excel à Microsoft !

"PG49" a écrit dans le message de news:

Toujours Hélas
L'arret se fait sur la ligne
.Range("X2:X7,AA2:AA7").Select



comme l'a précisé "Michel" ;o)))
il faut nécessairement que la feuille MAJBD soit selectionnée ou activée

Propriété Range telle qu'elle s'applique aux objets Application, Range et
Worksheet.
Cette propriété renvoie un objet Range qui représente une cellule ou une
plage de cellules.
expression.Range(Cell1, Cell2)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
expression Obligatoire. Expression qui renvoie un des objets
ci-dessus.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

assurement ce code fonctionne !!!!
With MAJBD
.Activate
.Range("X2:X7,AA2:AA7").Select
End With

@+
;o)))





Avatar
PG49
Je ne l'ai pas ici mais je ferais cela demain

Merci à tous pour votre aide


"MichDenis" a écrit dans le message de news:

Publie ici même la totalité de ta macro.



"PG49" a écrit dans le message de news:
%
Oui le code fonctionne quand la macro complémentaire utilitaire d'analyse
n'ai pas activé
Mais quand cette dernière est activée il se passe le phénomène étrange que
:
le message d'erreur suivant apparait
Erreur d'execution '1004' :
La méthode 'Range' de l'objet '_Worksheet' a échoué
Mais si on poursuit la macro celle ci continue normalement
En fait c'est comme si il y avait un point d'arret sur cette ligne (avec
le
message d'erreur en prime) quand la macro complémentaire utilitaire
d'analyse ai activé.



"Modeste" a écrit dans le message de news:
uo$W7$
Bonsour® PG49 avec ferveur ;o))) vous nous disiez :

SI SI j'ai bien une feuille qui a comme propriété "Name" dans la
fenêtre de l'éditeur de code "MAJBD" (sans les " ")

"MichDenis" a écrit dans le message de news:

Si tu as une feuille qui a comme propriété "Name" dans la fenêtre
de l'éditeur de code "MAJBD", si le code que je t'ai proposé
ne fonctionne pas, retourne ton Excel à Microsoft !

"PG49" a écrit dans le message de news:

Toujours Hélas
L'arret se fait sur la ligne
.Range("X2:X7,AA2:AA7").Select



comme l'a précisé "Michel" ;o)))
il faut nécessairement que la feuille MAJBD soit selectionnée ou activée

Propriété Range telle qu'elle s'applique aux objets Application, Range et
Worksheet.
Cette propriété renvoie un objet Range qui représente une cellule ou une
plage de cellules.
expression.Range(Cell1, Cell2)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
expression Obligatoire. Expression qui renvoie un des objets
ci-dessus.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

assurement ce code fonctionne !!!!
With MAJBD
.Activate
.Range("X2:X7,AA2:AA7").Select
End With

@+
;o)))










Avatar
PG49
Voici le code

Sub conv(rows, resultat)
numconv = 1
While MAJBD.Cells(CStr(numconv + 1), 20) > 0
Sheets("MAJBD").Activate
' MAJBD.Range("X2:X7,AA2:AA7").Select
Sheets("MAJBD").Range("X2:X7,AA2:AA7").Select
rech = "conv" & CStr(numconv - 1)
remp = "conv" & CStr(numconv)
Selection.Replace What:=rech, Replacement:=remp, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
MAJBD.Range("X2:X7,AA2:AA7").Calculate
For gab1 = 2 To 7
A = Replace(MAJBD.Cells(CStr(gab1), 24), "'", "'")
majcli MAJBD.Cells(2, 22), MAJBD.Cells(CStr(gab1), 23), A,
MAJBD.Cells(2, 25), MAJBD.Cells(CStr(numconv + 1), 19), rows, resultat
Next
For pal = 2 To 5
If MAJBD.Cells(CStr(pal), 27) > 0 Then
requete = "SELECT cidcon, cidpac FROM con_pac WHERE cidcon =
" + CStr(MAJBD.Cells(CStr(numconv + 1), 19)) + " AND cidpac = " +
CStr(MAJBD.Cells(CStr(pal), 27))
Set rows = resultat.Execute(requete)
If Not rows.EOF Then
pol = 1
Else
Requete2 = "insert into con_pac (cidcon, cidpac) values
('" + CStr(MAJBD.Cells(CStr(numconv + 1), 19)) + "'," +
CStr(MAJBD.Cells(CStr(pal), 27)) + ")"
Set rows = resultat.Execute(Requete2)
End If
End If
Next
numconv = numconv + 1
Wend
MAJBD.Range("X2:X7,AA2:AA7").Select
Selection.Replace What:=remp, Replacement:="conv0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Sheets("MAJBD").Activate
numpalas = 1
End Sub



"MichDenis" a écrit dans le message de news:

Publie ici même la totalité de ta macro.



"PG49" a écrit dans le message de news:
%
Oui le code fonctionne quand la macro complémentaire utilitaire d'analyse
n'ai pas activé
Mais quand cette dernière est activée il se passe le phénomène étrange que
:
le message d'erreur suivant apparait
Erreur d'execution '1004' :
La méthode 'Range' de l'objet '_Worksheet' a échoué
Mais si on poursuit la macro celle ci continue normalement
En fait c'est comme si il y avait un point d'arret sur cette ligne (avec
le
message d'erreur en prime) quand la macro complémentaire utilitaire
d'analyse ai activé.



"Modeste" a écrit dans le message de news:
uo$W7$
Bonsour® PG49 avec ferveur ;o))) vous nous disiez :

SI SI j'ai bien une feuille qui a comme propriété "Name" dans la
fenêtre de l'éditeur de code "MAJBD" (sans les " ")

"MichDenis" a écrit dans le message de news:

Si tu as une feuille qui a comme propriété "Name" dans la fenêtre
de l'éditeur de code "MAJBD", si le code que je t'ai proposé
ne fonctionne pas, retourne ton Excel à Microsoft !

"PG49" a écrit dans le message de news:

Toujours Hélas
L'arret se fait sur la ligne
.Range("X2:X7,AA2:AA7").Select



comme l'a précisé "Michel" ;o)))
il faut nécessairement que la feuille MAJBD soit selectionnée ou activée

Propriété Range telle qu'elle s'applique aux objets Application, Range et
Worksheet.
Cette propriété renvoie un objet Range qui représente une cellule ou une
plage de cellules.
expression.Range(Cell1, Cell2)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
expression Obligatoire. Expression qui renvoie un des objets
ci-dessus.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

assurement ce code fonctionne !!!!
With MAJBD
.Activate
.Range("X2:X7,AA2:AA7").Select
End With

@+
;o)))










Avatar
MichDenis
Dans ton code, tu utilises ceci :

While MAJBD.Cells(CStr(numconv + 1), 20) > 0
Sheets("MAJBD").Activate

Est-que tu as un onglet d'une feuille de calcul dans classeur
qui se nomme : "MAJBD" ?
Sheets("MAJBD").Activate
Cette syntaxe a besoin du nom de l'onglet de la feuille



Est-que tu as une feuille de calcul dont la propriété "Name" dans
la feuille de l'éditeur de code est "MAJDB" ?
MAJBD.Cells(CStr(numconv + 1), 20) > 0

Cette syntaxe a besoin du nom de la propriété "Name" vu dans l'éditeur
de code. Tu aurais tout intérêt à utiliser ce type de syntaxe dans tout
ton code car elle ne depend pas de l'interface de la feuille de calcul et
de ce fait, même si l'usager modifie le nom de l'onglet de la feuille, cela
ne change rien concernant l'exécution de la macro.


Dans les 2 cas, es-tu sûr que tu désignes la même feuille ?





"PG49" a écrit dans le message de news: %
Voici le code

Sub conv(rows, resultat)
numconv = 1
While MAJBD.Cells(CStr(numconv + 1), 20) > 0
Sheets("MAJBD").Activate
' MAJBD.Range("X2:X7,AA2:AA7").Select
Sheets("MAJBD").Range("X2:X7,AA2:AA7").Select
rech = "conv" & CStr(numconv - 1)
remp = "conv" & CStr(numconv)
Selection.Replace What:=rech, Replacement:=remp, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
MAJBD.Range("X2:X7,AA2:AA7").Calculate
For gab1 = 2 To 7
A = Replace(MAJBD.Cells(CStr(gab1), 24), "'", "'")
majcli MAJBD.Cells(2, 22), MAJBD.Cells(CStr(gab1), 23), A,
MAJBD.Cells(2, 25), MAJBD.Cells(CStr(numconv + 1), 19), rows, resultat
Next
For pal = 2 To 5
If MAJBD.Cells(CStr(pal), 27) > 0 Then
requete = "SELECT cidcon, cidpac FROM con_pac WHERE cidcon " + CStr(MAJBD.Cells(CStr(numconv + 1), 19)) + " AND cidpac = " +
CStr(MAJBD.Cells(CStr(pal), 27))
Set rows = resultat.Execute(requete)
If Not rows.EOF Then
pol = 1
Else
Requete2 = "insert into con_pac (cidcon, cidpac) values
('" + CStr(MAJBD.Cells(CStr(numconv + 1), 19)) + "'," +
CStr(MAJBD.Cells(CStr(pal), 27)) + ")"
Set rows = resultat.Execute(Requete2)
End If
End If
Next
numconv = numconv + 1
Wend
MAJBD.Range("X2:X7,AA2:AA7").Select
Selection.Replace What:=remp, Replacement:="conv0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Sheets("MAJBD").Activate
numpalas = 1
End Sub



"MichDenis" a écrit dans le message de news:

Publie ici même la totalité de ta macro.



"PG49" a écrit dans le message de news:
%
Oui le code fonctionne quand la macro complémentaire utilitaire d'analyse
n'ai pas activé
Mais quand cette dernière est activée il se passe le phénomène étrange que
:
le message d'erreur suivant apparait
Erreur d'execution '1004' :
La méthode 'Range' de l'objet '_Worksheet' a échoué
Mais si on poursuit la macro celle ci continue normalement
En fait c'est comme si il y avait un point d'arret sur cette ligne (avec
le
message d'erreur en prime) quand la macro complémentaire utilitaire
d'analyse ai activé.



"Modeste" a écrit dans le message de news:
uo$W7$
Bonsour® PG49 avec ferveur ;o))) vous nous disiez :

SI SI j'ai bien une feuille qui a comme propriété "Name" dans la
fenêtre de l'éditeur de code "MAJBD" (sans les " ")

"MichDenis" a écrit dans le message de news:

Si tu as une feuille qui a comme propriété "Name" dans la fenêtre
de l'éditeur de code "MAJBD", si le code que je t'ai proposé
ne fonctionne pas, retourne ton Excel à Microsoft !

"PG49" a écrit dans le message de news:

Toujours Hélas
L'arret se fait sur la ligne
.Range("X2:X7,AA2:AA7").Select



comme l'a précisé "Michel" ;o)))
il faut nécessairement que la feuille MAJBD soit selectionnée ou activée

Propriété Range telle qu'elle s'applique aux objets Application, Range et
Worksheet.
Cette propriété renvoie un objet Range qui représente une cellule ou une
plage de cellules.
expression.Range(Cell1, Cell2)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
expression Obligatoire. Expression qui renvoie un des objets
ci-dessus.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

assurement ce code fonctionne !!!!
With MAJBD
.Activate
.Range("X2:X7,AA2:AA7").Select
End With

@+
;o)))










1 2