OVH Cloud OVH Cloud

erreur d'excel à la fermeture

6 réponses
Avatar
magic-dd
bonjour =E0 tous

depuis pas mal de temps sur mon programme de compte , =E0 la fermeture
ou =E0 l'ouverture j'obtiens le message d'erreur me disant qu'excel a
trouve une erreur et se ferme.

=E0 l'ouverture, il me propose une version r=E9par=E9e qui ne l'est pas
puisque dans les r=E9parations il me mets projet visual basic perdu.

bref, j'ai mes sauvegardes de code mais c'est pas terrible


voici mon code ouverture et fermeture

Sub Auto_Open()
Application.DisplayFullScreen =3D True
With Application
.DisplayFormulaBar =3D False
.ShowWindowsInTaskbar =3D False
End With
With ActiveWindow
.DisplayHorizontalScrollBar =3D False
.DisplayVerticalScrollBar =3D False
End With

ActiveWindow.DisplayHeadings =3D False
Application.DisplayFullScreen =3D True
' ActiveWorkbook.Save
ActiveWindow.DisplayWorkbookTabs =3D False


If Date >=3D CDate("20/01/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/02/" & Format(Date, "yyyy")) Then
Sheets("JANVIER").Select
End If

If Date >=3D CDate("20/02/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/03/" & Format(Date, "yyyy")) Then
Sheets("FEVRIER").Select
End If

If Date >=3D CDate("20/03/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/04/" & Format(Date, "yyyy")) Then
Sheets("MARS").Select
End If

If Date >=3D CDate("20/04/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/05/" & Format(Date, "yyyy")) Then
Sheets("AVRIL").Select
End If

If Date >=3D CDate("20/05/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/06/" & Format(Date, "yyyy")) Then
Sheets("MAI").Select
End If


If Date >=3D CDate("20/06/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/07/" & Format(Date, "yyyy")) Then
Sheets("JUIN").Select
End If

If Date >=3D CDate("20/07/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/08/" & Format(Date, "yyyy")) Then
Sheets("JUILLET").Select
End If

If Date >=3D CDate("20/08/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/09/" & Format(Date, "yyyy")) Then
Sheets("AOUT").Select
End If

If Date >=3D CDate("20/09/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/10/" & Format(Date, "yyyy")) Then
Sheets("SEPTEMBRE").Select
End If

If Date >=3D CDate("20/10/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/11/" & Format(Date, "yyyy")) Then
Sheets("OCTOBRE").Select
End If

If Date >=3D CDate("20/11/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/12/" & Format(Date, "yyyy")) Then
Sheets("NOVEMBRE").Select
End If

If Date >=3D CDate("20/12/" & Format(Date, "yyyy")) And Date <=3D CDate
("31/12/" & Format(Date, "yyyy")) Then
Sheets("DECEMBRE").Select
End If

If Date >=3D CDate("01/01/" & Format(Date, "yyyy")) And Date <=3D CDate
("19/01/" & Format(Date, "yyyy")) Then
Sheets("DECEMBRE").Select
End If

FormSaisie.Show
FormSaisie.Left =3D 630
FormSaisie.Top =3D 26
TextBox1 =3D ActiveSheet.Name
valide_soldes
COLORIE
End Sub


Sub Auto_Close()

Application.DisplayFullScreen =3D False
Application.EnableEvents =3D True
With Application
.DisplayFormulaBar =3D True
.ShowWindowsInTaskbar =3D True
End With
With ActiveWindow
.DisplayHorizontalScrollBar =3D True
.DisplayVerticalScrollBar =3D True
.DisplayHeadings =3D True
.DisplayWorkbookTabs =3D True
End With
Application.EnableEvents =3D False
End Sub


merci et au plaisir de vous lire

6 réponses

Avatar
magic-dd
Avatar
michdenis
Juste 2 petites suggestions :

Tu te fais une copie et tu désactive toute la gestion d'erreur du fichier.
(met une apostrophe devant les lignes : on error resume next,
on error goto ....
Évidemment ton projet vba ne doit pas être verrouillé.. Fréquemment
lorsqu'une erreur est rencontrée, Excel te souligne la ligne de code
problématique... ça peut toujours aider à débugger!

Dans ta procédure d'ouverture, il serait sage de modifier
les "CDate("20/01" pour la fonction DateSerial(year(),month(),day())
Pourquoi ? parce que la fonction de conversion comme les autres
d'ailleurs utilisent les paramètres du panneau de configuration.
Sais-tu ce qui se passe si ton fichier s'ouvre dans un autre
environnement que sur celui où il a été créé ?

Une dernière suggestion : Dans ta procédure d'ouverture, utilise
la commande Stop en début du Workbook_Open... l'exécution
devrait s'arrêter et tu pourrais utiliser le pas à pas pour tenter de
voir à quel endroit il décroche !

Bonne chance,


"magic-dd" a écrit dans le message de groupe de discussion :

bonjour à tous

depuis pas mal de temps sur mon programme de compte , à la fermeture
ou à l'ouverture j'obtiens le message d'erreur me disant qu'excel a
trouve une erreur et se ferme.

à l'ouverture, il me propose une version réparée qui ne l'est pas
puisque dans les réparations il me mets projet visual basic perdu.

bref, j'ai mes sauvegardes de code mais c'est pas terrible


voici mon code ouverture et fermeture

Sub Auto_Open()
Application.DisplayFullScreen = True
With Application
.DisplayFormulaBar = False
.ShowWindowsInTaskbar = False
End With
With ActiveWindow
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
End With

ActiveWindow.DisplayHeadings = False
Application.DisplayFullScreen = True
' ActiveWorkbook.Save
ActiveWindow.DisplayWorkbookTabs = False


If Date >= CDate("20/01/" & Format(Date, "yyyy")) And Date <= CDate
("19/02/" & Format(Date, "yyyy")) Then
Sheets("JANVIER").Select
End If

If Date >= CDate("20/02/" & Format(Date, "yyyy")) And Date <= CDate
("19/03/" & Format(Date, "yyyy")) Then
Sheets("FEVRIER").Select
End If

If Date >= CDate("20/03/" & Format(Date, "yyyy")) And Date <= CDate
("19/04/" & Format(Date, "yyyy")) Then
Sheets("MARS").Select
End If

If Date >= CDate("20/04/" & Format(Date, "yyyy")) And Date <= CDate
("19/05/" & Format(Date, "yyyy")) Then
Sheets("AVRIL").Select
End If

If Date >= CDate("20/05/" & Format(Date, "yyyy")) And Date <= CDate
("19/06/" & Format(Date, "yyyy")) Then
Sheets("MAI").Select
End If


If Date >= CDate("20/06/" & Format(Date, "yyyy")) And Date <= CDate
("19/07/" & Format(Date, "yyyy")) Then
Sheets("JUIN").Select
End If

If Date >= CDate("20/07/" & Format(Date, "yyyy")) And Date <= CDate
("19/08/" & Format(Date, "yyyy")) Then
Sheets("JUILLET").Select
End If

If Date >= CDate("20/08/" & Format(Date, "yyyy")) And Date <= CDate
("19/09/" & Format(Date, "yyyy")) Then
Sheets("AOUT").Select
End If

If Date >= CDate("20/09/" & Format(Date, "yyyy")) And Date <= CDate
("19/10/" & Format(Date, "yyyy")) Then
Sheets("SEPTEMBRE").Select
End If

If Date >= CDate("20/10/" & Format(Date, "yyyy")) And Date <= CDate
("19/11/" & Format(Date, "yyyy")) Then
Sheets("OCTOBRE").Select
End If

If Date >= CDate("20/11/" & Format(Date, "yyyy")) And Date <= CDate
("19/12/" & Format(Date, "yyyy")) Then
Sheets("NOVEMBRE").Select
End If

If Date >= CDate("20/12/" & Format(Date, "yyyy")) And Date <= CDate
("31/12/" & Format(Date, "yyyy")) Then
Sheets("DECEMBRE").Select
End If

If Date >= CDate("01/01/" & Format(Date, "yyyy")) And Date <= CDate
("19/01/" & Format(Date, "yyyy")) Then
Sheets("DECEMBRE").Select
End If

FormSaisie.Show
FormSaisie.Left = 630
FormSaisie.Top = 26
TextBox1 = ActiveSheet.Name
valide_soldes
COLORIE
End Sub


Sub Auto_Close()

Application.DisplayFullScreen = False
Application.EnableEvents = True
With Application
.DisplayFormulaBar = True
.ShowWindowsInTaskbar = True
End With
With ActiveWindow
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayHeadings = True
.DisplayWorkbookTabs = True
End With
Application.EnableEvents = False
End Sub


merci et au plaisir de vous lire
Avatar
magic-dd
Bonsoir et merci pour la réponse

cependant plusieurs questions demeurent

ou puis je trouver les lignes : on error resume next et on error
goto ....

je ne les ai pas.


je voudrais suivre ton conseil concernant mes dates mais comment
remplacer

If Date >= CDate("20/01/" & Format(Date, "yyyy")) And Date <= CDate
("19/02/" & Format(Date, "yyyy")) Then

la fonction DateSerial(year(),month(),day())

je regarde pour le reste

merci d'avance

On 3 fév, 01:52, "michdenis" wrote:
Juste 2 petites suggestions :

Tu te fais une copie et tu désactive toute la gestion d'erreur du fichi er.
(met une apostrophe devant les lignes : on error resume next,
on error goto ....
Évidemment ton projet vba ne doit pas être verrouillé.. Fréquemme nt
lorsqu'une erreur est rencontrée, Excel te souligne la ligne de code
problématique... ça peut toujours aider à débugger!

Dans ta procédure d'ouverture, il serait sage de modifier
les "CDate("20/01" pour la fonction DateSerial(year(),month(),day())
Pourquoi ? parce que la fonction de conversion comme les autres
d'ailleurs utilisent les paramètres du panneau de configuration.
Sais-tu ce qui se passe si ton fichier s'ouvre dans un autre
environnement que sur celui où il a été créé ?

Une dernière suggestion : Dans ta procédure d'ouverture, utilise
la commande Stop en début du Workbook_Open... l'exécution
devrait s'arrêter et tu pourrais utiliser le pas à pas pour tenter de
voir à quel endroit il décroche !

Bonne chance,



Avatar
magic-dd
On 3 fév, 20:25, magic-dd wrote:
Bonsoir et merci pour la réponse

cependant plusieurs questions demeurent

ou puis je trouver  les lignes : on error resume next et  on error
goto ....

je ne les ai pas.

je voudrais suivre ton conseil concernant mes dates mais comment
remplacer

If Date >= CDate("20/01/" & Format(Date, "yyyy")) And Date <= CDate
("19/02/" & Format(Date, "yyyy")) Then

 la fonction DateSerial(year(),month(),day())

je regarde pour le reste

merci d'avance

On 3 fév, 01:52, "michdenis" wrote:

> Juste 2 petites suggestions :

> Tu te fais une copie et tu désactive toute la gestion d'erreur du fic hier.
> (met une apostrophe devant les lignes : on error resume next,
> on error goto ....
> Évidemment ton projet vba ne doit pas être verrouillé.. Fréquem ment
> lorsqu'une erreur est rencontrée, Excel te souligne la ligne de code
> problématique... ça peut toujours aider à débugger!

> Dans ta procédure d'ouverture, il serait sage de modifier
> les "CDate("20/01" pour la fonction DateSerial(year(),month(),day())
> Pourquoi ? parce que la fonction de conversion comme les autres
> d'ailleurs utilisent les paramètres du panneau de configuration.
> Sais-tu ce qui se passe si ton fichier s'ouvre dans un autre
> environnement que sur celui où il a été créé ?

> Une dernière suggestion : Dans ta procédure d'ouverture, utilise
> la commande Stop en début du Workbook_Open... l'exécution
> devrait s'arrêter et tu pourrais utiliser le pas à pas pour tenter de
> voir à quel endroit il décroche !

> Bonne chance,



Bonsoir et merci pour la réponse

cependant plusieurs questions demeurent

ou puis je trouver les lignes : on error resume next et on error
goto ....

je ne les ai pas.

je voudrais suivre ton conseil concernant mes dates mais comment
remplacer

If Date >= CDate("20/01/" & Format(Date, "yyyy")) And Date <= CDate
("19/02/" & Format(Date, "yyyy")) Then

la fonction DateSerial(year(),month(),day())

je regarde pour le reste

merci d'avance
Avatar
michdenis
Dim X As Date, Jour As Integer
Dim Année As Integer, Mois As Integer

Année = Year(Date) 'pour obtenir l'année courante
Mois = 1
Jour = 20
X = DateSerial(Année, Mois, Jour)
If Date >= X ......

OU
if date >= dateserial(year(date),1,20) and date <= Dateserial(....) then



"magic-dd" a écrit dans le message de groupe de discussion :

On 3 fév, 20:25, magic-dd wrote:
Bonsoir et merci pour la réponse

cependant plusieurs questions demeurent

ou puis je trouver les lignes : on error resume next et on error
goto ....

je ne les ai pas.

je voudrais suivre ton conseil concernant mes dates mais comment
remplacer

If Date >= CDate("20/01/" & Format(Date, "yyyy")) And Date <= CDate
("19/02/" & Format(Date, "yyyy")) Then

la fonction DateSerial(year(),month(),day())

je regarde pour le reste

merci d'avance

On 3 fév, 01:52, "michdenis" wrote:

> Juste 2 petites suggestions :

> Tu te fais une copie et tu désactive toute la gestion d'erreur du fichier.
> (met une apostrophe devant les lignes : on error resume next,
> on error goto ....
> Évidemment ton projet vba ne doit pas être verrouillé.. Fréquemment
> lorsqu'une erreur est rencontrée, Excel te souligne la ligne de code
> problématique... ça peut toujours aider à débugger!

> Dans ta procédure d'ouverture, il serait sage de modifier
> les "CDate("20/01" pour la fonction DateSerial(year(),month(),day())
> Pourquoi ? parce que la fonction de conversion comme les autres
> d'ailleurs utilisent les paramètres du panneau de configuration.
> Sais-tu ce qui se passe si ton fichier s'ouvre dans un autre
> environnement que sur celui où il a été créé ?

> Une dernière suggestion : Dans ta procédure d'ouverture, utilise
> la commande Stop en début du Workbook_Open... l'exécution
> devrait s'arrêter et tu pourrais utiliser le pas à pas pour tenter de
> voir à quel endroit il décroche !

> Bonne chance,



Bonsoir et merci pour la réponse

cependant plusieurs questions demeurent

ou puis je trouver les lignes : on error resume next et on error
goto ....

je ne les ai pas.

je voudrais suivre ton conseil concernant mes dates mais comment
remplacer

If Date >= CDate("20/01/" & Format(Date, "yyyy")) And Date <= CDate
("19/02/" & Format(Date, "yyyy")) Then

la fonction DateSerial(year(),month(),day())

je regarde pour le reste

merci d'avance
Avatar
magic-dd
merci pour tout michDenis

j'ai donc mis cela dans mon code auto close

Sub Auto_Close()
'Stop
Application.EnableEvents = True
Unload FormSaisie
FormSaisie.Hide
With ActiveWindow
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayHeadings = True
.DisplayWorkbookTabs = True
End With
Application.EnableEvents = False
Application.DisplayAlerts = False
ActiveWorkbook.Close (True)
Application.DisplayAlerts = True

End Sub

et ca n'a pas l'air de planter

pourvu que ca dure

merci encore