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 :

Centraliser données de plusieurs classeurs dans un seul classeur [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 58
    Par défaut Centraliser données de plusieurs classeurs dans un seul classeur
    Bonjour,

    Je sollicite votre aide pour résoudre un problème que je ne comprends pas. Tout d'abord la macro permet de récupérer toutes les feuilles 1 des classeurs présents dans un dossier et ensuite de centraliser seulement les lignes colorées dans la feuille "Recap".
    Mon problème est le suivant : quand je test la macro dans un dossier présent sur mon bureau il n'y a aucun problème, elle fonctionne correctement. Par contre, quand je lance la macro dans un dossier sur le serveur plus rien ne marche et je ne comprends pas.

    Voici le code :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub consolide()
     
    Application.ScreenUpdating = False
     
     Dim sh As Worksheet
     Dim Lig As Long
     
      ChDir ActiveWorkbook.Path
      Set classeurMaitre = ActiveWorkbook
     
      compteur = 1
      nf = Dir("*.xls")
      Do While nf <> ""
        If nf <> classeurMaitre.Name Then
          Workbooks.Open Filename:=nf
            Sheets(1).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
            classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = "Page" & compteur
            compteur = compteur + 1
          Workbooks(nf).Close False
        End If
        nf = Dir
      Loop
     
      For Each sh In Worksheets
        If sh.Name <> "Recap" Then
            For Lig = 10000 To 1 Step -1
                If sh.Range("A" & Lig).Interior.ColorIndex = xlNone Then
                    sh.Rows(Lig).Delete shift:=xlUp
                End If
            Next Lig
        End If
      Next sh
     
        For Each sh In Worksheets
            If sh.Name <> "Recap" Then
                sh.[A1].Resize(sh.[A65536].End(xlUp).Row, 8).Copy Destination:=Worksheets("Recap").[A65536].End(xlUp).Offset(1, 0)
            End If
        Next sh
     
    Application.ScreenUpdating = False
     
    End Sub
    Merci pour votre aide.

    Loumi.

  2. #2
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,

    ChDir ActiveWorkbook.Path --> c'est ok ?

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 58
    Par défaut
    Oui le classeur est bien présent dans le dossier.
    En fait le problème vient de la ligne 12 :
    Il ne renvoie pas le bon nom du classeur mais je ne sais pas pourquoi.

  4. #4
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,

    on est d'accord que "Dir" est le problème

    comme tu es sur serveur, ChDir ActiveWorkbook.Path te positionne bien dans le dossier ?

    en "dur", j'utilise sPath = ThisWorkbook.Path & "\" est ce que "\" est manquant ?

    nf = Dir("\*.xls") ?


    lien vers discussion : pas besoin de changer de répertoire ou de lecteur réseau!

    La fonction ChDir change le répertoire par défaut, mais pas le lecteur par défaut. Par exemple, si le lecteur par défaut est C, l'instruction suivante change le répertoire par défaut sur le lecteur D, mais C reste le lecteur par défaut :
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 58
    Par défaut
    Merci JP j'ai regardé l a discussion vers laquelle tu m'a renvoyé et j'ai modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Chemin = ActiveWorkbook.Path
    ChDir Chemin
    nf = Dir(Chemin & "\*.xls")
    Mais il y a un problème l'exécution de la macro me renvoi un message d'erreur 1004 avec le texte suivant : "01122016.xls introuvable vérifiez l'orthographe du nom du classeur et la validité de l'emplacement."

    j'ai donc affiché la fenêtre des variables locales pour voir si le chemin est le bon et tout est correct je ne comprends pas le problème.

    p.s. le bug se situe au niveau de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open Filename:=nf

  6. #6
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,

    et nf ?

    FullPath=Chemin & "\" & nf --> verif si nf avec .xls

    Workbooks.Open Filename:=FullPath

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  7. #7
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 58
    Par défaut
    Bonjour,

    Le FullPath est parfait mon fichier s'ouvre et la copie se fait correctement par contre c'est au niveau de la fermeture qu'il y a un problème.
    J'ai l'erreur d'exécution 9 "l'indice n'appartient pas à la sélection".

    Voici la ligne où se trouve le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(nf).Close False
    Merci à toi.

  8. #8
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    c'est le même problème, nf c'est un bon gros gâteau au chocolat, tu sais qu'il existe , mais où ?....

    pour le manger il faut aller à Chemin & "\",.... bonne dégustation ...!!!

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  9. #9
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 58
    Par défaut
    j'adore cette image du bon gros gâteau. Ok donc je vais éviter d'utiliser nf mais FullPath.

  10. #10
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,

    FullPath c'est une variable que tu peux nommer comme tu veux,

    tu peux écrire : CheminAvecFichier =Chemin & "\" & nf

    c'est juste une précision (au cas ou...)

    si c'est ok clique sur "resolu"
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

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

Discussions similaires

  1. [10g] Récupérer données de plusieurs bases dans un seul script
    Par damienopolis dans le forum PL/SQL
    Réponses: 4
    Dernier message: 13/01/2015, 22h52
  2. [XL-2010] regrouper les macro de plusieurs classeurs dans un seul classeur
    Par jinane13 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/03/2013, 12h29
  3. [SQL2005] Regrouper les données de plusieurs bases dans une seule
    Par oliviera63 dans le forum Développement
    Réponses: 7
    Dernier message: 07/02/2012, 11h40
  4. Insérer des données sur plusieurs lignes dans une seule en SQL
    Par nathantahiti dans le forum Développement
    Réponses: 1
    Dernier message: 03/08/2011, 11h47
  5. import de données de plusieurs feuilles dans une seule
    Par naevus dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 10/01/2008, 14h32

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