IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Utiliser fonction dans Sub [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Par défaut Utiliser fonction dans Sub
    Bonjour,
    dans ma procédure ci dessous je voulais faire en sorte que la date prenne en compte les week end.
    je voulais gérer ça à part dans une fonction , puis mettre la date renvoyée dans le nom du fichier.
    je ne vois pas trop pourquoi ça ne fonctionne pas , apparemment cette ligne pose problème:

    ActiveWorkbook.SaveAs (Chemin & "Spheres Turnover Gas EUR " & Madate)




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Sub Gaspnltest()
    Dim Chemin As String
     
     
    Chemin = "T:\BackOffice\back dérivé listés\GAS\PNL\2016\September 2016\"
    Columns("I:I").Delete
    Columns("K:Q").Delete
    Columns("h:h").Hidden = True
    If Range("d4").Value = "Andrew Mason" Then
    Rows(4).Delete
    End If
    If Range("f3").Value = "GBP" Then
    ActiveWorkbook.SaveAs (Chemin & "Spheres Turnover Gas GBP " & Madate)
    Else
    ActiveWorkbook.SaveAs (Chemin & "Spheres Turnover Gas EUR " & Madate)
    End If
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Function Madate() As String
     
    If Format(Date, "dddd") = "Lundi" Then
     
    Madate = Date - 3
     
    Else
     
    Madate = Date - 1
    End If
     
    End Function
    merci de votre aide
    eric

  2. #2
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    BONJOUR
    Sans doute les / dans la date
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Par défaut
    c'est la méthode saveas qui ne fonctionne pas, ça ne vient pas des \
    merci qd mm

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, les caractères interdits dans un nom de fichier sont : "*/:<>?[\]|

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Remplace les slashs par des tirets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function Madate() As String
     
        Madate = Replace(Date - IIf(Format(Date, "dddd") = "lundi", 3, 1), "/", "-")
     
    End Function

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par ericparis Voir le message
    c'est la méthode saveas qui ne fonctionne pas, ça ne vient pas des \
    D'accord avec Oliv- :
    la date contient des "/"
    Un nom de fichier n'accepte pas les "/"
    Donc une date dans un nom de fichier, ça ne marche pas.

    Si tu veux que ça marche, il faudra utiliser la fonction Replace sur Madate pour changer les "/" en... autre chose (des "-" par exemple).
    https://msdn.microsoft.com/fr-fr/lib.../gg264409.aspx

  7. #7
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Par défaut
    en effet c'est bien les slash retourné par la fonction qui provoque l'erreur
    j'ai juste ajouté ça à la fin de ma fonction

    Madate= Format(Madate, "dd-mm-yyyy")

    thx

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Utiliser fonction dans Dll
    Par hotoh dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 19/11/2010, 01h17
  2. Utilisation fonction dans condition
    Par luc_chivas dans le forum Designer
    Réponses: 2
    Dernier message: 22/01/2010, 10h23
  3. Pb de blancs dans utilisation fonction FtpFindFirstFile
    Par AlvinTheMaker dans le forum MFC
    Réponses: 2
    Dernier message: 06/04/2005, 12h33
  4. Utilisation fonction définie dans un .Dll
    Par jeab. dans le forum Windows
    Réponses: 5
    Dernier message: 23/03/2004, 16h23
  5. impossible d'utiliser ma fonction dans un insert
    Par caramel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/04/2003, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo