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

version d'Excel et version vba ...

13 réponses
Avatar
j-pascal
Bonjour,

Si une macro bugue sur un autre PC (en supposant qu'elle fonctionnait à
l'origine ;-) ), c'est à cause de la version d'Excel ou de la version de VBA
? Peut-être même que la version d'Excel conditionne la version de VBA ??
Si ça bugue, j'imagine que l'utilisateur va voir une fenêtre de débogage ??
Ou bien la macro refusera de fonctionner ... en silence .. ??

Pour éviter la fenêtre de débogage (qui peut dérouter l'utilisateur néophyte
!), peut-on intégrer un msgbox qui affiche un message dans l'hypothèse où la
version d'Excel de l'utilisateur n'est pas compatible avec celle de la
version "originale" ? ... avec un Exit Sub ...

(Si Daniel voit ce msg, j'ai modifié son code comme suit :
'-----------------------------------------------------------
Sub TestVersionXL()

versionXL = Val(Application.Version)
versionOriginale = "Excel (2002) version 10.0"

Select Case versionXL

Case 8
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10) &
Chr(10) _
& "Vous utilisez actuellement : " & "Excel (97) version " &
Application.Version

Case 9
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10) &
Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2000) version " &
Application.Version

Case 10
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10) &
Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2002) version " &
Application.Version

Case 11
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10) &
Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2003) version " &
Application.Version

Case Else
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10) &
Chr(10) _
& "Vous utilisez actuellement : " & "Une autre version !"

End Select

End Sub
'---------------------------------------------------

Merci d'avance pour vos lumières.

--
Cordialement @+
JP

10 réponses

1 2
Avatar
Daniel
Hé, ce n'était pas mon code !
Quoique ce ne soit que ce que je tiens pour acquis, version d'Excel d'Excel
(ou d'Office) et version VBA vont de pair.
Tu peux éviter le message de débogage en insérant en début de macro :
On Error GoTo ErrMacro
et en fin de macro :
ErrMacro:
MsgBox "Erreur"
End Sub
en remplaçant la msgbox par le code que tu viens de publier concernant les
différences de versions.
Daniel
"j-pascal" a écrit dans le message de news:
%
Bonjour,

Si une macro bugue sur un autre PC (en supposant qu'elle fonctionnait à
l'origine ;-) ), c'est à cause de la version d'Excel ou de la version de
VBA ? Peut-être même que la version d'Excel conditionne la version de VBA
??
Si ça bugue, j'imagine que l'utilisateur va voir une fenêtre de débogage
?? Ou bien la macro refusera de fonctionner ... en silence .. ??

Pour éviter la fenêtre de débogage (qui peut dérouter l'utilisateur
néophyte !), peut-on intégrer un msgbox qui affiche un message dans
l'hypothèse où la version d'Excel de l'utilisateur n'est pas compatible
avec celle de la version "originale" ? ... avec un Exit Sub ...

(Si Daniel voit ce msg, j'ai modifié son code comme suit :
'-----------------------------------------------------------
Sub TestVersionXL()

versionXL = Val(Application.Version)
versionOriginale = "Excel (2002) version 10.0"

Select Case versionXL

Case 8
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10)
& Chr(10) _
& "Vous utilisez actuellement : " & "Excel (97) version " &
Application.Version

Case 9
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10)
& Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2000) version " &
Application.Version

Case 10
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10)
& Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2002) version " &
Application.Version

Case 11
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10)
& Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2003) version " &
Application.Version

Case Else
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10)
& Chr(10) _
& "Vous utilisez actuellement : " & "Une autre version !"

End Select

End Sub
'---------------------------------------------------

Merci d'avance pour vos lumières.

--
Cordialement @+
JP


Avatar
j-pascal
Re,



"Daniel" a écrit dans le message de news:
%
Hé, ce n'était pas mon code !


Lorsque j'avais sauvegardé le code, à l'époque, j'avais, à la fin du message
:

Daniel
--
FAQ MPFE
FAQ du forum microsoft.public.fr.excel
http://dj.joss.free.fr/faq.htm

Ce n'était pas toi ce Daniel ?


Quoique ce ne soit que ce que je tiens pour acquis, version d'Excel
d'Excel (ou d'Office) et version VBA vont de pair.


Ceci répond à ma question.

Tu peux éviter le message de débogage en insérant en début de macro :
On Error GoTo ErrMacro
et en fin de macro :
ErrMacro:
MsgBox "Erreur"
End Sub
en remplaçant la msgbox par le code que tu viens de publier concernant les
différences de versions.


Je vais essayer. Le problème, c'est que je ne peux (apparemment) pas générer
une erreur de version pour vérifier que ce code (a fortiori ajusté par
moi-même ;-) ) fonctionne normalement !
Quand tu dis "en début de macro", c'est par exemple sur dans un
Workbook_open ?
Car les macros en appellent d'autres, etc...
Un jour, j'ai eu un pb avec une macro sur les mises-en-formes
conditionnelle. Sur le PC d'un collègue, le code a bugué sur une ligne tout
à fait insignifiante ! Je n'ai jamais compris par quoi je pouvais remplacer
cette partie du code !

Que font les "grosses pointures" du forum (...), pour se prémunir d'un bug
lié à une version d'Excel. J'imagine que certaines macros sont extrêmement
longues et compliquées et donc sensibles à cet "obstacle" ?!!

@+ ?

JP
Daniel
"j-pascal" a écrit dans le message de news:
%
Bonjour,

Si une macro bugue sur un autre PC (en supposant qu'elle fonctionnait à
l'origine ;-) ), c'est à cause de la version d'Excel ou de la version de
VBA ? Peut-être même que la version d'Excel conditionne la version de VBA
??
Si ça bugue, j'imagine que l'utilisateur va voir une fenêtre de débogage
?? Ou bien la macro refusera de fonctionner ... en silence .. ??

Pour éviter la fenêtre de débogage (qui peut dérouter l'utilisateur
néophyte !), peut-on intégrer un msgbox qui affiche un message dans
l'hypothèse où la version d'Excel de l'utilisateur n'est pas compatible
avec celle de la version "originale" ? ... avec un Exit Sub ...

(Si Daniel voit ce msg, j'ai modifié son code comme suit :
'-----------------------------------------------------------
Sub TestVersionXL()

versionXL = Val(Application.Version)
versionOriginale = "Excel (2002) version 10.0"

Select Case versionXL

Case 8
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10)
& Chr(10) _
& "Vous utilisez actuellement : " & "Excel (97) version " &
Application.Version

Case 9
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10)
& Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2000) version " &
Application.Version

Case 10
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10)
& Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2002) version " &
Application.Version

Case 11
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10)
& Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2003) version " &
Application.Version

Case Else
MsgBox "Application élaborée sous : " & versionOriginale & Chr(10)
& Chr(10) _
& "Vous utilisez actuellement : " & "Une autre version !"

End Select

End Sub
'---------------------------------------------------

Merci d'avance pour vos lumières.

--
Cordialement @+
JP






Avatar
Daniel
http://dj.joss.free.fr/faq.htm

Ce n'était pas toi ce Daniel ?



Non, celui-ci, je crois que c'est Daniel J. Il faudra que je me décide à
changer de pseudo, il n'y a pas qu'un âne qui s'appelle Martin, comme disait
ma grand-mère.


Quand tu dis "en début de macro", c'est par exemple sur dans un
Workbook_open ?


Non, en début, c'est après les déclarations de variables.

Car les macros en appellent d'autres, etc...


Ca se complique, il faut passer une variable que la macro appelée positionne
à Vrai quand il y a une erreur; cette valeur est testée dans la macro
appelante.

Un jour, j'ai eu un pb avec une macro sur les mises-en-formes
conditionnelle. Sur le PC d'un collègue, le code a bugué sur une ligne
tout à fait insignifiante ! Je n'ai jamais compris par quoi je pouvais
remplacer cette partie du code !


Il faut déboguer avec la version qui plante. Si tu n'en disposes pas, fais
appel au forum pour trouver quelqu'un qui en dispose. J'ai eu le cas il y a
peu, et j'ai eu la solution en une demi-journée.


Que font les "grosses pointures" du forum (...), pour se prémunir d'un bug
lié à une version d'Excel. J'imagine que certaines macros sont extrêmement
longues et compliquées et donc sensibles à cet "obstacle" ?!!


Que font-elles ? Il faut le leur demander (ouvre un fil séparé). ;-)))
Daniel

@+ ?

JP
Daniel
"j-pascal" a écrit dans le message de news:
%
Bonjour,

Si une macro bugue sur un autre PC (en supposant qu'elle fonctionnait à
l'origine ;-) ), c'est à cause de la version d'Excel ou de la version de
VBA ? Peut-être même que la version d'Excel conditionne la version de
VBA ??
Si ça bugue, j'imagine que l'utilisateur va voir une fenêtre de débogage
?? Ou bien la macro refusera de fonctionner ... en silence .. ??

Pour éviter la fenêtre de débogage (qui peut dérouter l'utilisateur
néophyte !), peut-on intégrer un msgbox qui affiche un message dans
l'hypothèse où la version d'Excel de l'utilisateur n'est pas compatible
avec celle de la version "originale" ? ... avec un Exit Sub ...

(Si Daniel voit ce msg, j'ai modifié son code comme suit :
'-----------------------------------------------------------
Sub TestVersionXL()

versionXL = Val(Application.Version)
versionOriginale = "Excel (2002) version 10.0"

Select Case versionXL

Case 8
MsgBox "Application élaborée sous : " & versionOriginale &
Chr(10) & Chr(10) _
& "Vous utilisez actuellement : " & "Excel (97) version " &
Application.Version

Case 9
MsgBox "Application élaborée sous : " & versionOriginale &
Chr(10) & Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2000) version " &
Application.Version

Case 10
MsgBox "Application élaborée sous : " & versionOriginale &
Chr(10) & Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2002) version " &
Application.Version

Case 11
MsgBox "Application élaborée sous : " & versionOriginale &
Chr(10) & Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2003) version " &
Application.Version

Case Else
MsgBox "Application élaborée sous : " & versionOriginale &
Chr(10) & Chr(10) _
& "Vous utilisez actuellement : " & "Une autre version !"

End Select

End Sub
'---------------------------------------------------

Merci d'avance pour vos lumières.

--
Cordialement @+
JP









Avatar
j-pascal
Re,

"Daniel" a écrit dans le message de news:
%
http://dj.joss.free.fr/faq.htm

Ce n'était pas toi ce Daniel ?



Non, celui-ci, je crois que c'est Daniel J. Il faudra que je me décide à
changer de pseudo, il n'y a pas qu'un âne qui s'appelle Martin, comme
disait ma grand-mère.


Désolé ;-( Mais rien de choquant à ce que des (grosses) pointures
"marchent" par pair ! ;-)

Quand tu dis "en début de macro", c'est par exemple sur dans un
Workbook_open ?


Non, en début, c'est après les déclarations de variables.

Car les macros en appellent d'autres, etc...


Ca se complique, il faut passer une variable que la macro appelée
positionne à Vrai quand il y a une erreur; cette valeur est testée dans la
macro appelante.


Trop compliqué, surtout pour un pb "virtuel" ! Je verrai ça plus tard ...
(peut-être) ...

Un jour, j'ai eu un pb avec une macro sur les mises-en-formes
conditionnelle. Sur le PC d'un collègue, le code a bugué sur une ligne
tout à fait insignifiante ! Je n'ai jamais compris par quoi je pouvais
remplacer cette partie du code !


Il faut déboguer avec la version qui plante.


Qu'entends-tu par déboguer ? Pour moi, ça signifie s'intéresser à la ligne
surlignée en jaune et se creuser la tête pour qu'elle ne rapasse pas en
jaune à la prochaine exécution de la macro !

Si tu n'en disposes pas,


En rapport avec ce que j'ai dit plus haut, je ne comprends pas de quoi je
devrais disposer !

fais appel au forum pour trouver quelqu'un qui en dispose. J'ai eu le cas
il y a peu, et j'ai eu la solution en une demi-journée.


Une demi-journée ?? C'est long ! Depuis hier soir, tu me réponds presque en
temps réel ! rofl

Que font les "grosses pointures" du forum (...), pour se prémunir d'un
bug lié à une version d'Excel. J'imagine que certaines macros sont
extrêmement longues et compliquées et donc sensibles à cet "obstacle" ?!!


Que font-elles ? Il faut le leur demander (ouvre un fil séparé). ;-)))


J'ai déjà pas mal de fils en cours ; je verrai ça plus tard, mais l'objet
du présent fil n'est pas si loin de cette préoccupation ...

Merci,

JP

Daniel

@+ ?

JP
Daniel
"j-pascal" a écrit dans le message de news:
%
Bonjour,

Si une macro bugue sur un autre PC (en supposant qu'elle fonctionnait à
l'origine ;-) ), c'est à cause de la version d'Excel ou de la version
de VBA ? Peut-être même que la version d'Excel conditionne la version
de VBA ??
Si ça bugue, j'imagine que l'utilisateur va voir une fenêtre de
débogage ?? Ou bien la macro refusera de fonctionner ... en silence ..
??

Pour éviter la fenêtre de débogage (qui peut dérouter l'utilisateur
néophyte !), peut-on intégrer un msgbox qui affiche un message dans
l'hypothèse où la version d'Excel de l'utilisateur n'est pas compatible
avec celle de la version "originale" ? ... avec un Exit Sub ...

(Si Daniel voit ce msg, j'ai modifié son code comme suit :
'-----------------------------------------------------------
Sub TestVersionXL()

versionXL = Val(Application.Version)
versionOriginale = "Excel (2002) version 10.0"

Select Case versionXL

Case 8
MsgBox "Application élaborée sous : " & versionOriginale &
Chr(10) & Chr(10) _
& "Vous utilisez actuellement : " & "Excel (97) version " &
Application.Version

Case 9
MsgBox "Application élaborée sous : " & versionOriginale &
Chr(10) & Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2000) version " &
Application.Version

Case 10
MsgBox "Application élaborée sous : " & versionOriginale &
Chr(10) & Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2002) version " &
Application.Version

Case 11
MsgBox "Application élaborée sous : " & versionOriginale &
Chr(10) & Chr(10) _
& "Vous utilisez actuellement : " & "Excel (2003) version " &
Application.Version

Case Else
MsgBox "Application élaborée sous : " & versionOriginale &
Chr(10) & Chr(10) _
& "Vous utilisez actuellement : " & "Une autre version !"

End Select

End Sub
'---------------------------------------------------

Merci d'avance pour vos lumières.

--
Cordialement @+
JP













Avatar
Daniel
Qu'entends-tu par déboguer ? Pour moi, ça signifie s'intéresser à la ligne
surlignée en jaune et se creuser la tête pour qu'elle ne rapasse pas en
jaune à la prochaine exécution de la macro !


C'est ça, corriger le problème.

Si tu n'en disposes pas,


En rapport avec ce que j'ai dit plus haut, je ne comprends pas de quoi je
devrais disposer !


De la version qui plante. Suppose que ton utilisateur ne soit pas sur
place...

fais appel au forum pour trouver quelqu'un qui en dispose. J'ai eu le cas
il y a peu, et j'ai eu la solution en une demi-journée.


Une demi-journée ?? C'est long ! Depuis hier soir, tu me réponds presque
en temps réel ! rofl


Ca dépend aussi du problème...
Daniel


Avatar
j-pascal
Merci pour ce complément d'informations.
A bientôt,
JP

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

Qu'entends-tu par déboguer ? Pour moi, ça signifie s'intéresser à la
ligne surlignée en jaune et se creuser la tête pour qu'elle ne rapasse
pas en jaune à la prochaine exécution de la macro !


C'est ça, corriger le problème.

Si tu n'en disposes pas,


En rapport avec ce que j'ai dit plus haut, je ne comprends pas de quoi je
devrais disposer !


De la version qui plante. Suppose que ton utilisateur ne soit pas sur
place...

fais appel au forum pour trouver quelqu'un qui en dispose. J'ai eu le
cas il y a peu, et j'ai eu la solution en une demi-journée.


Une demi-journée ?? C'est long ! Depuis hier soir, tu me réponds presque
en temps réel ! rofl


Ca dépend aussi du problème...
Daniel





Avatar
j-pascal
Re,

Pb, maintenant que j'ai franchi l'étape du bug, lorsque je clique sur une
nouvelle année "2008" par exemple, mes onglets m'affichent : "jan 8", "fév
8", etc , au lieu de "jan 08", "fév 08" , etc.

le code :
'----------------------------------------------

Sub NouvelleAnnée()

Dim réponse1 As String
Dim réponse11
Dim nouvelle_année As Variant 'mais pas integer

réponse1 = MsgBox("Voulez-vous générer une nouvelle année ?", vbYesNo +
vbQuestion, "actualisation")

If réponse1 = vbNo Then
Exit Sub
Else

MsgBox "Vous allez réinitialiser le classeur !" & Chr(10) & Chr(10)
& "(Cette opération est irréversible !)", vbOKOnly + vbExclamation,
"IMPORTANT"
réponse11 = MsgBox("Voulez-vous vraiment réinitialiser le classeur
?", vbYesNo + vbQuestion, "actualisation")

If réponse11 = vbNo Then
Exit Sub
Else

'nouvelle_année = InputBox("Entrez une année comprise entre 2007
et 2010")
nouvelle_année = Application.InputBox("Entrez une année comprise
entre 2007 et 2010", Type:=1)

If nouvelle_année = False Then 'ajout 14/08/07
Exit Sub 'ajout 14/08/07
Else 'ajout 14/08/07

Range("A1") = nouvelle_année
'
i = ActiveSheet.Index
For x = 4 To 15

j = Len(Sheets(x + 1).Name)
Sheets(x + 1).Name = Mid(Sheets(x + 1).Name, 1, j - 1) &
Right(Sheets(i).Cells(1, 1).Value, 1)

Next

MsgBox "en cours d'élaboration ..."
End If
End If 'ajout 14/08/07
End If
End Sub

'----------------------------------------------

JP


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

Qu'entends-tu par déboguer ? Pour moi, ça signifie s'intéresser à la
ligne surlignée en jaune et se creuser la tête pour qu'elle ne rapasse
pas en jaune à la prochaine exécution de la macro !


C'est ça, corriger le problème.

Si tu n'en disposes pas,


En rapport avec ce que j'ai dit plus haut, je ne comprends pas de quoi je
devrais disposer !


De la version qui plante. Suppose que ton utilisateur ne soit pas sur
place...

fais appel au forum pour trouver quelqu'un qui en dispose. J'ai eu le
cas il y a peu, et j'ai eu la solution en une demi-journée.


Une demi-journée ?? C'est long ! Depuis hier soir, tu me réponds presque
en temps réel ! rofl


Ca dépend aussi du problème...
Daniel





Avatar
dunkelzahn
On 14 août, 21:28, "j-pascal" wrote:
Re,

Pb, maintenant que j'ai franchi l'étape du bug, lorsque je clique sur u ne
nouvelle année "2008" par exemple, mes onglets m'affichent : "jan 8", " fév
8", etc , au lieu de "jan 08", "fév 08" , etc.

le code :
'----------------------------------------------

Sub NouvelleAnnée()

Dim réponse1 As String
Dim réponse11
Dim nouvelle_année As Variant 'mais pas integer

réponse1 = MsgBox("Voulez-vous générer une nouvelle année ? ", vbYesNo +
vbQuestion, "actualisation")

If réponse1 = vbNo Then
Exit Sub
Else

MsgBox "Vous allez réinitialiser le classeur !" & Chr(10) & Chr (10)
& "(Cette opération est irréversible !)", vbOKOnly + vbExclamation,
"IMPORTANT"
réponse11 = MsgBox("Voulez-vous vraiment réinitialiser le c lasseur
?", vbYesNo + vbQuestion, "actualisation")

If réponse11 = vbNo Then
Exit Sub
Else

'nouvelle_année = InputBox("Entrez une année comprise e ntre 2007
et 2010")
nouvelle_année = Application.InputBox("Entrez une année comprise
entre 2007 et 2010", Type:=1)

If nouvelle_année = False Then 'ajout 14/08/07
Exit Sub 'ajout 14/08/07
Else 'ajout 14/08/07

Range("A1") = nouvelle_année
'
i = ActiveSheet.Index
For x = 4 To 15

j = Len(Sheets(x + 1).Name)
Sheets(x + 1).Name = Mid(Sheets(x + 1).Name, 1, j - 1) &
Right(Sheets(i).Cells(1, 1).Value, 1)

Next

MsgBox "en cours d'élaboration ..."
End If
End If 'ajout 14/08/07
End If
End Sub

'----------------------------------------------

JP

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


Qu'entends-tu par déboguer ? Pour moi, ça signifie s'intéresser à la
ligne surlignée en jaune et se creuser la tête pour qu'elle ne rap asse
pas en jaune à la prochaine exécution de la macro !


C'est ça, corriger le problème.

Si tu n'en disposes pas,


En rapport avec ce que j'ai dit plus haut, je ne comprends pas de quoi je
devrais disposer !


De la version qui plante. Suppose que ton utilisateur ne soit pas sur
place...

fais appel au forum pour trouver quelqu'un qui en dispose. J'ai eu le
cas il y a peu, et j'ai eu la solution en une demi-journée.


Une demi-journée ?? C'est long ! Depuis hier soir, tu me réponds p resque
en temps réel ! rofl


Ca dépend aussi du problème...
Daniel



Hello,

SI j'ai bien compris ton code, il s'agit de cette ligne :
Sheets(x + 1).Name = Mid(Sheets(x + 1).Name, 1, j - 1) &
Right(Sheets(i).Cells(1, 1).Value, 1)

Le right se fait sur un seul caractère.
Mais je pense que tu peux résoudre le problème en formattant ta case
A1 au format dd/mm/yy et enfaisant un Right(Sheets(i).Cells(1,
1).Value, 2)




Avatar
j-pascal
Bonsoir,

Pb, maintenant ça m'ajoute un zéro à chaque lancement de la macro : jan 007,
jan 0007, etc !

@+ ?

JP
"dunkelzahn" a écrit dans le message de
news:
On 14 août, 21:28, "j-pascal" wrote:
Re,

Pb, maintenant que j'ai franchi l'étape du bug, lorsque je clique sur une
nouvelle année "2008" par exemple, mes onglets m'affichent : "jan 8", "fév
8", etc , au lieu de "jan 08", "fév 08" , etc.

le code :
'----------------------------------------------

Sub NouvelleAnnée()

Dim réponse1 As String
Dim réponse11
Dim nouvelle_année As Variant 'mais pas integer

réponse1 = MsgBox("Voulez-vous générer une nouvelle année ?", vbYesNo
+
vbQuestion, "actualisation")

If réponse1 = vbNo Then
Exit Sub
Else

MsgBox "Vous allez réinitialiser le classeur !" & Chr(10) &
Chr(10)
& "(Cette opération est irréversible !)", vbOKOnly + vbExclamation,
"IMPORTANT"
réponse11 = MsgBox("Voulez-vous vraiment réinitialiser le classeur
?", vbYesNo + vbQuestion, "actualisation")

If réponse11 = vbNo Then
Exit Sub
Else

'nouvelle_année = InputBox("Entrez une année comprise entre
2007
et 2010")
nouvelle_année = Application.InputBox("Entrez une année
comprise
entre 2007 et 2010", Type:=1)

If nouvelle_année = False Then 'ajout 14/08/07
Exit Sub 'ajout 14/08/07
Else 'ajout 14/08/07

Range("A1") = nouvelle_année
'
i = ActiveSheet.Index
For x = 4 To 15

j = Len(Sheets(x + 1).Name)
Sheets(x + 1).Name = Mid(Sheets(x + 1).Name, 1, j - 1)
&
Right(Sheets(i).Cells(1, 1).Value, 1)

Next

MsgBox "en cours d'élaboration ..."
End If
End If 'ajout 14/08/07
End If
End Sub

'----------------------------------------------

JP

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


Qu'entends-tu par déboguer ? Pour moi, ça signifie s'intéresser à la
ligne surlignée en jaune et se creuser la tête pour qu'elle ne rapasse
pas en jaune à la prochaine exécution de la macro !


C'est ça, corriger le problème.

Si tu n'en disposes pas,


En rapport avec ce que j'ai dit plus haut, je ne comprends pas de quoi
je
devrais disposer !


De la version qui plante. Suppose que ton utilisateur ne soit pas sur
place...

fais appel au forum pour trouver quelqu'un qui en dispose. J'ai eu le
cas il y a peu, et j'ai eu la solution en une demi-journée.


Une demi-journée ?? C'est long ! Depuis hier soir, tu me réponds
presque
en temps réel ! rofl


Ca dépend aussi du problème...
Daniel



Hello,

SI j'ai bien compris ton code, il s'agit de cette ligne :
Sheets(x + 1).Name = Mid(Sheets(x + 1).Name, 1, j - 1) &
Right(Sheets(i).Cells(1, 1).Value, 1)

Le right se fait sur un seul caractère.
Mais je pense que tu peux résoudre le problème en formattant ta case
A1 au format dd/mm/yy et enfaisant un Right(Sheets(i).Cells(1,
1).Value, 2)




Avatar
j-pascal
Re,

J'ai remis la valeur à "1" et ça marche, sans doute depuis que la prise en
compte du "Annuler" comme False ...
C'est encore un peu flou pour moi, mais ça va décanter ... pendant la nuit
;-)

Merci pour ta contribution,

Cordialement,

JP

"dunkelzahn" a écrit dans le message de
news:
On 14 août, 21:28, "j-pascal" wrote:
Re,

Pb, maintenant que j'ai franchi l'étape du bug, lorsque je clique sur une
nouvelle année "2008" par exemple, mes onglets m'affichent : "jan 8", "fév
8", etc , au lieu de "jan 08", "fév 08" , etc.

le code :
'----------------------------------------------

Sub NouvelleAnnée()

Dim réponse1 As String
Dim réponse11
Dim nouvelle_année As Variant 'mais pas integer

réponse1 = MsgBox("Voulez-vous générer une nouvelle année ?", vbYesNo
+
vbQuestion, "actualisation")

If réponse1 = vbNo Then
Exit Sub
Else

MsgBox "Vous allez réinitialiser le classeur !" & Chr(10) &
Chr(10)
& "(Cette opération est irréversible !)", vbOKOnly + vbExclamation,
"IMPORTANT"
réponse11 = MsgBox("Voulez-vous vraiment réinitialiser le classeur
?", vbYesNo + vbQuestion, "actualisation")

If réponse11 = vbNo Then
Exit Sub
Else

'nouvelle_année = InputBox("Entrez une année comprise entre
2007
et 2010")
nouvelle_année = Application.InputBox("Entrez une année
comprise
entre 2007 et 2010", Type:=1)

If nouvelle_année = False Then 'ajout 14/08/07
Exit Sub 'ajout 14/08/07
Else 'ajout 14/08/07

Range("A1") = nouvelle_année
'
i = ActiveSheet.Index
For x = 4 To 15

j = Len(Sheets(x + 1).Name)
Sheets(x + 1).Name = Mid(Sheets(x + 1).Name, 1, j - 1)
&
Right(Sheets(i).Cells(1, 1).Value, 1)

Next

MsgBox "en cours d'élaboration ..."
End If
End If 'ajout 14/08/07
End If
End Sub

'----------------------------------------------

JP

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


Qu'entends-tu par déboguer ? Pour moi, ça signifie s'intéresser à la
ligne surlignée en jaune et se creuser la tête pour qu'elle ne rapasse
pas en jaune à la prochaine exécution de la macro !


C'est ça, corriger le problème.

Si tu n'en disposes pas,


En rapport avec ce que j'ai dit plus haut, je ne comprends pas de quoi
je
devrais disposer !


De la version qui plante. Suppose que ton utilisateur ne soit pas sur
place...

fais appel au forum pour trouver quelqu'un qui en dispose. J'ai eu le
cas il y a peu, et j'ai eu la solution en une demi-journée.


Une demi-journée ?? C'est long ! Depuis hier soir, tu me réponds
presque
en temps réel ! rofl


Ca dépend aussi du problème...
Daniel



Hello,

SI j'ai bien compris ton code, il s'agit de cette ligne :
Sheets(x + 1).Name = Mid(Sheets(x + 1).Name, 1, j - 1) &
Right(Sheets(i).Cells(1, 1).Value, 1)

Le right se fait sur un seul caractère.
Mais je pense que tu peux résoudre le problème en formattant ta case
A1 au format dd/mm/yy et enfaisant un Right(Sheets(i).Cells(1,
1).Value, 2)




1 2