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 :

Règles d'accès au feuilles cachées


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur acousticien
    Inscrit en
    Septembre 2015
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur acousticien
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2015
    Messages : 122
    Par défaut Règles d'accès au feuilles cachées
    Bonjour à tous,

    Je suis à la recherche d'informations concernant les règles d'accès à des feuilles masquées.

    En effet, je transfert des données d'un feuille Excel vers des signets d'un document Word. Toute fonctionne lorsque la feuille est visible dans mon classeur. Toutefois, lorsque cette feuille est cachée, le collage de mes cellules Excel sur mes signets Word ne s'effectue pas (mais les signets disparaissent) avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Range(Cells(6, 1), Cells(5 + m, 1)).Copy
    wordDoc.Bookmarks("GrosOeuvre1").Range.PasteExcelTable False, False, False
    Or le transfert (toujours depuis la même feuille cachée et vers le même document Word) vers d'autre signets de la manière suivante fonctionne bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wordDoc.Bookmarks(Cells(1, i) & j).Range.Text = Cells(2, i)
    Auriez-vous des éléments pour expliquer cette différence ? Comment pourrais-je régler ce problème ?

    Merci d'avance pour votre participation!

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour flav_cm,

    Je suis pas du tout familiarisé avec les échanges entre instance Excel et instance Word mais je suis sûr d'une chose :

    Dans la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(6, 1), Cells(5 + m, 1))
    aucune feuille n'est spécifiée donc Excel va utiliser la feuille active qui ne peut pas être la feuille masquée.
    Ça peut expliquer la différence de fonctionnement entre le cas où la feuille est visible et qu'il s'agit de la feuille active et le cas où cette feuille est masquée et donc ne peut pas être la feuille active.

    Si le problème est bien celui-là, il suffit de préciser la feuille parente à l'aide d'un With par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ThisWorkbook.Sheets("Nom de la feuille")
        .Range(.Cells(6, 1), .Cells(5 + m, 1))
    End With

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur acousticien
    Inscrit en
    Septembre 2015
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur acousticien
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2015
    Messages : 122
    Par défaut
    Bonjour antonysansh,

    Merci pour votre réponse !

    Malheureusement, la copie ne semble pas fonctionner lorsque la feuille est masquée, quelque que soit les écritures ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ThisWorkbook.Sheets(f_aide_notice_ac)
       .Range(Cells(6, 1), Cells(5 + m, 1)).Copy
    End With
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Sheets(f_aide_notice_ac).Range(Cells(6, 1), Cells(5 + m, 1)).Copy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(6, 1), Cells(5 + m, 1)).Copy
    Y-aurait-il d'autres règles concernant l'accès à des feuilles masquées ?

    D'autre part, j'utilise exactement le même code dans un autre module pour éditer un autre rapport et cela fonctionne normalement...

  4. #4
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ThisWorkbook.Sheets("Nom de la feuille")
        .Range(.Cells(6, 1), .Cells(5 + m, 1))
    End With

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur acousticien
    Inscrit en
    Septembre 2015
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur acousticien
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2015
    Messages : 122
    Par défaut
    Merci encore une fois pour la réponse. Malheureusement ça ne fonctionne pas même avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ThisWorkbook.Sheets(f_aide_notice_ac)
       .Range(.Cells(6, 1), .Cells(5 + m, 1)).Copy
    End With
    J'ai finalement utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(f_aide_notice_ac).Visible = True
    avant mes copies et ça fonctionne.

    Encore merci pour ces précisions en tout cas !

  6. #6
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Etrange !

    Je viens de tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro1()
        Sheets("Feuil2").Visible = False
        Sheets("Feuil2").Range("A1:A4").Copy
        Sheets("Feuil1").Paste Sheets("Feuil1").Range("B1")
    End Sub
    et aucun problème

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/02/2007, 19h18
  2. [VBE] feuille cachée - méthode AutoFill
    Par Chewi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/01/2007, 16h47
  3. refus d'impression de feuilles cachées
    Par keguira dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/11/2006, 22h34
  4. Chemin d'accès sous-feuilles ACCESS
    Par FREDASTER dans le forum Access
    Réponses: 6
    Dernier message: 13/12/2005, 19h54
  5. [Excel] Problème avec l'accès aux feuilles et aux cellules
    Par bl00df0x dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 30/09/2005, 14h21

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