[VBA] Condition SI dans une macro

Résolu/Fermé
oylan Messages postés 8 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 14 septembre 2012 - 12 sept. 2012 à 13:23
oylan Messages postés 8 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 14 septembre 2012 - 14 sept. 2012 à 10:15
Bonjour à tous,

Me revoila... (Oh non, pas encore lui) :p

Je me disais, que je pourrais avoir peut-être de l'aide sur cette fonction, qui as pour but de tester la valeur dans la cellule, et de retourner une autre valeur si cette valeur est égale à datecreation, auteurs, titres... etc... :

Cependant, il me retourne toujours (dans la cellule) "#NOM?!" ... Donc, si vous pouviez m'aider !

J'espère avoir été asser explicite

Merci beaucoup !!!!

Code : VB.NET

Option Explicit
Dim valeur As String
Dim datecreation As String
Dim auteurs As String
Dim Titres As String
Sub get_wss_properties(valeur)
If valeur = datecreation Then GoTo date_creation
Else
If valeur = auteurs Then GoTo auteur
Else
If valeur = Titres Then GoTo Titres
Else
ActiveCell.Value = "Inserez autre chose"
End Sub
Sub date_creation()
ActiveCell = ActiveWorkbook.BuiltinDocumentProperties("creation date")
ActiveCell.NumberFormat = "dd/mm/yyyy"
End Sub
Sub auteur()
ActiveCell = ActiveWorkbook.BuiltinDocumentProperties("author")
End Sub
Sub Titre()
ActiveCell = ActiveWorkbook.BuiltinDocumentProperties("Title")
End Sub



A voir également:

7 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 12/09/2012 à 13:43
Bonjour,

pourquoi VB.NET ?


Michel
0
oylan Messages postés 8 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 14 septembre 2012
12 sept. 2012 à 14:06
Parce que j'ai copié ce que j'avais mis dans un autre forum (qui lui à des codes) (pour la mise en page) et il y'a que le VB.NET qui ressemble à la structure du VBA ^^

Regarde ici : https://openclassrooms.com/forum/sujet/excel-2007-goto-avec-condition-40336#r7701993
0
oylan Messages postés 8 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 14 septembre 2012
12 sept. 2012 à 14:15
Voila, j'ai modifier mon code comme ceci :

Option Explicit
Dim A As String
Dim datecreation As String
Dim auteurs As String
Dim Titr As String
Function get_wss_properties(A)
If A = "datecreation" Then
date_creation
ElseIf A = "auteurs" Then
auteur
ElseIf A = "Titr" Then
Titre
End If
ActiveCell.Value = "coucou"
End Function
Sub date_creation()
ActiveCell = ActiveWorkbook.BuiltinDocumentProperties("creation date")
ActiveCell.NumberFormat = "dd/mm/yyyy"
End Sub
Sub auteur()
ActiveCell = ActiveWorkbook.BuiltinDocumentProperties("author")
End Sub
Sub Titre()
ActiveCell = ActiveWorkbook.BuiltinDocumentProperties("Title")
End Sub



Mais maintenant j'obtiens un "#VALEUR?"

Que faire ?
0
Le Pingou Messages postés 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 1 426
12 sept. 2012 à 17:46
Bonjour,
Vous dites : Mais maintenant j'obtiens un "#VALEUR?"
A quel endroit !

0
oylan Messages postés 8 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 14 septembre 2012
13 sept. 2012 à 15:41
Bonjour !,

Dans la cellule désirée... mais, je croit que c'est parce que cela doit me faire une réfèrence circulaire...

Vu qu'il modifie à double sa valeur (mais vu qu'il y a un test... ca tourne en boucle !)
0
Le Pingou Messages postés 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 1 426
12 sept. 2012 à 21:45
Bonjour,
C'est vraiment étonnant, si vous appliquez exactement la réponse obtenu (MichD-11.sept.2012) (pas de michel_m .... Salutations) sur [Codes-Sources] vous récupérez les informations désirez.
Ou il y a un autre problème !

0
oylan Messages postés 8 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 14 septembre 2012
13 sept. 2012 à 15:42
Bonjour,

Je ne sais absolument pas pourquoi cela ne marche pas :/

Je vais esseyer de modifier avec selement des SI et non des GoTo, cela vien probablement de la.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 1 426
13 sept. 2012 à 16:05
Bonjour,
Une chose est sûre, le code telsque vous l'avez posté, je l'ai testé et il ne fonctionne pas du tout, il donne erreur sur erreur .... !
Par contre je répète que le code proposé sur Codes-Sources est OK.
La suite sans moi.

0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 13/09/2012 à 16:17
Bonjour,

Dim A As String
Si ta cellule contient une date au format excel ou un nombre tu auras #VALEUR!

Et pourquoi faire des sub ?
Autant mettre la ligne de code dans le if et les elseif

eric

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 13/09/2012 à 16:50
Bonjour

fonction personnalisée

Function get_wss_properties(propriete As String) As String
 With ActiveWorkbook
     Select Case propriete
          Case "date création"
               get_wss_properties = Format(.BuiltinDocumentProperties("creation date"), "dd/mm/yy")
          Case "auteur"
               get_wss_properties = .BuiltinDocumentProperties("author")
          Case "titre"
               get_wss_properties = .BuiltinDocumentProperties("Title")
          Case Else
               get_wss_properties = "??????"
     End Select
End With
End Function


Michel
0
Le Pingou Messages postés 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 1 426
13 sept. 2012 à 17:35
Merci michel_m,
Je le prends comme exemple.
Salutations
Le Pingou
0
Merci beaucoup, cela est parfait ! J'étais arrivé à peut pret à sa :) Mais la... c'est totalement parfait ! Merci michel !
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
14 sept. 2012 à 08:45
J'étais arrivé à peut pret à sa :)

:-D ben voyons! manque pas d'air le newbie !!!!
0
oylan Messages postés 8 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 14 septembre 2012
14 sept. 2012 à 10:15
hahaha :)

J'arrivais au même données, mais sans les case :) J'avoue que ta solution m'épate ! :D

Et, je suis pas un newbie! J'ai déja fait plein d'instance (BWAHAHAHAHA) :-D

:okjesort:
0