Fonction Workbook open et conditionnel

Salut

J'essaye de mettre en place une commande à activer des l'ouverture du classeur.

Il me semble avoir compris que sur VBA, les lignes:

Private Sub Workbook_Open()

XXXXXX

End Sub

permettent de lancer les commandes "XXXXXX" à l'ouverture du classeur.

J'aimerai bien que cette commande "XXXXXX" soit une commande "IF", conditionnée par le fait qu'une case du classeur soit remplie ou non, de type:

"If Target.Column = 2 And Target.Count = 1 Then

Application.EnableEvents = False

Target.Offset(, 1) = Int((Range("A1") - Target) * 24)

Application.EnableEvents = True

End If"

Le problème est que, lorsque j'ouvre mon classeur, ça ne fait strictement rien. Ni execution, ni message de bog. Des conseils?

Merci d'avance

bonjour

pour mettre quelque chose dans workbookopen tu peux très bien mettre une condition.... mais j'avoue ne pas avoir compris ce que tu souhaites faire.... un calcul entre deux cellules ????

il faut cependant dire sur quelle feuille tu dois tester et quelle cellule...

exemple :

if sheets("feuille1").[A1] <> "" then msgbox "cellule non vide"

Fred

Bonjour Fred,

En fait j'ai une horloge en cell "A1"

Je vais avoir une date/heure fixe sur la colonne 2, (potentiellement sur une infinité de lignes)

Je veux que des que la cell de la colonne 2 contient une donnée (donc la date/heure), j'ai un calcul d'écart entre cette date/heure et mon horloge en "A1". J'ai pas besoin d'une actualisation permanente, un refresh lié à l'ouverture du classeur suffira.

Merci

Re

essai de fournir un fichier exemple....

le calcul doit se faire sur toutes les lignes ou il y a quelque chose sur la colonne B ?? et le résultat est stocké où ??? même ligne colonne A ??

fred

Alors, pour être précis, pour toutes les lignes du tableau:

Si cell de la colonne B remplie => Horodatage en colonne C => Différence entre horloge en A1 et horodatage C en colonne D

Le fichier est en PJ

Merci à toi

17exemple.xlsm (12.89 Ko)

re

ci joint une proposition

j'ai remis la même formule qu'il y avait dans ta feuille a savoir :

int((A1-cell en cours)*24) ....

j'avoue ne pas comprendre ce calcul....

Fred

16exemple-1.xlsm (15.60 Ko)

Merci Fred, je crois que c'est bon

En fait ce calcul est l'équivalent d'un Diffdate exprimé en heures. Je crois avoir vu que la formule Diffdate ne marchait pas sur VBA, j'en ai donc créée une décomposée qui permet de calculer l'écart en heures entre deux dates.

Mille merci!

Merci Fred, je crois que c'est bon

En fait ce calcul est l'équivalent d'un Diffdate exprimé en heures. Je crois avoir vu que la formule Diffdate ne marchait pas sur VBA, j'en ai donc créée une décomposée qui permet de calculer l'écart en heures entre deux dates.

Si j'ai besoin de rajouter d'autres commandes de ce genre, je repasse systèmatiquement par "Raffraichissement" si j'ai bien compris ?

oui c'est ça...

et n'oubli pas

fred

Rechercher des sujets similaires à "fonction workbook open conditionnel"