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

Macro en VBA qui plante parfois sur une instruction

12 réponses
Avatar
luc
Bonjour,

J'ai une macro en VBA qui plante parfois sur une instruction.

Cette macro copie une feuille "Bilan_001" en autant de nouvelles feuilles
que d'entités se trouvant dans la feuille "calendar".

Parfois la macro va jusqu'au bout, mais la plupart du remps, elle s'arrête
sur l'instruction Shxx.Copy After:=Sheets(j)

Je ne comprends pas pourquoi.

Si je relance la macro après avoir supprimé les feuilles créées, ca plante
dès le départ ! Si je ferme puis réouvre la feuille excel , la macro va
plus loin et crée une trentaine de feuilles (la macro devrait en créer 62)

Le message d'erreur est "La méthod copy de la classe worksheet a échoué"

Merci pour vos conseils

Le code :


Sub Creation_Balance_sheet_spreadsheet()

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String

Set Sh = ActiveWorkbook.Worksheets("Calendar")
Set Shxx = ActiveWorkbook.Worksheets("Bilan_001")

j = Shxx.Index

Application.ScreenUpdating = False

For i = 16 To Sh.Range("A65535").End(xlUp).Row

Entity_id = Sh.Cells(i, 1).Value
Shxx.Activate
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
Sheets(j + 1).Cells(15, 3).Value = Entity_id
Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j +
1).Name
Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" &
Entity_id
Sheets(j + 1).Visible = True
j = j + 1

Next i

Application.ScreenUpdating = True

End Sub

10 réponses

1 2
Avatar
LSteph
Bonsoir,


Ce que tu décris est un bug référencé d'excel97

---------
hors propos:

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String


seul j est integer, i est variant et devrait être as long si on veut
pouvoir dépasser la moitié des lignes d'une feuille mais faut l'écrire
de même seule Shyy est As Worksheet
si tu écris
dim var1, var2,var3,var4,...var180 as String
seul var180 est as string
----------
Pour revenir à la question

Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet:

Feuil1
Feuil11
Feuil111
Feuil1111
Feuil11111
..
Feuil11111111111111111111111111111

C'est là que ça craque!

type de solution qui serait à posteriori

Dim i as integer, ws as Worksheet
'...

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

Je te laisse donc mettre au point la Solution a priori, si tu as du mal,
il doit y avoir cela sur excelabo.

Cordialement.

lSteph


Bonjour,

J'ai une macro en VBA qui plante parfois sur une instruction.

Cette macro copie une feuille "Bilan_001" en autant de nouvelles feuilles
que d'entités se trouvant dans la feuille "calendar".

Parfois la macro va jusqu'au bout, mais la plupart du remps, elle s'arrête
sur l'instruction Shxx.Copy After:=Sheets(j)

Je ne comprends pas pourquoi.

Si je relance la macro après avoir supprimé les feuilles créées, ca plante
dès le départ ! Si je ferme puis réouvre la feuille excel , la macro va
plus loin et crée une trentaine de feuilles (la macro devrait en créer 62)

Le message d'erreur est "La méthod copy de la classe worksheet a échoué"

Merci pour vos conseils

Le code :


Sub Creation_Balance_sheet_spreadsheet()

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String

Set Sh = ActiveWorkbook.Worksheets("Calendar")
Set Shxx = ActiveWorkbook.Worksheets("Bilan_001")

j = Shxx.Index

Application.ScreenUpdating = False

For i = 16 To Sh.Range("A65535").End(xlUp).Row

Entity_id = Sh.Cells(i, 1).Value
Shxx.Activate
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
Sheets(j + 1).Cells(15, 3).Value = Entity_id
Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j +
1).Name
Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" &
Entity_id
Sheets(j + 1).Visible = True
j = j + 1

Next i

Application.ScreenUpdating = True

End Sub




Avatar
luc
ok merci

mais que va faire :

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

????

en ajout dans mon code?

aucune feuille ne se nomme Feuil11111 apres lancement de la macro.. elles
ont toutes le nom que je veux leur donner, jusqu'à que cela plante

merci



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

Bonsoir,


Ce que tu décris est un bug référencé d'excel97

---------
hors propos:

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String


seul j est integer, i est variant et devrait être as long si on veut
pouvoir dépasser la moitié des lignes d'une feuille mais faut l'écrire
de même seule Shyy est As Worksheet
si tu écris
dim var1, var2,var3,var4,...var180 as String
seul var180 est as string
----------
Pour revenir à la question

Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet:

Feuil1
Feuil11
Feuil111
Feuil1111
Feuil11111
..
Feuil11111111111111111111111111111

C'est là que ça craque!

type de solution qui serait à posteriori

Dim i as integer, ws as Worksheet
'...

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

Je te laisse donc mettre au point la Solution a priori, si tu as du mal,
il doit y avoir cela sur excelabo.

Cordialement.

lSteph


Bonjour,

J'ai une macro en VBA qui plante parfois sur une instruction.

Cette macro copie une feuille "Bilan_001" en autant de nouvelles feuilles
que d'entités se trouvant dans la feuille "calendar".

Parfois la macro va jusqu'au bout, mais la plupart du remps, elle s'arrête
sur l'instruction Shxx.Copy After:=Sheets(j)

Je ne comprends pas pourquoi.

Si je relance la macro après avoir supprimé les feuilles créées, ca plante
dès le départ ! Si je ferme puis réouvre la feuille excel , la macro va
plus loin et crée une trentaine de feuilles (la macro devrait en créer 62)

Le message d'erreur est "La méthod copy de la classe worksheet a échoué"

Merci pour vos conseils

Le code :


Sub Creation_Balance_sheet_spreadsheet()

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String

Set Sh = ActiveWorkbook.Worksheets("Calendar")
Set Shxx = ActiveWorkbook.Worksheets("Bilan_001")

j = Shxx.Index

Application.ScreenUpdating = False

For i = 16 To Sh.Range("A65535").End(xlUp).Row

Entity_id = Sh.Cells(i, 1).Value
Shxx.Activate
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
Sheets(j + 1).Cells(15, 3).Value = Entity_id
Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j +
1).Name
Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" &
Entity_id
Sheets(j + 1).Visible = True
j = j + 1

Next i

Application.ScreenUpdating = True

End Sub




Avatar
LSteph
...je voyais cette hypothèse:
Ce que tu décris est un bug référencé d'excel97
d'abord est-ce le cas?



pour vérifier je te suggérais
Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet
................................dans l'explorateur de projet
Feuil1
Feuil11
Feuil111
Feuil1111




Si c'est ce que tu as fait et que le cas soit différent oublies cette
proposition.

@+

lSteph

ok merci

mais que va faire :

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

????

en ajout dans mon code?

aucune feuille ne se nomme Feuil11111 apres lancement de la macro.. elles
ont toutes le nom que je veux leur donner, jusqu'à que cela plante

merci



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

Bonsoir,


Ce que tu décris est un bug référencé d'excel97

---------
hors propos:

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String


seul j est integer, i est variant et devrait être as long si on veut
pouvoir dépasser la moitié des lignes d'une feuille mais faut l'écrire
de même seule Shyy est As Worksheet
si tu écris
dim var1, var2,var3,var4,...var180 as String
seul var180 est as string
----------
Pour revenir à la question

Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet:

Feuil1
Feuil11
Feuil111
Feuil1111
Feuil11111
..
Feuil11111111111111111111111111111

C'est là que ça craque!

type de solution qui serait à posteriori

Dim i as integer, ws as Worksheet
'...

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

Je te laisse donc mettre au point la Solution a priori, si tu as du mal,
il doit y avoir cela sur excelabo.

Cordialement.

lSteph


Bonjour,

J'ai une macro en VBA qui plante parfois sur une instruction.

Cette macro copie une feuille "Bilan_001" en autant de nouvelles feuilles
que d'entités se trouvant dans la feuille "calendar".

Parfois la macro va jusqu'au bout, mais la plupart du remps, elle s'arrête
sur l'instruction Shxx.Copy After:=Sheets(j)

Je ne comprends pas pourquoi.

Si je relance la macro après avoir supprimé les feuilles créées, ca plante
dès le départ ! Si je ferme puis réouvre la feuille excel , la macro va
plus loin et crée une trentaine de feuilles (la macro devrait en créer 62)

Le message d'erreur est "La méthod copy de la classe worksheet a échoué"

Merci pour vos conseils

Le code :


Sub Creation_Balance_sheet_spreadsheet()

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String

Set Sh = ActiveWorkbook.Worksheets("Calendar")
Set Shxx = ActiveWorkbook.Worksheets("Bilan_001")

j = Shxx.Index

Application.ScreenUpdating = False

For i = 16 To Sh.Range("A65535").End(xlUp).Row

Entity_id = Sh.Cells(i, 1).Value
Shxx.Activate
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
Sheets(j + 1).Cells(15, 3).Value = Entity_id
Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j +
1).Name
Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" &
Entity_id
Sheets(j + 1).Visible = True
j = j + 1

Next i

Application.ScreenUpdating = True

End Sub








Avatar
luc
Le fichier est au bureau

je verrai demain


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

...je voyais cette hypothèse:
Ce que tu décris est un bug référencé d'excel97
d'abord est-ce le cas?



pour vérifier je te suggérais
Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet
................................dans l'explorateur de projet
Feuil1
Feuil11
Feuil111
Feuil1111




Si c'est ce que tu as fait et que le cas soit différent oublies cette
proposition.

@+

lSteph

ok merci

mais que va faire :

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

????

en ajout dans mon code?

aucune feuille ne se nomme Feuil11111 apres lancement de la macro.. elles
ont toutes le nom que je veux leur donner, jusqu'à que cela plante

merci



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

Bonsoir,


Ce que tu décris est un bug référencé d'excel97

---------
hors propos:

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String


seul j est integer, i est variant et devrait être as long si on veut
pouvoir dépasser la moitié des lignes d'une feuille mais faut l'écrire
de même seule Shyy est As Worksheet
si tu écris
dim var1, var2,var3,var4,...var180 as String
seul var180 est as string
----------
Pour revenir à la question

Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet:

Feuil1
Feuil11
Feuil111
Feuil1111
Feuil11111
..
Feuil11111111111111111111111111111

C'est là que ça craque!

type de solution qui serait à posteriori

Dim i as integer, ws as Worksheet
'...

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

Je te laisse donc mettre au point la Solution a priori, si tu as du mal,
il doit y avoir cela sur excelabo.

Cordialement.

lSteph


Bonjour,

J'ai une macro en VBA qui plante parfois sur une instruction.

Cette macro copie une feuille "Bilan_001" en autant de nouvelles feuilles
que d'entités se trouvant dans la feuille "calendar".

Parfois la macro va jusqu'au bout, mais la plupart du remps, elle
s'arrête
sur l'instruction Shxx.Copy After:=Sheets(j)

Je ne comprends pas pourquoi.

Si je relance la macro après avoir supprimé les feuilles créées, ca
plante
dès le départ ! Si je ferme puis réouvre la feuille excel , la macro va
plus loin et crée une trentaine de feuilles (la macro devrait en créer
62)

Le message d'erreur est "La méthod copy de la classe worksheet a échoué"

Merci pour vos conseils

Le code :


Sub Creation_Balance_sheet_spreadsheet()

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String

Set Sh = ActiveWorkbook.Worksheets("Calendar")
Set Shxx = ActiveWorkbook.Worksheets("Bilan_001")

j = Shxx.Index

Application.ScreenUpdating = False

For i = 16 To Sh.Range("A65535").End(xlUp).Row

Entity_id = Sh.Cells(i, 1).Value
Shxx.Activate
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
Sheets(j + 1).Cells(15, 3).Value = Entity_id
Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j +
1).Name
Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" &
Entity_id
Sheets(j + 1).Visible = True
j = j + 1

Next i

Application.ScreenUpdating = True

End Sub








Avatar
luc
mais j'ai toujours pas compris ce que vient faire

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws



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

...je voyais cette hypothèse:
Ce que tu décris est un bug référencé d'excel97
d'abord est-ce le cas?



pour vérifier je te suggérais
Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet
................................dans l'explorateur de projet
Feuil1
Feuil11
Feuil111
Feuil1111




Si c'est ce que tu as fait et que le cas soit différent oublies cette
proposition.

@+

lSteph

ok merci

mais que va faire :

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

????

en ajout dans mon code?

aucune feuille ne se nomme Feuil11111 apres lancement de la macro.. elles
ont toutes le nom que je veux leur donner, jusqu'à que cela plante

merci



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

Bonsoir,


Ce que tu décris est un bug référencé d'excel97

---------
hors propos:

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String


seul j est integer, i est variant et devrait être as long si on veut
pouvoir dépasser la moitié des lignes d'une feuille mais faut l'écrire
de même seule Shyy est As Worksheet
si tu écris
dim var1, var2,var3,var4,...var180 as String
seul var180 est as string
----------
Pour revenir à la question

Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet:

Feuil1
Feuil11
Feuil111
Feuil1111
Feuil11111
..
Feuil11111111111111111111111111111

C'est là que ça craque!

type de solution qui serait à posteriori

Dim i as integer, ws as Worksheet
'...

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

Je te laisse donc mettre au point la Solution a priori, si tu as du mal,
il doit y avoir cela sur excelabo.

Cordialement.

lSteph


Bonjour,

J'ai une macro en VBA qui plante parfois sur une instruction.

Cette macro copie une feuille "Bilan_001" en autant de nouvelles feuilles
que d'entités se trouvant dans la feuille "calendar".

Parfois la macro va jusqu'au bout, mais la plupart du remps, elle
s'arrête
sur l'instruction Shxx.Copy After:=Sheets(j)

Je ne comprends pas pourquoi.

Si je relance la macro après avoir supprimé les feuilles créées, ca
plante
dès le départ ! Si je ferme puis réouvre la feuille excel , la macro va
plus loin et crée une trentaine de feuilles (la macro devrait en créer
62)

Le message d'erreur est "La méthod copy de la classe worksheet a échoué"

Merci pour vos conseils

Le code :


Sub Creation_Balance_sheet_spreadsheet()

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String

Set Sh = ActiveWorkbook.Worksheets("Calendar")
Set Shxx = ActiveWorkbook.Worksheets("Bilan_001")

j = Shxx.Index

Application.ScreenUpdating = False

For i = 16 To Sh.Range("A65535").End(xlUp).Row

Entity_id = Sh.Cells(i, 1).Value
Shxx.Activate
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
Sheets(j + 1).Cells(15, 3).Value = Entity_id
Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j +
1).Name
Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" &
Entity_id
Sheets(j + 1).Visible = True
j = j + 1

Next i

Application.ScreenUpdating = True

End Sub








Avatar
LSteph
Bonjour,

mais j'ai toujours pas compris ce que vient faire
...

ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
...
(Comme je le disais, ceci serait un traitement à posteriori, donc pour
les feuilles déjà créées, donc pas utilisable telque mais à adapter à ta
macro)

Alors si finalement tu es bien dans le cas du bug Excel97,
...je le décris plus en détail:

Sh.copy after:=sheets(sheets.count)

cette instruction copie la feuille sh et la place à la fin,
au passage elle hérite entre autres d'un codename et d'un name
Supposons la feuille de CodeName Feuil3 (le vrai nom qui est dans VBE)
et de Name "Bilan_001" (le nom qui figure sur l'onglet dans excel)

Elle prendra pour CodeName(sauf ce fâmeux bug) Feuil4 (ou + selon le
cas)et pour Name "Bilan_001 (2)"

Le problème est que le vb d'excel97 a sa façon à lui de compter
au lieu d'ajouter un par addition il ajoute 1 à côté du nombre
Ce qui donnera si on boucle
Feuil31, feuil311...311111111111 jusqu'au dépassement de capacité.

aussi prenons pour l'exemple dans ton code

Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id

Tu as pris soin de l'évolution du Name dans la boucle
mais pas du CodeName.

Ce qui donnerait à peu près ceci selon la façon de ton code:
'...
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
On Error Resume Next
Sheets(j + 1).Parent.VBProject.VBComponents(Sheets(j + 1).CodeName) _
.Properties("_CodeName") = "Feuil" & Entity_id
On Error GoTo 0
'....

Suivant le cas "Feuil" & Entity_id devra être +x pour ne pas générer un
codename déjà existant.

C'est pourquoi je proposais de te laisser adapter.

Cordialement.

lSteph


mais j'ai toujours pas compris ce que vient faire

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws



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

...je voyais cette hypothèse:
Ce que tu décris est un bug référencé d'excel97
d'abord est-ce le cas?



pour vérifier je te suggérais
Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet
................................dans l'explorateur de projet
Feuil1
Feuil11
Feuil111
Feuil1111




Si c'est ce que tu as fait et que le cas soit différent oublies cette
proposition.

@+

lSteph

ok merci

mais que va faire :

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

????

en ajout dans mon code?

aucune feuille ne se nomme Feuil11111 apres lancement de la macro.. elles
ont toutes le nom que je veux leur donner, jusqu'à que cela plante

merci



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

Bonsoir,


Ce que tu décris est un bug référencé d'excel97

---------
hors propos:

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String


seul j est integer, i est variant et devrait être as long si on veut
pouvoir dépasser la moitié des lignes d'une feuille mais faut l'écrire
de même seule Shyy est As Worksheet
si tu écris
dim var1, var2,var3,var4,...var180 as String
seul var180 est as string
----------
Pour revenir à la question

Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet:

Feuil1
Feuil11
Feuil111
Feuil1111
Feuil11111
..
Feuil11111111111111111111111111111

C'est là que ça craque!

type de solution qui serait à posteriori

Dim i as integer, ws as Worksheet
'...

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

Je te laisse donc mettre au point la Solution a priori, si tu as du mal,
il doit y avoir cela sur excelabo.

Cordialement.

lSteph


Bonjour,

J'ai une macro en VBA qui plante parfois sur une instruction.

Cette macro copie une feuille "Bilan_001" en autant de nouvelles feuilles
que d'entités se trouvant dans la feuille "calendar".

Parfois la macro va jusqu'au bout, mais la plupart du remps, elle
s'arrête
sur l'instruction Shxx.Copy After:=Sheets(j)

Je ne comprends pas pourquoi.

Si je relance la macro après avoir supprimé les feuilles créées, ca
plante
dès le départ ! Si je ferme puis réouvre la feuille excel , la macro va
plus loin et crée une trentaine de feuilles (la macro devrait en créer
62)

Le message d'erreur est "La méthod copy de la classe worksheet a échoué"

Merci pour vos conseils

Le code :


Sub Creation_Balance_sheet_spreadsheet()

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String

Set Sh = ActiveWorkbook.Worksheets("Calendar")
Set Shxx = ActiveWorkbook.Worksheets("Bilan_001")

j = Shxx.Index

Application.ScreenUpdating = False

For i = 16 To Sh.Range("A65535").End(xlUp).Row

Entity_id = Sh.Cells(i, 1).Value
Shxx.Activate
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
Sheets(j + 1).Cells(15, 3).Value = Entity_id
Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j +
1).Name
Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" &
Entity_id
Sheets(j + 1).Visible = True
j = j + 1

Next i

Application.ScreenUpdating = True

End Sub











Avatar
luc
le probème ne vient pas du bug excel 97 : Il a été résolu depuis excel
2000

voir http://www.excelabo.net/excel/plantagesdiv.php#plantagefeuill

J'ai pu le vérifier en déboguant dans la fenêtre d'exécution.. la nouvelle
feuille créée porte toujours le nom Bilan_001 (2) avant d'être renommée

Le bug même non résolu ne m'aurait pas concerné puisque toutes les copies
sont faites à partir de la même feuille et le plantage intervient bien avant
32 duplications (en général 20)


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

Bonjour,

mais j'ai toujours pas compris ce que vient faire
...

ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
...
(Comme je le disais, ceci serait un traitement à posteriori, donc pour
les feuilles déjà créées, donc pas utilisable telque mais à adapter à ta
macro)

Alors si finalement tu es bien dans le cas du bug Excel97,
...je le décris plus en détail:

Sh.copy after:=sheets(sheets.count)

cette instruction copie la feuille sh et la place à la fin,
au passage elle hérite entre autres d'un codename et d'un name
Supposons la feuille de CodeName Feuil3 (le vrai nom qui est dans VBE)
et de Name "Bilan_001" (le nom qui figure sur l'onglet dans excel)

Elle prendra pour CodeName(sauf ce fâmeux bug) Feuil4 (ou + selon le
cas)et pour Name "Bilan_001 (2)"

Le problème est que le vb d'excel97 a sa façon à lui de compter
au lieu d'ajouter un par addition il ajoute 1 à côté du nombre
Ce qui donnera si on boucle
Feuil31, feuil311...311111111111 jusqu'au dépassement de capacité.

aussi prenons pour l'exemple dans ton code

Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id

Tu as pris soin de l'évolution du Name dans la boucle
mais pas du CodeName.

Ce qui donnerait à peu près ceci selon la façon de ton code:
'...
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
On Error Resume Next
Sheets(j + 1).Parent.VBProject.VBComponents(Sheets(j + 1).CodeName) _
.Properties("_CodeName") = "Feuil" & Entity_id
On Error GoTo 0
'....

Suivant le cas "Feuil" & Entity_id devra être +x pour ne pas générer un
codename déjà existant.

C'est pourquoi je proposais de te laisser adapter.

Cordialement.

lSteph


mais j'ai toujours pas compris ce que vient faire

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws



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

...je voyais cette hypothèse:
Ce que tu décris est un bug référencé d'excel97
d'abord est-ce le cas?



pour vérifier je te suggérais
Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet
................................dans l'explorateur de projet
Feuil1
Feuil11
Feuil111
Feuil1111




Si c'est ce que tu as fait et que le cas soit différent oublies cette
proposition.

@+

lSteph

ok merci

mais que va faire :

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

????

en ajout dans mon code?

aucune feuille ne se nomme Feuil11111 apres lancement de la macro.. elles
ont toutes le nom que je veux leur donner, jusqu'à que cela plante

merci



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

Bonsoir,


Ce que tu décris est un bug référencé d'excel97

---------
hors propos:

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String


seul j est integer, i est variant et devrait être as long si on veut
pouvoir dépasser la moitié des lignes d'une feuille mais faut l'écrire
de même seule Shyy est As Worksheet
si tu écris
dim var1, var2,var3,var4,...var180 as String
seul var180 est as string
----------
Pour revenir à la question

Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet:

Feuil1
Feuil11
Feuil111
Feuil1111
Feuil11111
..
Feuil11111111111111111111111111111

C'est là que ça craque!

type de solution qui serait à posteriori

Dim i as integer, ws as Worksheet
'...

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

Je te laisse donc mettre au point la Solution a priori, si tu as du mal,
il doit y avoir cela sur excelabo.

Cordialement.

lSteph


Bonjour,

J'ai une macro en VBA qui plante parfois sur une instruction.

Cette macro copie une feuille "Bilan_001" en autant de nouvelles
feuilles
que d'entités se trouvant dans la feuille "calendar".

Parfois la macro va jusqu'au bout, mais la plupart du remps, elle
s'arrête
sur l'instruction Shxx.Copy After:=Sheets(j)

Je ne comprends pas pourquoi.

Si je relance la macro après avoir supprimé les feuilles créées, ca
plante
dès le départ ! Si je ferme puis réouvre la feuille excel , la macro va
plus loin et crée une trentaine de feuilles (la macro devrait en créer
62)

Le message d'erreur est "La méthod copy de la classe worksheet a échoué"

Merci pour vos conseils

Le code :


Sub Creation_Balance_sheet_spreadsheet()

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String

Set Sh = ActiveWorkbook.Worksheets("Calendar")
Set Shxx = ActiveWorkbook.Worksheets("Bilan_001")

j = Shxx.Index

Application.ScreenUpdating = False

For i = 16 To Sh.Range("A65535").End(xlUp).Row

Entity_id = Sh.Cells(i, 1).Value
Shxx.Activate
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
Sheets(j + 1).Cells(15, 3).Value = Entity_id
Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j +
1).Name
Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" &
Entity_id
Sheets(j + 1).Visible = True
j = j + 1

Next i

Application.ScreenUpdating = True

End Sub











Avatar
LSteph
Donc si tu avais eu quelque éclair d'illumination tu m'aurais sans
doute dit que tu n'es pas en 97. Ce qui m'aurait évité de te réexpliquer
ce qui résolument ne pouvait t'être utile.

Comme on dit rien ne se perd, en ne tenant pas compte des conseils pour
bien suivre le forum, pour ne pas préciser ta version , à poser une
question confuse et ne pas être à même de lire les réponses ou fut il
inconcevable essayer de donner un retour, sans obliger à répèter.

Et bien grâce à toi, ce qu'à priori tu ne sais visiblement pas faire non
plus je te remercie,
car pour ceux qui auraient véritablement ce pb il restera sur ce forum
une explication pour laquelle je n'aurais normalement pas pris le temps
d'être aussi pédagogique.

Bien le bonsoir.

lSteph





le probème ne vient pas du bug excel 97 : Il a été résolu depuis excel
2000

voir http://www.excelabo.net/excel/plantagesdiv.php#plantagefeuill

J'ai pu le vérifier en déboguant dans la fenêtre d'exécution.. la nouvelle
feuille créée porte toujours le nom Bilan_001 (2) avant d'être renommée

Le bug même non résolu ne m'aurait pas concerné puisque toutes les copies
sont faites à partir de la même feuille et le plantage intervient bien avant
32 duplications (en général 20)


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

Bonjour,

mais j'ai toujours pas compris ce que vient faire
...

ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
...
(Comme je le disais, ceci serait un traitement à posteriori, donc pour
les feuilles déjà créées, donc pas utilisable telque mais à adapter à ta
macro)

Alors si finalement tu es bien dans le cas du bug Excel97,
...je le décris plus en détail:

Sh.copy after:=sheets(sheets.count)

cette instruction copie la feuille sh et la place à la fin,
au passage elle hérite entre autres d'un codename et d'un name
Supposons la feuille de CodeName Feuil3 (le vrai nom qui est dans VBE)
et de Name "Bilan_001" (le nom qui figure sur l'onglet dans excel)

Elle prendra pour CodeName(sauf ce fâmeux bug) Feuil4 (ou + selon le
cas)et pour Name "Bilan_001 (2)"

Le problème est que le vb d'excel97 a sa façon à lui de compter
au lieu d'ajouter un par addition il ajoute 1 à côté du nombre
Ce qui donnera si on boucle
Feuil31, feuil311...311111111111 jusqu'au dépassement de capacité.

aussi prenons pour l'exemple dans ton code

Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id

Tu as pris soin de l'évolution du Name dans la boucle
mais pas du CodeName.

Ce qui donnerait à peu près ceci selon la façon de ton code:
'...
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
On Error Resume Next
Sheets(j + 1).Parent.VBProject.VBComponents(Sheets(j + 1).CodeName) _
.Properties("_CodeName") = "Feuil" & Entity_id
On Error GoTo 0
'....

Suivant le cas "Feuil" & Entity_id devra être +x pour ne pas générer un
codename déjà existant.

C'est pourquoi je proposais de te laisser adapter.

Cordialement.

lSteph


mais j'ai toujours pas compris ce que vient faire

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws


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

...je voyais cette hypothèse:
Ce que tu décris est un bug référencé d'excel97
d'abord est-ce le cas?



pour vérifier je te suggérais
Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet
................................dans l'explorateur de projet
Feuil1
Feuil11
Feuil111
Feuil1111



Si c'est ce que tu as fait et que le cas soit différent oublies cette
proposition.

@+

lSteph

ok merci

mais que va faire :

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

????

en ajout dans mon code?

aucune feuille ne se nomme Feuil11111 apres lancement de la macro.. elles
ont toutes le nom que je veux leur donner, jusqu'à que cela plante

merci



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

Bonsoir,


Ce que tu décris est un bug référencé d'excel97

---------
hors propos:

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String


seul j est integer, i est variant et devrait être as long si on veut
pouvoir dépasser la moitié des lignes d'une feuille mais faut l'écrire
de même seule Shyy est As Worksheet
si tu écris
dim var1, var2,var3,var4,...var180 as String
seul var180 est as string
----------
Pour revenir à la question

Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet:

Feuil1
Feuil11
Feuil111
Feuil1111
Feuil11111
..
Feuil11111111111111111111111111111

C'est là que ça craque!

type de solution qui serait à posteriori

Dim i as integer, ws as Worksheet
'...

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

Je te laisse donc mettre au point la Solution a priori, si tu as du mal,
il doit y avoir cela sur excelabo.

Cordialement.

lSteph


Bonjour,

J'ai une macro en VBA qui plante parfois sur une instruction.

Cette macro copie une feuille "Bilan_001" en autant de nouvelles
feuilles
que d'entités se trouvant dans la feuille "calendar".

Parfois la macro va jusqu'au bout, mais la plupart du remps, elle
s'arrête
sur l'instruction Shxx.Copy After:=Sheets(j)

Je ne comprends pas pourquoi.

Si je relance la macro après avoir supprimé les feuilles créées, ca
plante
dès le départ ! Si je ferme puis réouvre la feuille excel , la macro va
plus loin et crée une trentaine de feuilles (la macro devrait en créer
62)

Le message d'erreur est "La méthod copy de la classe worksheet a échoué"

Merci pour vos conseils

Le code :


Sub Creation_Balance_sheet_spreadsheet()

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String

Set Sh = ActiveWorkbook.Worksheets("Calendar")
Set Shxx = ActiveWorkbook.Worksheets("Bilan_001")

j = Shxx.Index

Application.ScreenUpdating = False

For i = 16 To Sh.Range("A65535").End(xlUp).Row

Entity_id = Sh.Cells(i, 1).Value
Shxx.Activate
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
Sheets(j + 1).Cells(15, 3).Value = Entity_id
Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j +
1).Name
Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" &
Entity_id
Sheets(j + 1).Visible = True
j = j + 1

Next i

Application.ScreenUpdating = True

End Sub













Avatar
luc
je pensai avoir écrit dit que j'etais en 2003

La plupart des intervenants ne précisent pas leur version.. cela suppose
sans doute que'elle est récente.

J'aurais ou dire aussi que je n'etais pas en excel 2

Je n'ai pas perçu le côté pédagogique mais chacun voit les choses à sa
fenêtre et l'illumination aurait pu être réciproque.. il est vai que la
question pouvait être confuse.. pas autant que la réponse



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

Donc si tu avais eu quelque éclair d'illumination tu m'aurais sans
doute dit que tu n'es pas en 97. Ce qui m'aurait évité de te réexpliquer
ce qui résolument ne pouvait t'être utile.

Comme on dit rien ne se perd, en ne tenant pas compte des conseils pour
bien suivre le forum, pour ne pas préciser ta version , à poser une
question confuse et ne pas être à même de lire les réponses ou fut il
inconcevable essayer de donner un retour, sans obliger à répèter.

Et bien grâce à toi, ce qu'à priori tu ne sais visiblement pas faire non
plus je te remercie,
car pour ceux qui auraient véritablement ce pb il restera sur ce forum
une explication pour laquelle je n'aurais normalement pas pris le temps
d'être aussi pédagogique.

Bien le bonsoir.

lSteph





le probème ne vient pas du bug excel 97 : Il a été résolu depuis excel
2000

voir http://www.excelabo.net/excel/plantagesdiv.php#plantagefeuill

J'ai pu le vérifier en déboguant dans la fenêtre d'exécution.. la nouvelle
feuille créée porte toujours le nom Bilan_001 (2) avant d'être renommée

Le bug même non résolu ne m'aurait pas concerné puisque toutes les copies
sont faites à partir de la même feuille et le plantage intervient bien
avant
32 duplications (en général 20)


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

Bonjour,

mais j'ai toujours pas compris ce que vient faire
...

ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
...
(Comme je le disais, ceci serait un traitement à posteriori, donc pour
les feuilles déjà créées, donc pas utilisable telque mais à adapter à ta
macro)

Alors si finalement tu es bien dans le cas du bug Excel97,
...je le décris plus en détail:

Sh.copy after:=sheets(sheets.count)

cette instruction copie la feuille sh et la place à la fin,
au passage elle hérite entre autres d'un codename et d'un name
Supposons la feuille de CodeName Feuil3 (le vrai nom qui est dans VBE)
et de Name "Bilan_001" (le nom qui figure sur l'onglet dans excel)

Elle prendra pour CodeName(sauf ce fâmeux bug) Feuil4 (ou + selon le
cas)et pour Name "Bilan_001 (2)"

Le problème est que le vb d'excel97 a sa façon à lui de compter
au lieu d'ajouter un par addition il ajoute 1 à côté du nombre
Ce qui donnera si on boucle
Feuil31, feuil311...311111111111 jusqu'au dépassement de capacité.

aussi prenons pour l'exemple dans ton code

Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id

Tu as pris soin de l'évolution du Name dans la boucle
mais pas du CodeName.

Ce qui donnerait à peu près ceci selon la façon de ton code:
'...
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
On Error Resume Next
Sheets(j + 1).Parent.VBProject.VBComponents(Sheets(j + 1).CodeName) _
.Properties("_CodeName") = "Feuil" & Entity_id
On Error GoTo 0
'....

Suivant le cas "Feuil" & Entity_id devra être +x pour ne pas générer un
codename déjà existant.

C'est pourquoi je proposais de te laisser adapter.

Cordialement.

lSteph


mais j'ai toujours pas compris ce que vient faire

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws


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

...je voyais cette hypothèse:
Ce que tu décris est un bug référencé d'excel97
d'abord est-ce le cas?



pour vérifier je te suggérais
Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet
................................dans l'explorateur de projet
Feuil1
Feuil11
Feuil111
Feuil1111



Si c'est ce que tu as fait et que le cas soit différent oublies cette
proposition.

@+

lSteph

ok merci

mais que va faire :

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

????

en ajout dans mon code?

aucune feuille ne se nomme Feuil11111 apres lancement de la macro..
elles
ont toutes le nom que je veux leur donner, jusqu'à que cela plante

merci



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

Bonsoir,


Ce que tu décris est un bug référencé d'excel97

---------
hors propos:

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String


seul j est integer, i est variant et devrait être as long si on veut
pouvoir dépasser la moitié des lignes d'une feuille mais faut l'écrire
de même seule Shyy est As Worksheet
si tu écris
dim var1, var2,var3,var4,...var180 as String
seul var180 est as string
----------
Pour revenir à la question

Fais alt+F11

tu constateras à peu près ceci dans l'explorateur de projet:

Feuil1
Feuil11
Feuil111
Feuil1111
Feuil11111
..
Feuil11111111111111111111111111111

C'est là que ça craque!

type de solution qui serait à posteriori

Dim i as integer, ws as Worksheet
'...

On Error Resume Next
i = 0
For Each ws In ActiveWorkbook.Worksheets
i = i + 1
ws.Parent.VBProject.VBComponents(ws.CodeName) _
.Properties("_CodeName") = "Feuil" & i
On Error GoTo 0
Next ws

Je te laisse donc mettre au point la Solution a priori, si tu as du mal,
il doit y avoir cela sur excelabo.

Cordialement.

lSteph


Bonjour,

J'ai une macro en VBA qui plante parfois sur une instruction.

Cette macro copie une feuille "Bilan_001" en autant de nouvelles
feuilles
que d'entités se trouvant dans la feuille "calendar".

Parfois la macro va jusqu'au bout, mais la plupart du remps, elle
s'arrête
sur l'instruction Shxx.Copy After:=Sheets(j)

Je ne comprends pas pourquoi.

Si je relance la macro après avoir supprimé les feuilles créées, ca
plante
dès le départ ! Si je ferme puis réouvre la feuille excel , la macro
va
plus loin et crée une trentaine de feuilles (la macro devrait en créer
62)

Le message d'erreur est "La méthod copy de la classe worksheet a
échoué"

Merci pour vos conseils

Le code :


Sub Creation_Balance_sheet_spreadsheet()

Dim i, j As Integer
Dim Sh, Shxx, Shyy As Worksheet
Dim Entity_id As String

Set Sh = ActiveWorkbook.Worksheets("Calendar")
Set Shxx = ActiveWorkbook.Worksheets("Bilan_001")

j = Shxx.Index

Application.ScreenUpdating = False

For i = 16 To Sh.Range("A65535").End(xlUp).Row

Entity_id = Sh.Cells(i, 1).Value
Shxx.Activate
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
Sheets(j + 1).Cells(15, 3).Value = Entity_id
Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j +
1).Name
Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" &
Entity_id
Sheets(j + 1).Visible = True
j = j + 1

Next i

Application.ScreenUpdating = True

End Sub













Avatar
Francois L

Bonsoir
je pensai avoir écrit dit que j'etais en 2003


Non


La plupart des intervenants ne précisent pas leur version.. cela suppose
sans doute que'elle est récente.


Ils précisent en général lorsque cela a une importance !

J'aurais ou dire aussi que je n'etais pas en excel 2


... qui ne supportait pas VBA

Je n'ai pas perçu le côté pédagogique mais chacun voit les choses à sa
fenêtre et l'illumination aurait pu être réciproque.. il est vai que la
question pouvait être confuse.. pas autant que la réponse


et le ridicule ne tue pas (heureusement).

--
François L

1 2