VBA: Probleme synthaxe appel macros suivant conditions

sim

XLDnaute Occasionnel
Bonjour a toutes et a tous,

Je viens vers vous aujourd'hui car j'ai un probleme pour appeler mes macros.

En fait j'ai 4 macro et la condition de temps

Macros:

1)Historique_Ouvert
2)Feuilles_historique_pretes

3)Importation_annees_pasees
4)Importation_annee_encours

Je voudrais pouvoir dire:

Si macro 1) et 2) alors regarder l'annee si Janvier alors macro 3) sinon macro 4)

La notion de temps je l'ai programmer comme ca:

Code:
If iYear = 0 Or Not CStr(iYear) Like "####"

J'ai essayer de faire quelque chose du genre

Code:
Public Sub Init_Historical_FX()

If iYear = 0 Or Not CStr(iYear) Like "####" And HistoricalWorkBookOpen_FX(REMOTE_DIRECTORY) And SetHistoricalWorkSheet_FX Then ImportationDatasFichierFerme_FX
Esle
If HistoricalWorkBookOpen_FX(REMOTE_DIRECTORY) And SetHistoricalWorkSheet_FX Then Importation_annee_encours
End Sub

Mais cela ne fonctionne pas, je pense que la syntaxe n'est pas bonne

J'aimerai beaucoup qu'on m'explique comment faire..:)

Merci d'avance.

Sim
 

sim

XLDnaute Occasionnel
Re : VBA: Probleme synthaxe appel macros suivant conditions

Bonjour Pierrot!! :)

Oui j'ai peut etre ete radin sur les details

Je fais un historique dans lequel on a trois feuille "M", "M-1", "Rapport"

La macro HistoricalWorkBookOpen_FX a pour action
Si janvier creation d'un nouveau classeur Historical_de l'anne en cours
Si non il trouve le classeur et l'ouvre

La Macro SetHistoricalWorkSheet_FX
Verifie la presence des feuille du classeur et si jamais elles ont pas ete cree elle les cree

La macro ImportationDatasFichierFerme_FX
Elle prend les dernieres donnees ("M") de Decembre de l'annee passe et les cole dans le nouveau classeur dans la feuille ("M-1")

La macro Importation_annee_encours
Supprime la feuille du mois passe M-1
Renomme M en M-1

Dans tout les cas les deux premieres macro doivent etre lancer

mais en fonction du mois ( 1er mois de l'annee ou les autres)

1er mois de l'annee ImportationDatasFichierFerme_FX
Else Importation_annee_encours


Voila j'espee que c'est plus clair, et j'arrive pas a appeler les macro en fonction de ses criteres....

Merci! :)

Sim
 

sim

XLDnaute Occasionnel
Re : VBA: Probleme synthaxe appel macros suivant conditions

Re,

Oui mais cela ne prends pas en compte qu'il faut que les deux premieres macro soit lancer....arfff je vais y refelchir plus en detail, Je reviendrai sur le fil pour te dire ou j'en suis!!

Merci en tout cas. :)

Sim
 

sim

XLDnaute Occasionnel
Re : VBA: Probleme synthaxe appel macros suivant conditions

Bonjour Pierrot!, le forum :)

Bon finalment la solution simple ne convient pas, et puis je me suis rendu compte que par securite il ne faut pas tester le mois mais la presence du classeur

En fait il faudrait que j'arrive a faire fonctionner cette logique

VB:
Public Sub Init_Historical_FX()
    
    Dim DataSource As String
    Dim wbCurrent As String
    
    Set wkHistoFX = Nothing
    
    wbCurrent = "historical_FX_" & Year(Now) & ".xls"
    
    Set wkHistoFX = Workbooks(wbCurrent)
    
    DataSource = Trim(REMOTE_DIRECTORY & Trim(wbCurrent))

    If Dir(DataSource) <> "" Then
    HistoricalWorkBookOpen_FX
    SetHistoricalWorkSheet_FX
    ImportationDatasFichierFerme_FX
    Else
    HistoricalWorkBookOpen_FX
    SetHistoricalWorkSheet_FX
    Preparation_HistoFX_Current
    End If
    
    
End Sub

Probleme avec le code ci dessous:

  • HistoricalWorkBookOpen_FX
  • SetHistoricalWorkSheet_FX

Ces deux macros sont des Fonction avec Option donc de la facon dont j'ai ecrit les appels de macro cela genere un code d'erreur

Compile Error:

Argument not Optional


Est ce que quelqu'un saurait comment appeler ces macros tout en respectant la logique du code ci dessus!! Ca serait vraiement top!! :)

Haaa et j'oubliais, j'aimerai beaucoup savoir si on peut mettre la condition selon laquelle :

que le classeur existe ou pas chaque macro a pour condition le bon deroulement de la precedente...

Code:
IF HistoricalWorkBookOpen_FX And SetHistoricalWorkSheet_FX Then ImportationDatasFichierFerme_FX

Quelque chose dans le genre...:confused:

Merci d'avance pour le coup de main!!!
:)

Sim
 

sim

XLDnaute Occasionnel
Re : VBA: Probleme synthaxe appel macros suivant conditions

Re,

Voila la solution pour les curieux! :)

Code:
Public Sub Init_Historical_FX()
    
    Dim wkHistoFX As Workbook
    Dim wbCurrent As String
    Dim DataSource As String
    
    
    Set wkHistoFX = Nothing
    
    wbCurrent = "historical_FX_" & Year(Now) & ".xls"
    
    On Error Resume Next
    Set wkHistoFX = Workbooks(wbCurrent)
    On Error GoTo 0
    
    DataSource = Trim(REMOTE_DIRECTORY & Trim(wbCurrent))

    If Dir(DataSource) <> "" Then
        
        If HistoricalWorkBookOpen_FX(REMOTE_DIRECTORY) And SetHistoricalWorkSheet_FX Then
        Preparation_HistoFX_Current
        End If
    Else
        If HistoricalWorkBookOpen_FX(REMOTE_DIRECTORY) And SetHistoricalWorkSheet_FX Then
        ImportationDatasFichierFerme_FX
        End If
    End If
    
    
End Sub

C'est le (REMOTE_DIRECTORY) qui manquais, mais vous ne pouviez pas le savoir car je ne vous avais pas mis le code de la fonction..que voila! :)

Code:
Public Function HistoricalWorkBookOpen_FX(ByVal strDirectory As String, Optional iYear As Integer = 0, Optional bCreateIfNotExists As Boolean = True) As Boolean

Bonne journee :)

Sim
 

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16