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 :

Exporter des données d'une feuille à une autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2018
    Messages : 13
    Par défaut Exporter des données d'une feuille à une autre
    Bonjour,

    je reviens vers vous car j'ai un soucis pour exporter des données d'une feuille à une autre.
    Dans ma feuille 1 j'ai les colonnes A à I avec information. Dans la colonne B je peux trouver plusieurs informations différentes.
    Je souhaite pouvoir trier mes informations de la feuille 1 en plusieurs feuilles en prenant comme critères de tri l'information se trouvant en B

    Exemple
    En B je peux avoir comme info MUE ou FIN... et donc j'aimerais avoir la création d'une feuille avec juste les lignes ayant en colonne B l'info MUE et pareil pour FIN

    Voilà le code que j'ai mis en place mais il ne marche absolument pas
    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
    Sub Export()
     
    Dim sheetsource As Worksheet
    Dim cellsource As Range
    Dim zonesource As Range
     
    Set sheetsource = Worksheet("TFF & TAF Global")
    Set zonesource = sheetsource.Range(sheetsource.Cells(3, "B"), sheetsource.Cells(Rows.Count, "D").End(xlUp))
     
    For Each cellsource In zonesource.Cells
        If cellsource.Value Like "MUE" Then
            sheetsource.Range(cellsource, cellsource.Offset(0, 5)).Copy Sheets("MUE").Cells(Rows.Count, "A").End(xlUp).Offset(0, 0)
     
    End If
    Next
    End Sub
    Merci pour votre aide

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Il est rare qu'un For Each sur une zone Range soit plus pratique qu'un simple For To.
    Plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Export()
    Dim sheetsource As Worksheet
    Dim Ligne As Long, Fin As Long
     
    Set sheetsource = Worksheet("TFF & TAF Global")
    Fin = sheetsource.Cells(Rows.Count, "D").End(xlUp).Row
     
    For Ligne = 3 To Fin
        If sheetsource.Cells(Ligne, "D").Value = "MUE" Then
            sheetsource.Range("A" & Ligne & ":I" & Ligne).Copy Sheets("MUE").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
     
    End If
    Next
    End Sub
    Cela dit, ton problème venait sans doute de ton Offset(0, 0).

  3. #3
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2018
    Messages : 13
    Par défaut
    Merci pour ta réponse.
    Mon problème reste le même quand je lance la macro il me met :
    erreur de compilation Sub ou function non définie
    et me renvoie sur Sub Export ().
    Ce n'est pas la bonne fonction ?

    Ensuite là j'avais essayé pour un cas dans le cas ou en B il est indiqué MUE. Peut-on généraliser la fonction pour que quand on lance la macro.. elle créée autant de feuilles que de variable différentes en B ?

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par LuckyBr Voir le message
    Mon problème reste le même quand je lance la macro il me met : erreur de compilation Sub ou function non définie.. et me renvoit sur Sub Export ()
    ce n'est pas la bonne fonction ?
    Export est peut-être un mot réservé.
    Essaye de changer de nom en le remplaçant par "toto".

    Ensuite là j'avais essayé pour un cas dans le cas ou en B il est indiqué MUE.
    Peut-on généraliser la fonction pour que quand on lance la macro.. elle créée autant de feuilles que de variable différentes en B ?
    Pour ça, il faudrait à chaque fois vérifier si la feuille de calcule existe, par exemple en créant une fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function WorksheetExist(Nom As String) As Boolean
    Dim WS As Worksheet
    For Each WS in Worksheets
        If WS.Name = Nom Then
            WorksheetExist = True
            Exit Function
        End If
    Next WS
    WorksheetExist = False
    End Function
    C'est du code tapé directement sur le forum. Il faut donc le tester et éventuellement le débugger, mais tu as le principe général.

    Si la fonction renvoie False, alors il faut créer la feuille avant de la renseigner.

  5. #5
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2018
    Messages : 13
    Par défaut
    non même en remplacant par un autre nom celà ne marche toujours pas.
    il surligne en jaune Sub toto () ou sub export ()
    et surligne en bleu le worksheet de la ligne 7

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set sheetsource = Worksheet("TFF & TAF Global")
    j'ai bien vérifié le nom de la feuille. il est bon

  6. #6

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Où as-tu placé ce code ?

Discussions similaires

  1. exporter des données de excel vers une table paradox7
    Par dpsb_informatique dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/02/2013, 15h30
  2. Exporter des données de Excel vers une BDD access
    Par dounia.er dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 28/08/2012, 13h50
  3. [XL-2010] Exporter des donnes automatiquement et tracer une courbe
    Par skrobar dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/04/2012, 16h26
  4. exportation des données a partir d'une base
    Par khaled81 dans le forum C#
    Réponses: 1
    Dernier message: 18/03/2010, 17h52

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