Ouvrir un fichier Excel avec des valeurs dans des cellules

Bonjour,

Je cherche le bon code VBA pour faire la chose suivante:

Lors de l'ouverture de mon fichier XLSM, je souhaite que les cellules F3, E4 et E5 prennent toujours les valeurs suivantes:

F3 = 0 (zéro le chiffre)

E4 = 15' - 16'

E5 = Eco-Legér

J'ai écrit le code suivant, mais lorsque j'ouvre mon fichier, il ne se passe rien... aucune valeur dans les cellules F3, E4,et E5

Private Sub Workbook_Open()

With Worksheets("TEST")

If .Range(F3) <> "0" Then Range(F3) = "0"

If .Range(E4) <> "0" Then Range(E4) = "15' - 16'"

If .Range(E5) <> "0" Then Range(E5) = "Eco Leger"

End With

End Sub

Merci d'avance pour votre aide

9test-vba.xlsm (26.37 Ko)

Bonsoir,

Cela aurait dû déclencher des erreurs... !

Private Sub Workbook_Open()
    With Worksheets("TEST")
        If .Range("F3") <> "0" Then .Range("F3") = "0"
        If .Range("E4") <> "0" Then .Range("E4") = "15' - 16'"
        If .Range("E5") <> "0" Then .Range("E5") = "Eco Leger"
    End With
End Sub

Regarde les différences (ce que tu as omis d'écrire), pour que ça fonctionne, conformément à la syntaxe VBA.

Maintenant, même si cela fonctionne, ce n'est pas le meilleur code qu'on puisse produire et son utilité n'est pas patente !

Cordialement.

Bonjour,

Plusieurs erreurs ...

La plus notable ... les évènements Workbook sont à placer .. dans le module ThisWorkbook ...

Ton fichier joint ...

5test-vba.xlsm (16.69 Ko)

Merci James d'avoir réparé cette omission notoire de ma part...

Cordialement.

Bonjour vdlattre,

Je confirme d'abord les réponses précédentes de James007 et MFerrand :

1) Le code de la sub Workbook_Open() doit être dans ThisWorkbook

2) Pour les Range() à droite de Then, il faut bien un point devant

J'ajoute tout ce qui est ci-dessous.


Ton classeur contient une seule feuille, qui est donc forcément la feuille active ; si ça restera comme ça

(tu n'ajouteras pas d'autre feuille, même plus tard), tu peux enlever ton bloc With, donc tous les points

correspondants, car si une feuille n'est pas indiquée explicitement, c'est la feuille active qui est utilisée.

Private Sub Workbook_Open()
  If Range("F3") <> "0" Then Range("F3") = "0"
  If Range("E4") <> "0" Then Range("E4") = "15' - 16'"
  If Range("E5") <> "0" Then Range("E5") = "Eco Leger"
End Sub

À propos des 3 tests

rappel : une cellule vide a pour valeur le nombre 0 ;

ton 1er test serait plutôt : If Range("F3") <> 0 Then Range("F3") = 0

sans les guillemets autour de 0 (à moins que tu aies décoché l'option Excel

générale « ☐ Afficher un zéro dans les cellules qui ont une valeur nulle »).

Je crois que tes 2 tests suivants seraient plutôt :

If Range("E4") <> "15' - 16'" Then Range("E4") = "15' - 16'"

If Range("E5") <> "Eco Leger" Then Range("E5") = "Eco Leger"

(peut-être un oubli d'adaptation après un copier / coller ? )


Tu as écrit : « je souhaite que les cellules F3, E4 et E5 prennent toujours les valeurs suivantes... » ;

dans ce cas, pourquoi faire un test au préalable ? code VBA (avec notation abrégée) :

Private Sub Workbook_Open()
  [F3] = 0: [E4] = "15' - 16'": [E5] = "Eco Léger"
End Sub

et peu importe si les 3 mêmes valeurs y étaient déjà : ça prend

moins d'une seconde pour écrire ces 3 données !


Merci de me donner ton avis.

Cordialement

Merci à tous pour votre aide...

Je ne suis pas un expert de VBA et votre aide m'a été très utile !

vdlattre a écrit :

Merci à tous pour votre aide...

Je ne suis pas un expert de VBA et votre aide m'a été très utile !

Merci pour tes remerciements .. à la Communauté ...

Rechercher des sujets similaires à "ouvrir fichier valeurs"