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 :

Test date pour ouvrir feuille !


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
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut Test date pour ouvrir feuille !
    Bonjour, j'essaie d'activer une feuille que j'ouvre tous les jours via outlook mais dont la date dans le libelle de la feuille change et peut etre le lendemain ou surlendemain.

    Donc l'idée est en dessous.

    j'essaie d'activer le nom de la feuille en incrementant date1 de1 jusqu'a tomber sur le bon nom.

    lorsque j'arrive sur --- Sheets("nomfeuille").Select ---- j'ai une erreur d'execution 9 --- l'indice n'appartient pas a la selection ---

    alors que la feuille est bien ouverte et existe en lecture seule.

    a cause de ca je ne peux pas tester l'instruction suivante -- resume next ----
    qui j'espere si le resultat precedent est faux rajoutera 1 a la date pour tomber sur le bon nom de feuille.

    Voila je ne m'en sors pas , et pour corsé je debute completement dans vba...

    merci d'avance aux ames charitables

    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
    Sub Macro1()
     
    Dim date1 As String
    Dim jour1 As Integer
    Dim nomfeuille As String
    'met au fomat us la date du jour
    date1 = Format((Now), "yyyymmdd")
     
    'Sub boucle_for()
     
        For jour1 = 0 To 5
            date1 = date1 + 1
          nomfeuille = ("JVk_" & date1 & "_001234_N_C_P")
        Sheets("nomfeuille").Select
        On Error Resume Next
     
     
        Next
     
    End Sub

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Par défaut
    Bonjour.
    Je pense qu'il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro1()
        Sheets(nomfeuille).Select
    End Sub
    et pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro1()
        Sheets("nomfeuille").Select
    End Sub

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Arnaud a raison.
    Le problème quand on utilise le nom d'une variable similaire à la valeur d'une constante c'est qu'on finit par s'emmêler les pinceaux.
    Attention aussi que la collection Sheets n'est pas rattachée à son objet parent qui par défaut est le classeur actif.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut non toujours le meme message
    C'est mieux mais avec la boucle ca va pas

    Mais j'ai une autre solution plus simple (enfin pas pour moi), et bien sur je n'arrive pas a la mettre en pratique, en bon boulet ...

    Pour résoudre mon souci je suis dans cette situation.

    un classeur ouvert qui s'appelle "test"
    un autre recu en pj de outlook qui commence toujours par "JVK" et qui est ouvert en lecture seule des fois que ca ait une importance

    je suis sur le classeur test et je veux ouvrir mon classeur importé.

    donc je pensais l'ouvrir avec les 3 premiers caracteres fixes, soit JVK et je fais ca, et toujours erreur 9, l'indice n'appartient pas a la sélection....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro1()
      Workbooks(Left(nomfeuille, 3) = "JVL").Activate
     End Sub
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro1()
         Sheets(Left(nomfeuille, 3) = "JVL").Activate
     End Sub
    je complete car j'ai oublier de préciser, ce que contient la variable nom feuille est bon bien sur, ca commence par JVK...

    merci de votre aide

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    j'aii trouvé, si je lance le code ci-dessous, ca roule. merci a ceux qui ont répondus et m'ont obligés a ranimer mon cerveau schlerosé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Sub test()
        Dim wb As Workbook
        For Each wb In Workbooks
            If UCase(wb.Name) Like "JVk*" Then wb.Activate: Exit For
        Next wb
        End Sub

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    bon ca marche, seul blem, si jamais j'oublie d'ouvrir la feuille qui commence par "JVK" qui sert à la mise a jour de la feuille "recap.xls", il enregistre par defaut ma feuille de "recap" sous le nom " JVK-19022013.xls", alors qu'elle ne doit surtout pas changer de nom....

    donc en situation, ma feuille principale "recap.xls"est ouverte et c'est tout.
    si je lance la recherche et qu'il ne trouve pas d'autre feuille ouverte commencant par JVK, je veux que la macro s'arrette.

    JE butte la dessus.

    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
    27
    28
    29
    30
    31
    32
    33
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro par cc
    ' Cherche le fichier
        Dim wb As Workbook
          For Each wb In Workbooks
                If UCase(wb.Name) Like "JVK*" Then wb.Activate: Exit For
          Next wb
     
    '
    ' enregistrement
    ' pas d'alerte
    Application.DisplayAlerts = False
     
    'repertoire
     
        ChDir _
            "P:\"
        ActiveWorkbook.SaveAs Filename:= _
            "P:\JVK_19022013.xls" _
            , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
     
            'Retour feuille principale
            Windows("recap.xls").Activate
     
    'retablissemnt alerte
     
            Application.DisplayAlerts = False
     
               MsgBox " C'est bon, on continue, maintenant appuyer sur     MAJ    jet 1"
    End Sub
    je pense qu'il s'agit d'un simple code a rajouter mais jene trouve pas.
    merci de votre aide

Discussions similaires

  1. [XL-2010] macro pour ouvrir x fichier selectionner des col et les coller dans une feuille xl
    Par grainedechipie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/02/2015, 09h46
  2. [PPT-2013] Bouton avec macro pour ouvrir une feuille Excel PowerPoint 2013
    Par gdmeunier dans le forum Powerpoint
    Réponses: 0
    Dernier message: 27/10/2014, 13h10
  3. Macro pour ouvrir fichier d'un répertoire en fonction de sa date
    Par Alasgard dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/04/2014, 18h17
  4. [XL-2007] Macro pour ouvrir 2 ème classeur et en sélectionner une feuille ?
    Par Nonno 94 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/11/2013, 16h21
  5. Réponses: 2
    Dernier message: 29/05/2002, 20h43

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