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 :

Revenir au Workbook courant après open d'un autre classeur [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut Revenir au Workbook courant après open d'un autre classeur
    Bonjour,

    qui peut me dire dans mon code suivant à l'ouverture du classer A pourquoi à la fin je ne suis pas sur la feuille infos de ce classeur à la fin de "Thisworkbook open" (qui ouvre un second classeur B)

    Tout se passe bien, le résultat est celui attendu mais à la fin je suis positionné sur une feuille de ce second classeur B et non revenu sur la feuille "Infos " du classeur A...

    Il me semble pourtant avoir appliqué tout ce que j'ai vu dans les documentations
    Merci de votre éclairage

    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
     
    Option Explicit
    Private Sub Workbook_Open()
     
    Dim derClient As Integer, catal As String, clientCatal As Variant, CurWB As Workbook, hotelCatal As Variant nomFic As String
     
    Set CurWB = ThisWorkbook
    nomFic = ActiveWorkbook.Name
     
    catal = ThisWorkbook.path & "\" & fich2 & ".xlsm"   ' fich2 défini en Public constante dans module 3
     
    ' Ouverture du Catalogue
    On Error GoTo EndHandler
        Application.EnableEvents = False
        Workbooks.Open catal
    EndHandler:
        Application.EnableEvents = True
     
    ' "Clients"
    Set clientCatal = Workbooks(fich2 & ".xlsm").Sheets("Clients")
    clientCatal.Visible = True
    clientCatal.Select
    clientCatal.Activate
    With Cells(Rows.Count, "A").End(xlUp).MergeArea: derClient = .Cells(.Cells.Count).Row: End With
     
    CurWB.Sheets("Clients").Range("A2:H" & derClient).Value = ActiveWorkbook.Sheets("Clients").Range("A2:H" & derClient).Value
    clientCatal.Visible = xlSheetHidden
     
    Workbooks(nomFic).Activate
    Worksheets("Infos").Select
    Worksheets("Infos").Activate
     
    End Sub

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour Retraité

    je sais pas si tu a tout bien fait

    au pire entre nous si on raisonne un peu logiquement
    je remplace ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(nomFic).Activate
    par ca etant donné que la macro est dans lui meme
    maintenanant perso je ne m'embete pas je fait comme j'ai toujour fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     windows(thisworkbook.name).activate
    a ben ca marche mieux d'un coup je sais
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut
    Bonjour Patrick

    j'ai mis ce que tu me conseilles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    windows(thisworkbook.name).activate
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(nomFic).Activate
    mais je suis toujours sur le mauvais classeur

    Il doit y avoir qq chose d'autre qui gêne

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    teste ca dans un module a part
    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
    Sub test()
        Dim derClient As Integer, catal As String, clientCatal As Variant, wbk1 As Workbook, hotelCatal As Variant, catalogue As Workbook
        Set wbk1 = ThisWorkbook
     
        catal = ThisWorkbook.Path & "\" & fich2 & ".xlsm"   ' fich2 défini en Public constante dans module 3
        ' Ouverture du Catalogue
        'On Error GoTo EndHandler
        ' Application.EnableEvents = False 'pourquoi faire ??,
        Set catalogue = Workbooks.Open(catal)
        'EndHandler:
        'Application.EnableEvents = True 'pourquoi faire
        ' "Clients"
        Set clientCatal = catalogue.Sheets("Clients")
        With clientCatal
            .Visible = True
            .Select    ' facultatif
            .Activate    ' facultatif
            With .Cells(Rows.Count, "A").End(xlUp).MergeArea: derClient = .Cells(.Cells.Count).Row: End With
            tablo = .Sheets("Clients").Range("A2:H" & derClient).Value
            .Visible = xlSheetHidden
        End With
     
        wbk1.Sheets("Clients").Range("A2:H" & derClient).Value = tablo
        Windows(ThisWorkbook.Name).Activate
        'Worksheets("Infos").Select    ' c'est l'un ou l'autre
        'Worksheets("Infos").Activate    ' c'est l'un ou l'autre
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut
    J'ai testé, j'ai défini j'ai erreur 438, propriété ou méthode non géré par cet objet sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tablo = .Sheets("Clients").Range("A2:H" & derClient).Value

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par retraite83 Voir le message
    J'ai testé, j'ai défini j'ai erreur 438, propriété ou méthode non géré par cet objet sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tablo = .Sheets("Clients").Range("A2:H" & derClient).Value
    Commençons par les fondamentaux : l'objet Sheet n'a pas de propriété Range !

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

Discussions similaires

  1. changer le repertoire courant par défaut avant getopenfilename
    Par sambinapas dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/12/2010, 14h38
  2. Comment bloquer la session courante par un mot de passe ?
    Par petitclem dans le forum Administration système
    Réponses: 7
    Dernier message: 17/06/2008, 11h08
  3. Réponses: 6
    Dernier message: 20/09/2007, 13h30
  4. ouvrir ma page par open() ds la même fenêtre
    Par untitled96 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/06/2007, 11h05
  5. [Mail] envoyer ma page courante par mail
    Par karimphp dans le forum Langage
    Réponses: 5
    Dernier message: 09/06/2006, 12h09

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