macro qui marche même quand le classeur est fermé

L

ludi

Guest
bonjour à tout le monde,

je desirerai savoir s'il est possible de faire activer une macro même si la classeur est ferme

j'ai une macro qui se declenche si la diffrence entre la date du jour et une date inscrite sur une feuille est supérieure à 50jours

je voudrai savoir si cette macro peut etre declancher meme si le classeur est fermé et faire apparaitre une boite de dialogue

merci de votre aide
ludi
 

excalibur

XLDnaute Impliqué
bonjour ludi , le forum je crois pas que cela soit possible si le classeur est ferme a moins qu un autre classeur excel ouvre ton classeur qui celui ci contient un macro qui ce lance a ouverture ou programmer windows pour qui ouvre ton classeur a un heure determine salutations
 

Papy Novice

Nous a quitté
Repose en paix
Cher ami bonsoir.
Ceci peut-il t'aider ?

Dans le Fil 'Spy' où tu étais présent hier soir mon copain Michel_M a posté une Démo ADO, qui est aussi ta solution pour écrire dans un classeur fermé, Pour que cela puisse fonctionner : as tu coché dans :
outils | références de VBE la bibliothèque microsoft activeX data object 2.x library ?
'x' dépend des versions utilisées (x=1 pour xl 2000) Le pb dans la solution proposée au 'très discret' djaro est qu'on ne peut pas protéger le classeur 'toto' ou il faudrait indiquer le pwd dans la connection et protéger la macro tu trouveras l'aide sur ADO dans l'aide ....Access; à consulter également les démos de notre MichelXLD national sur ce forum qui te guideront alors, c'est pas simple, mais je propose du 'prédigéré' à ceux qui feront une recherche sur ce thème.
' PRODEDURE D'ECRITURE DANS UN CLASSEUR FERME
Sub classeur_ferme()
Dim fichier$, cell As Range
fichier = 'C:Documents and SettingsFILTEPMes documentsTOTO.xls'
SetExternalDatas fichier, 'Feuil1', 'h18', ICI CE QUE TU VEUX ECRIRE (tecte brut entre guillemets, sinon Range A.... blabla...
End Sub
' A ACCEPTER TOUT DIGERE POUR LE MOMENT (sauf pour les pros)
Sub SetExternalDatas(DestFile As String, _
DestFeuille As String, _
DestCellAdr As String, _
DataToWrite As Variant)
Dim oConn 'As ADODB.Connection
Dim oCmd 'As ADODB.Command
Dim oRS 'As ADODB.Recordset
Dim RangeDest
'd'après Rob Bovey, mpep
' Open a connection to the Excel spreadsheet
Set oConn = CreateObject('ADODB.Connection') 'New ADODB.Connection
oConn.Open 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
'Data Source=' & DestFile & ';' & _
'Extended Properties=''Excel 8.0;HDR=No;'';'
' Create a command object and set its ActiveConnection
Set oCmd = CreateObject('ADODB.Command') 'New ADODB.Command
oCmd.ActiveConnection = oConn
' This SQL statement selects a cell range in the 'feuilleTest' worksheet.
'1 Sélection pour écrire dans une seule cellule
RangeDest = DestCellAdr & ':' & DestCellAdr
oCmd.CommandText = 'SELECT * from `' & DestFeuille & '$' & RangeDest & '`'
' Open a recordset containing the worksheet data.
Set oRS = CreateObject('ADODB.Recordset') 'New ADODB.Recordset
oRS.Open oCmd, , 1, 3 'adOpenKeyset, adLockOptimistic
' met a jour la dernière ligne
oRS(0).Value = DataToWrite
oRS.Update
'ferme la connection
oConn.Close
Set oConn = Nothing
Set oCmd = Nothing
Set oRS = Nothing
End Sub
Philippe , tu devrais suivre les conseils de Michel et activer la bibliothèque microsoft activeX data object 2.x library dans l'editeur de macros Outils References coches la ligne 'microsoft activeX data object 2.x library' ensuite Cliques sur OK pour Valider ce qui te permettrait d'écrire sans les apostrophes ...;o)...
Dim oConn As ADODB.Connection
Dim oCmd As ADODB.Command
Dim oRS As ADODB.Recordset
cela te simplifiera le travail pour l'utilisation de ce genre de procédures , et pourra aussi etre une aide précieuse grace à la saisie semi automatique d'Excel

Amicalement, Jean
 
L

ludi

Guest
Désolé papa Novice mais moi je suis un VRAI debutante
quand à toi il me semble que tu vas pouvoir revois ton pseudo PaPa Expert plutot :p
je te remercie tout de même de m'avoir repondu
c'est la je comprend que ce tout ce que j'ai appris qui me semblait deja beaucoup n'est qu'une brouttille par rapport à vous tous

enfin je vais tout de meme essayer de decortiquer tout ca
par contre peu tu me dire ce que c ADO

Allez à bientot
et merci pour tout monsieur l'expert
 

Discussions similaires