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 :

Export du contenu d'un fichier Excel vers un autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2022
    Messages : 2
    Par défaut Export du contenu d'un fichier Excel vers un autre
    Bonjour à tous,

    Je vous présente le problème.

    Je travailles actuellement sur un fichier Excel qui comprend plusieurs Sheets.
    Dans ce fichier, il y a plusieurs macro de filtrage en VBA.

    L'objectif est de copier le contenu du fichier d'origine vers un nouveau fichier en conservant le format mais en ne gardant que les données non filtrées (c'est à dire en excluant toutes les données en Visible = 0).

    Pour cela j'ai fait une macro qui fonctionne seulement quand des Sheets sont cachées mais quand des lignes ou colonnes sur certaines Sheets sont cachées, j'ai un soucis de mémoire qui apparait : "la mémoire est insuffisante pour effectuer cette action" (je suis sous Excel 32 bits).

    Le fichier n'est pas lourd au point d'atteindre les limites de Excel (du moins je ne pense pas). Du coup je pense que c'est un soucis dans mon code.

    Voici mon 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
    Sub fonction_de_copie()
        Dim name As String
        Dim Export As String 
        Dim newWorkbook As Workbook
        Dim tab_Count As Integer
        Dim itab As Integer
     
        name = "Nom_du_fichier.extension"
     
        Export = ActiveWorkbook.Name
     
        tab_Count = ActiveWorkbook.Sheets.Count
     
        Set newWorkbook = Workbook.Add
     
        For itab = 1 To tab_Count
            If Workbooks(Export).Worksheets(itab).Visible = -1 Then
                Workbooks(Export).Worksheets(itab).Cells.SpecialCells(xlCellTypeVisible).copy
                newWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count())
                newWorkbook.ActiveSheet.Name = Workbooks(Export).Worksheets(itab).Name
                selection.PasteSpecial xlPasteAll ' l'idéal serait de pouvoir récupérer les liens hypertextes (donc de récupérer les noms donnés aux cellules si c'est possible)
            Else
            End If
        Next itab
        Application.CutCopyMode = False   
        newWorkbook.SaveAs name, 52
    End Sub
    J'espère que vous pourrez m'aider.

    Je vous remercie par avance pour vos réponses.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pourquoi ne pas utiliser le filtre avancé d'excel (méthode AdvancedFilter en VBA) qui permet d'exporter les données suivant critères ?

    Une fois que vous aurez définit les critères et les plages "source" et "cible", c'est une ligne de code
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2022
    Messages : 2
    Par défaut
    Merci pour ta réponse.

    Ce n'est pas un filtrage par critères spécifiques, c'est limite un filtrage au cas par cas, du coup j'ai filtré en dur dans le code.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Même si je n'aime pas ça, rien n'empêche de définir les critères des filtres avancés dans la procédure VBA mais c'est plus simple de les placer dans une feuille dédiée
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Copier contenu d'un fichier Excel vers un autre
    Par Joseldsm dans le forum Général VBA
    Réponses: 3
    Dernier message: 02/02/2016, 12h48
  2. [XL-2007] Transféré le contenue d'1 feuille excel vers 1 autre feuille d'un autre fichier
    Par Haaron dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/08/2009, 12h11
  3. copier le contenu d'un fichier EXCEL vers un autre
    Par john_wili dans le forum Documents
    Réponses: 1
    Dernier message: 26/01/2009, 11h35
  4. Réponses: 1
    Dernier message: 14/05/2007, 14h52
  5. exporter contenu d'un fichier excel vers base mysql ?
    Par ouldfella dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/03/2007, 10h31

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