Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Insertion d'une formule dans une cellule à l'ouverture du classeur...

CyberNeo99

XLDnaute Occasionnel
Bonjour à tous,

Je voudrais insérer un code VB dans Workbook qui ferait l'action suivante, aller mettre une formule dans une feuille et une cellule particulière

Par exemple j'ai le code suivant

If Split(Application.Version, ".")(0) < 12 Then

utilitaire = Application.AddIns("Analysis ToolPak").Installed
Application.AddIns("Analysis ToolPak").Installed = True


End If

Il active une macro complémentaire si la version de Excel est inférieur à 2007. je voudrais que si la version de Excel soit inférieur à 2007 il puisse mettre des formule dans des cellules en particluiers et que si la version est 2007 et + il mettre une autre formule. Ce code j'aimerais l'avoir lors du test que j'ai mis auparavant.

Merci à l'avance


Neo
 

Pièces jointes

  • Test version inférieur à 2007.xls
    16 KB · Affichages: 44
Dernière édition:

Hippolite

XLDnaute Accro
Re : Insertion d'une formule dans une cellule à l'ouverture du classeur...

Bonjour,
Quelque chose comme (non testé)
VB:
Private Sub Workbook_Open()
	If Split(Application.Version, ".")(0) < 12 Then
		Range("E10").Formula = "=SI(C10="","",WORKDAY(C10,-6,Jours_Congés))"
	Else
		Range("E10").Formula = "SI(C10="","",SERIE.JOUR.OUVRE(C10,-6,Jours_Congés))"
	End If
End Sub
A+
 

CyberNeo99

XLDnaute Occasionnel
Re : Insertion d'une formule dans une cellule à l'ouverture du classeur...

Bonjour Hippolite,

Merci pour ton aide.

Je crois qu'il n'y a qu'une petite coquille car avec les double guillemets c'est-à-dire la partie de la formule où il y a le test SI(C24="", ce double guillemet créer un Pb car lorsqu<il ouvre le classeur il copie la formule mais ce double guillemet de vient un juste un " simple. je trouve cela bizarre le code

Range("E24").Formula = "=SI(C24="","",WORKDAY(C24,-6,Jours_Congés))"

devient

Range("E24").Formula = "=SI(C24=",",WORKDAY(C24,-6,Jours_Congés))"


Merci à l'avance

Neo
 
Dernière édition:

Hippolite

XLDnaute Accro
Re : Insertion d'une formule dans une cellule à l'ouverture du classeur...

Re,
Je suis allé un peu vite, et sans excel sous la main je ne m'en suis pas aperçu.
Il faut doubler les guillemets de la formule :
VB:
Private Sub Workbook_Open()
    If Split(Application.Version, ".")(0) < 12 Then
        Range("E10").Formula = "= SI(C10 = """", """",WORKDAY(C10,-6,Jours_Congés))"
    Else
        Range("E10").Formula = "= SI(C10 = """", """",SERIE.JOUR.OUVRE(C10,-6,Jours_Congés))"
    End If
End Sub
 
Dernière édition:

CyberNeo99

XLDnaute Occasionnel
Re : Insertion d'une formule dans une cellule à l'ouverture du classeur...

Bonjour Hippolite,

Effectivement ça règle mon Pb et maintenant il écrit la formule entier avec les doubles guillemets sauf que le Pb il écrit #NOM? et si j'entre dans la cellule et fait ENTER la formule devient correct. Je ne sais pas pourquoi il écrit la formule correctement et qu'il génère une erreur et en entrant dans la cellule et en faisant ENTER tout devient correct.

Merci encore pour ton aide.

Neo
 

Hippolite

XLDnaute Accro
Re : Insertion d'une formule dans une cellule à l'ouverture du classeur...

Re,
J'ai corrigé la deuxième formule qui n'avait pas de signe = mais je pense que ça n'a rien à voir.
Selon le dicton "la nuit porte conseil" je verrai demain.
A+
 

CyberNeo99

XLDnaute Occasionnel
Re : Insertion d'une formule dans une cellule à l'ouverture du classeur...

Bonjour Hippolite,

par contre il y a une chose qui m'échappe. Comment fait-il pour savoir dans quel page mettre la formule car il n'y a aucune référence à la page dans la formule et puisque j'ai plusieurs pages je me demande comment fait-il pour la mettre dans la bonne page car il la mets dans la bonne page...


Merci à l'avance pour la réponse.


Neo
 

Hippolite

XLDnaute Accro
Re : Insertion d'une formule dans une cellule à l'ouverture du classeur...

Bonsoir,
Bonne remarque, Excel prend la feuille active (celle du dernier enregistrement).
Il serait plus prudent de compléter Sheets("Nomdelafeuille").Range("E10").Formula = ...
A+
 

CyberNeo99

XLDnaute Occasionnel
Re : Insertion d'une formule dans une cellule à l'ouverture du classeur...

Bonjour Hippolite,

Je me disais aussi que ce n'était pas logique car aucune allusion au nom de la feuille. Merci encore j'ai intégré la partie qui spécifie la feuille et ça foncitonne. J'avais pensé ajouté ce bout de code car je l'ai vu dans d'autre code et comme je ne suis pas programmeur alors pas sûr.... Je me fiais à ma logique car ayant étudié en science je me disais que...


Grand Merci encore

Neo
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…