> Tous les forums > Forum Bureautique
 Excel VBA: Erreur compilation...:FermetureAuto
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
chrysaoff
  Posté le 01/02/2016 @ 09:58 
Aller en bas de la page 
Petit astucien

Bonjour,

J'ai un fichier excel qui me permet de remplir un agenda hebdomadaire.

Mes collègues peuvent ouvrir le fichier, sauf moi qui m'affiche cette erreur dès l'ouverture de Excel 2013/2016

Pouvez-vous m'aider?

Merci



Modifié par chrysaoff le 01/02/2016 10:02
Publicité
gilbert_rgi
 Posté le 01/02/2016 à 12:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Oui on peut vous aider mais il faut nous mettre soit le code du fichier ou le fichier lui même si les données de ce dernier n'est pas confidentiel

merci

chrysaoff
 Posté le 01/02/2016 à 14:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
gilbert_rgi a écrit :

Bonjour,

Oui on peut vous aider mais il faut nous mettre soit le code du fichier ou le fichier lui même si les données de ce dernier n'est pas confidentiel

merci

Merci de votre réponse.

Le code je peux le trouver où?

le fichier je peux donner mais y a des noms que je préfère pas donner.

gilbert_rgi
 Posté le 01/02/2016 à 16:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

pour le code

quand excel et le fichier sont ouverts appuyer sur les touches ALT + F11 pour aller dans l'editeur VBA

puis vous trouverez le code en cliquant dans le thisworkbook ou dans un module

chrysaoff
 Posté le 03/02/2016 à 15:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

oui j'ai trouvé le code et maintenant j'ai une erreur de systèmes 64 bits:

je vous joins le code suivant:


Option Explicit
Declare Function GetTickCount Lib "Kernel32" () As Long ' pour userform compte a rebours
Option Private Module
'Delai est le temps d'inactivité maxi en minutes
Const Delai = 2

Sub Programmation()
Dim Heure As Date
Heure = Now + TimeValue("00:" & Delai & ":00")
'on sauvegarde l'heure de la dernière programmation pour éventuellement
'pouvoir la supprimer à la fermeture du fichier
ThisWorkbook.Names.Add Name:="ChronoTime", RefersTo:=Heure
ThisWorkbook.Names.Add Name:="Chrono", RefersTo:=0
Application.OnTime Heure, "Interruption"
End Sub

Private Sub Interruption()
With ThisWorkbook

If .Sheets(1).[Chrono] = 0 Then
'si les formulaires de saisie de RV on ne lance pas la fermture automatique car bug excel
If AjoutRV.Visible = True Or ModifierRV.Visible = True Then
msgbox "Pensez à fermer l'agenda s'il n'est pas utilisé"
Programmation
Else

On Error Resume Next
Do
Err.Clear
Fermeture.Show vbModeless
Loop Until Err = 0
End If
Else
Programmation
End If
End With
End Sub
Sub SupprimeInterruption()
'supprime le timer à la fermeture du fichier, s'il ne l'est pas déjà.
'Sinon le fichier risque de se rouvrir tout seul !
Dim Heure As Date
On Error Resume Next
Heure = ThisWorkbook.Sheets(1).Evaluate("ChronoTime")
Application.OnTime Heure, "Interruption", schedule:=False
End Sub



Modifié par chrysaoff le 03/02/2016 17:23
gilbert_rgi
 Posté le 03/02/2016 à 17:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Donc vous avez des systèmes différents sur vos ordinateurs

ceux de vos collègues sont en 32bits et vous en 64bits

pour palier à ça dans le vba du fichier remplacer la ligne

Declare Function GetTickCount Lib "Kernel32" () As Long ' pour userform compte a rebours

par celles ci

#If Win64 Then
Declare PtrSafe Function GetTickCount Lib "Kernel32" () As LongLong
#Else
Declare Function GetTickCount Lib "Kernel32" () As Long ' pour userform compte a rebours
#End If

j'ai testé et ça fonctionne chez moi

Salutations

Gilbert

chrysaoff
 Posté le 04/02/2016 à 09:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
gilbert_rgi a écrit :

Bonjour,

Donc vous avez des systèmes différents sur vos ordinateurs

ceux de vos collègues sont en 32bits et vous en 64bits

pour palier à ça dans le vba du fichier remplacer la ligne

Declare Function GetTickCount Lib "Kernel32" () As Long ' pour userform compte a rebours

par celles ci

#If Win64 Then
Declare PtrSafe Function GetTickCount Lib "Kernel32" () As LongLong
#Else
Declare Function GetTickCount Lib "Kernel32" () As Long ' pour userform compte a rebours
#End If

j'ai testé et ça fonctionne chez moi

Salutations

Gilbert

Merci beaucoup,

non seulement par la rapidité de votre réponse mais également par l'efficacité de celle-ci. Cela fonctionne très bien.

gilbert_rgi
 Posté le 04/02/2016 à 09:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Vous allez sans doute rencontrer ce genre de problème sur d'autres fichiers si vous utilisez des macros avec des API

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
59,99 €Souris Logitech MX Master 2S à 59,99 €
Valable jusqu'au 23 Février

Amazon fait une promotion sur la souris sans fil Logitech MX Master 2S qui passe à 59,99 € livrée gratuitement alors qu'on la trouve ailleurs autour de 85 €. Cette évolution de la MX Master est équipée de la technologie Logitech Flow. Cette dernière, révolutionnaire, vous permet de déplacer le curseur de votre souris d'un ordinateur à un autre (jusqu'à 3 ordinateurs), d'effectuer des copier/coller de textes, d'une images ou encore de fichiers d'une machine à une autre. Vous allez ainsi pouvoir transférer vos contenus entre 3 ordinateurs différents sans la moindre difficulté. 


> Voir l'offre
79,99 €Kit 5.1 Logitech Z607 bluetooth à 79,99 €
Valable jusqu'au 19 Février

Amazon fait une promotion sur le kit d'enceintes 5.1 Logitech Z607 qui passe à 79,99 € livré gratuitement alors qu'on le trouve ailleurs autour de 125 €. Ce kit dispose d'un caisson de basses, d'une voie centrale et de 4 satellites offrant au total  une puissance de crête de 160 Watts et 80 Watts en puissance RMS. De quoi profiter pleinement de vos films et de vos jeux dans une pièce moyenne. D'autant que des câbles extra-longs (6,2 m) sont fournis pour les satellites arrières. Grâce à ses entrées 3.5mm et RCA, vous pourrez relier le kit à un PC, à une console de jeux, un lecteur DVD/Blu-Ray tandis que sa connexion bluetooth vous permettra de l'utiliser pour vos appareils sans fil. Vous pouvez même lui brancher directement une carte mémoire ou une clé USB et écouter la radio FM. Une télécommande (sans fil) vous permettra de contrôler tout cela. Une excellente affaire !


> Voir l'offre
GratuitJeu PC Aztez gratuit
Valable jusqu'au 20 Février

Epic Game Store offre actuellement le jeu PC Aztez. Aztez est un jeu hybride unique, entre beat them all et stratégie au tour par tour, qui se déroule au sein de l'Empire aztèque. Mettez fin aux conflits qui ravagent votre empire en pleine expansion dans des combats beat them all en temps réel et hautement techniques.


> Voir l'offre

Sujets relatifs
Excel - Graphe Bubble - modification automatique couleurs bulles
filtre recherche excel
Onglet Menu disparu dans Excel
Sélectionner une partie d'une Feuille Excel
Copie partie Tableau Excel vers...
excel
EXCEL 2016 gratuit?
insertion de fichier excel sur powerpoint 2013
tableau excel
Fusionner 2 tableaux excel comprenant des cellules vides
Plus de sujets relatifs à Excel VBA: Erreur compilation...:FermetureAuto
 > Tous les forums > Forum Bureautique