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 :

Se positionner sur une feuille precise


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 140
    Par défaut Se positionner sur une feuille precise
    Bonjour,
    Voici se que j'essaye de faire : j'ouvre un document excel et je le rempli avec une appli vb. avant de l'ouvrir je test s'il n'est pas déjà ouvert. Si c'est le cas, je me positionne alors dessus et le rempli. C'est dans ce cas que je ne connais pas la syntaxe !!!!
    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    If IsFileOpen(App.Path & "ModeleExcel.xls") = False Then 
            Set appExcel = CreateObject("Excel.Application")
            Set wbExcel = appExcel.Workbooks.Open(App.Path & "ModeleExcel.xls")
            Set Feuille = wbExcel.Worksheets(1)
    Else
            Set Feuille = Excel.Application.Workbooks(App.Path & "ModeleDevis.xls").Worksheets(1)
    End If
    'ici je remplis ma feuille puis l'affiche
    appExcel.Visible = True
    Si la feuille n'est pas déjà ouverte ca marche mais j'ai un pb dans le second cas. La syntaxe doit pas être très juste heu......
    il faut pourtant que j'initialise ma 'Feuille' pour la remplir ! alors comment l'initialiser ? et puis je dois aussi initialiser 'appExcel' pour ensuite l'afficher.

    Merci de vos suggestions

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 140
    Par défaut
    Bon, ca doit pas être très clair mon explication
    Comment, sachant qu'un classeur est déjà ouvert, se positionner sur ce classeur en programmation vb ?
    Je n'y connais rien en excel et ai cherché sur ce forum mais pas trouvé de syntaxe pour ca !!!
    Thanks

  3. #3
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    Utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("Classeur1.xls").activate
    Ceci dit normalement lorsque tu ouvres un nouveau classeur il devient actif par défaut...

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    c'est quoi .. IsFileOpen..?
    ton code il s'exécute sous quel applicatif VBA..?

  5. #5
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    Eu desole j'avais pas bien lu
    Un truc que je pige pas pourquoi tu veux créer une nouvelle instance d'excel? Tu ne peux pas tt simplement ouvrir ton classeur?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 140
    Par défaut
    Merci de vos réponses.
    Bbil, isfileopen est une fonction ou je test si le fichier est déjà ouvert, la fonction me renvoie true ou false. Si le fichier n'est pas déjà ouvert, pas de probleme mon code marche bien. Mais c'est dans le cas ou le fichier serait déjà ouvert ou je bute.

    Conconbrr, je voudrai alors tout simplement, non pas ouvrir une nouvelle instance d'excel puisqu'elle existe déjà, mais simplement affiché le classeur déjà ouvert. Mais pour cela, avant je dois remplir certaines zone dedans et donc préciser la feuille active. Et c'est là ou ma syntaxe n'est pas bonne !

    Mon code est éxécuté sous vb. Et donc avant de remplir les cellules de ma feuille, je dois préciser de quelle feuille il s'agit.
    Aie aie aie, c'est pas simple

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bon voila ne connaissant pas le principe de fonctionnement de ta fonction
    IsFileOpen.. commen détermine t'elle qu'un fichier est ouvert..?
    je m'en suis passé... du moment qu'un seul PC accéde au fichier ce code devrai te convenir :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     Dim appExcel As Excel.Application
     Dim wbExcel As Excel.Workbook
     Dim Feuille As Excel.Worksheet
     Set wbExcel = GetObject(App.Path & "ModeleExcel.xls")
     If wbExcel Is Nothing Then
       MsgBox "Erreur impossible d'accéder au classeur .."
       Exit Sub
    Else
       Set appExcel = wbExcel.Parent
       Set Feuille = wbExcel.Worksheets(1)
    End If
    appExcel.Visible = True
    wbExcel.Windows(1).Visible = True

    (Ps: Merci de jeter un oeil as tes MP..)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 140
    Par défaut
    Merci Bbil,
    C'est exactement ça. En faite c'est le "GetObject" que je ne connaissais pas
    J'ai lu ton message, désolé pour le forum, c'est effectivement plus dans vb que vba mais à l'origine je pensai que mon probleme était purement excel et donc rattaché à vba ....... mais non. Alors encore désolé et mille merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/01/2015, 18h25
  2. [XL-2003] Comment se positionner sur une feuille particulière
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/10/2013, 17h05
  3. Se positionner sur une cellule à l'ouverture d'une feuille
    Par target111 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 09/05/2012, 02h58
  4. (EXCEL) Effacer des images gif insérées sur une feuille ?
    Par romo3 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/08/2005, 21h31

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