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 :

Différence entre Thisworkbook Open et debug [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 291
    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 291
    Par défaut Différence entre Thisworkbook Open et debug
    Bonjour,

    j'ai un problème dont je ne trouve pas le moindre indice de solution
    j'ai dans Thisworkbook d'un classeur le code suivant :
    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
    Private Sub Workbook_Open()
     
    Dim client As Variant, derClient As Integer, infos As Variant
     
    Set client = Sheets("Clients")
    Set infos = Sheets("Infos")
     
    With Cells(Rows.Count, "A").End(xlUp).MergeArea: derClient = .Cells(.Cells.Count).Row: End With
     
    client.Range("F2:F" & derClient).Value = client.Range("A2:A" & derClient).Value
     
    infos.Select
    infos.Activate
     
    End Sub
    à l'open du fichier la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    client.Range("F2:F" & derClient).Value = client.Range("A2:A" & derClient).Value
    ne donne pas de résultat en colonne F

    par contre en pas à pas ce même code renseigne la colonne F

    J'ai cherché das tous les sens, je ne comprends vraiment pas, cela vient surement d'un effet de bord de qq chose ?

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonsoir Retraite, bonsoir le forum,

    Comme ActiveSheet sera l'onglet sélectionné lors de la dernière fermeture du classeur, il vaut mieux spécifier l'onglet à l'ouverture plutôt que d'utiliser ActiveSheet!...
    J'ai mis client ne sachant pas, peut-être faudra-t-il remplacer par infos :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Workbook_Open()
    Dim client As Worksheet, derClient As Integer, infos As Worksheet
     
    Set client = Worksheets("Clients")
    Set infos = Worksheets("Infos")
     
    client.Unprotect Password:="marrakech"
    With client.Cells(Rows.Count, "A").End(xlUp).MergeArea: derClient = client.Cells(.Cells.Count).Row: End With 'j'avoue ne pas comprendre ce code ?!...
    client.Range("F2:F" & derClient).Value = client.Range("A2:A" & derClient).Value
    infos.Activate
    client.Visible = xlSheetHidden
    client.Protect Password:="marrakech", DrawingObjects:=False, Contents:=True, Scenarios:=True
    Application.DisplayFormulaBar = False
    End Sub

  3. #3
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    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 291
    Par défaut Exécution "Thisworkbook open" vs "liste déroulante"
    en fait je pense avoir trouver la cause mais pas encore meilleure la solution :

    la colonne F est créée dans "Thisworkbook Open" par des "Range" de la colonne A rendu nécessaire parce que la colonne A est elle même créée par des équivalences avec un catalogue (=cellule du catalogue)

    Cependant je constate après l'open que la colonne F n'est pas modifiée lorsque le catalogue a par exemple un ajout d'une ligne

    En effet la colonne A contient bien l'ajout de la ligne catalogue, mais la colonne F non, la liste déroulante est donc incomplète

    J'en conclu que la macro "Thisworkbook Open" est exécutée par Excel AVANT la mise à jour de équivalences Excel (=cellule du catalogue)

    En réfléchissant je me dis qu'une solution est de remplacer la mise à jour de la colonne A aussi par "Thisworkbook Open" au lieu de le laisser faire par Excel par =cellule

    Je préférerai laisser faire Excel mais comment ?

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

Discussions similaires

  1. Différences entre eclipse et eclipse -debug
    Par ManusDei dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 16/06/2011, 22h38
  2. Différence entre Glasshfish Open Source et Commercial
    Par mesken dans le forum Glassfish et Payara
    Réponses: 2
    Dernier message: 20/03/2011, 18h47
  3. différence entre executable et mode debug de visual
    Par thony76 dans le forum Visual C++
    Réponses: 7
    Dernier message: 05/09/2006, 16h00
  4. différences entre SQLquery.open active ExecSQL
    Par Ice-tea dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/06/2006, 16h13
  5. Réponses: 8
    Dernier message: 23/07/2005, 10h24

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