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 :

VBA Condition pour ouvrir un classeur Excel dans répertoire


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Finance
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Finance
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Par défaut VBA Condition pour ouvrir un classeur Excel dans répertoire
    Bonjour,

    je suis novice dans VBA et je bloque sur une action qui pour vous, doit etre simple.
    Je vous expose mon cas.
    Je travail sur un tableau A ("aujourdhui") Excel qui pioche plusieurs informations. De ces informations, il y en a une qui se situe sur un tableau B ("aujourdhui -7 jours).
    Je pioche la colonne "F" du tableau B et le colle sur Tableau A en colonne "E".
    Chaque Lundi, ce tableau se construit et s'enregistre dans le répertoire "C:\Compta\SCORING\Weekly Report\" & format (date, "yyyy") & "\" & format (date,"mmmm") & "\"

    Mon problème est le suivant; je souhaite dire, s'il n'y a pas de Tableau de moins de 7 jours dans le repertoire, alors prendre celui de moins de 8 jours, sinon prendre celui de moins 6 jours.
    J'ai trouvé cette façon de faire dans le cas où le lundi est un jour férié.

    Merci de vos lumières.

    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sub open()
    Dim chemin, nom, nom2,  nom3, nom4 as string
    Dim wb As Workbook
     
    chemin = "C:\Compta\SCORING\Weekly Report\" &  format (date, "yyyy") & "\" & format (date,"mmmm") & "\"
    nom  = tableau A
    nom2 = tableau -7 jours
    nom3 = tableau - 8 jours
    nom4 = tableau -6 jours
     
    If Dir(chemin & nom2) = "" Then Set wb = Workbooks.Open(chemin & nom3) else Set wb = Workbooks.Open(chemin & nom4)
     
    end sub

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 161
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu as un exemple exact du nom du fichier ? là c'est un peu compliqué de deviner comment on doit la reconstituer

    admettons que le format soit le numéro du jour, ça ressemblerait à ça

    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
    19
    Sub Ouvrir()
    Dim Chemin As String
    Dim Jours()
    Dim j As Integer
    Dim Nom as String
    Dim Wb As Workbook
        Chemin = "C:\Compta\SCORING\Weekly Report\" & Format(Date, "yyyy") & "\" & Format(Date, "mmmm") & "\"
        Jours = Array(7, 8, 6)
     
        For j = LBound(Jours) To UBound(Jours)
            Nom = Chemin & Format(Date - Jours(j), "dd") & ".xlsx"  ' à adapter
            If Dir(Nom) <> "" Then
                Set Wb = Workbooks.Open(Nom)
                Exit For
            End If
        Next j
     
        If Wb Is Nothing Then Msgbox "Les trois fichiers sont inexistants"
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Finance
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Finance
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Par défaut suite
    Bonjour,
    merci de ta réponse.
    Je te donne plus de détails.

    J'ai mon tableau qui se nomme : Rapport buyer 040416
    Mon autre tableau est Rapport buyer 290316.

    Je vais essayer de mieux expliquer ma demande.
    Imaginons, aujourd'hui nous sommes le Lundi 04 Avril 2016.
    J'ouvre mon fichier excel et je lance ma macro.
    La semaine dernière, le Lundi 28 Mars 2016 était un jour férié. Du coup, j'ai effectué un travail sur un fichier excel le Mardi 29 Mars 2016.

    C'est un travail que je lance chaque Lundi.
    S'il y a un jour férié entre les 2 semaines, ma macro bug car il n'y a pas 7 jours d'écart entre les 2 tableaux.

    Il faut une formule qui dit, si ton tableau d'il y 7 jours n'existe pas, je vais piocher un autre tableau, celui d'il y a 6 jours, sinon celui d'il y a 8 jours.

    Merci de ton aide.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    sub ouvrir()
     
    Dim route, chemin, chemin2, chemin3, nom, nom2, nom3, nom4, sentier, sentier2 As String
    Dim wb as workbook
    Route = ""C:\Compta\SCORING\Weekly Report\" &  format (date, "yyyy") & "\" & format (date,"mmmm") & "\" & format (date, ""ddmmyy")
    chemin = "C:\Compta\SCORING\Weekly Report\" &  format (date-7, "yyyy") & "\" & format (date-7,"mmmm") & "\" & format (date-7, ""ddmmyy")
    chemin2 = "C:\Compta\SCORING\Weekly Report\" &  format (date-6, "yyyy") & "\" & format (date-6,"mmmm") & "\" & format (date-6, ""ddmmyy")
    chemin3= "C:\Compta\SCORING\Weekly Report\" &  format (date-8, "yyyy") & "\" & format (date-8,"mmmm") & "\" & format (date-8, ""ddmmyy")
    Sentier = "Q:\Compta\SCORING\Weekly Report Rating\" & Format(Date, "yyyy")
    Sentier2 = "Q:\Compta\SCORING\Weekly Report Rating\" & Format(Date, "yyyy") & "\" & Format(Date, "mmmm")
     
     
    nom = "Rapport Buyer " & Format(Date, "ddmmyy") & ."xls"
    nom2 = "Rapport Buyer " & Format(Date - 7, "ddmmyy") & ."xls"
    nom3 =  "Rapport Buyer " & Format(Date - 6, "ddmmyy") & ."xls"
    nom4=  "Rapport Buyer " & Format(Date - 8, "ddmmyy") & ."xls"
     
     
    If Dir(chemin & nom2) = "" Then Set wb = Workbooks.Open(chemin2 & nom3) else Set wb = Workbooks.Open(chemin3 & nom4)
    Workbooks.Add
    If Dir(Sentier, 16) = "" Then MkDir Sentier
    If Dir(Sentier2, 16) = "" Then MkDir Sentier2
    ActiveWorkbook.SaveAs route & nom 
     
     
    end sub

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/02/2010, 21h41
  2. Ouvrir plusieurs classeurs Excel dans un seul processus
    Par zoopsys dans le forum VBA Access
    Réponses: 2
    Dernier message: 06/12/2008, 18h27
  3. Réponses: 2
    Dernier message: 11/06/2008, 15h38
  4. [VBA-EXCEL]-condition pour ouvrir une msgbox
    Par captaine93 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/08/2006, 21h51
  5. Réponses: 28
    Dernier message: 22/05/2006, 17h25

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