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 :

copier dans des onglets


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 53
    Points : 23
    Points
    23
    Par défaut copier dans des onglets
    Bonjour,

    Dans un tableau j'ai plusieurs cellules identiques dans la colonne A . Je souhaite trier ces trier ces cellules par onglets (en prenant leurs ligne entierement) pouvez-vous m'aider pour faire cette macro.

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Un peu plus de détail serait le bien venu...
    Je souhaite trier ces trier ces cellules par onglets (en prenant leurs ligne entierement)
    C'est à dire ?
    Les onglets sont créés à l'avance ?
    Dans quel onglet faut copier quelle ligne ?
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 53
    Points : 23
    Points
    23
    Par défaut
    Bonjour Fring,
    Vous m'avez dépanné hiers avec se sujet:

    "je cherche a créer autant d'onglet que de cellules différente dans une colonne, puis renommer ces onglets comme les celulles."

    Je pensais pouvoir me débrouiller avec ca mais comme je suis débutant, je ne comprends pas la macro que vous m'avez envoyer.

    Alors pour plus d'explications:
    -Par rapport a hiers il faut, une foit les onglets créer et renommer, mettre toutes les cellules correspondante a l'intérieure.

    exemple:
    colonne A,
    ligne 1= toto
    ligne 2= tutu

    faire un onglet qui s'appelle toto avec la ligne toto entière à l'interieur (soit la ligne 1)
    puis faire un onglet qui s'appelle tutu avec la ligne tutu entière à l'interieur (soit la ligne2)

    Attention, il peut y avoir dans la colonne A plusieur fois toto . dans ce cas il faut les mettre les un après les autre dans l'onglet toto.

    Dites-moi si je ne suis pas clair!!!

  4. #4
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    SAlut
    Je pense que ca va le faire

    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
    Sub test()
    Dim CelTest As Range
    Dim SheetTest As Worksheet
     
        With Sheets("Feuil1")
            For Each CelTest In .Range(.Cells(Rows.Count, "A").End(xlUp), .Range("A2")) 'On remonte jusqu'a la 1er cellule de la colonne contenant les valeurs
                'On test voir si l'onglet correspondant a la valeur existe
                For Each SheetTest In Worksheets
                    If SheetTest.Name = CelTest.Value Then
                        'L'onglet existe deja on envoie les donnée dedans
                        .Rows(CelTest.Row).Copy Sheets(CelTest.Value).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
                        'On passe directement a la ligne suivante
                        GoTo Suite
                    End If
                Next
                'Si on arrive ici c'est qu'on a pas trouvé d'onglet portant le nom de la cellule en cours
                'On cré donc cet onglet
                Sheets.Add after:=Sheets(Sheets.Count)
                Sheets(Sheets.Count).Name = CelTest.Value
                'Et on y met les données
                .Rows(CelTest.Row).Copy Sheets(CelTest.Value).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
    Suite:
            Next
        End With
    End Sub
    J'ai fait le joint avec ton precedent mail
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonsoir tlm,

    oui bibvba c'est plus clair mais attention, la macro que je t'ai envoyée sur ton sujet précédent ne conviendra pas, je n'ai pas tenu compte des éventuels doublons, c'est à dire que si tu as 3x toto, il va te créer 3 feuilles toto, je ne l'avais pas compris comme ça.

    Donc oublie ce que je t'ai envoyé et utilises la macro que te propose Qwazerty déjà adaptée dans ce sens

    @+
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 53
    Points : 23
    Points
    23
    Par défaut erreur
    bonjour et merci d'avoir répondu,

    ca fonctionne jusqu'a la la ligne

    "Sheets(Sheets.Count).Name = CelTest.Value"

    après ca bloc

  7. #7
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    J'ai testé le code de Qwartz et à mon avis ça bug parce que tu as une cellule vide dans ta colonne A ?

    Si c'est ça, ajoute les lignes suivantes :
    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 test()
    Dim CelTest As Range
    Dim SheetTest As Worksheet
     
        With Sheets("Feuil1")
            For Each CelTest In .Range(.Cells(Rows.Count, "A").End(xlUp), .Range("A2")) 'On remonte jusqu'a la 1er cellule de la colonne contenant les valeurs
            If CelTest.Value <> "" Then 'si la cellule n'est pas vide on continue la procédure
                'On test voir si l'onglet correspondant a la valeur existe
                For Each SheetTest In Worksheets
                    If SheetTest.Name = CelTest.Value Then
                        'L'onglet existe deja on envoie les donnée dedans
                        .Rows(CelTest.Row).Copy Sheets(CelTest.Value).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
                        'On passe directement a la ligne suivante
                        GoTo Suite
                    End If
                Next
                'Si on arrive ici c'est qu'on a pas trouvé d'onglet portant le nom de la cellule en cours
                'On cré donc cet onglet
                Sheets.Add after:=Sheets(Sheets.Count)
                Sheets(Sheets.Count).Name = CelTest.Value
                'Et on y met les données
                .Rows(CelTest.Row).Copy Sheets(CelTest.Value).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
    Suite:
            End If
            Next
        End With
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 53
    Points : 23
    Points
    23
    Par défaut erreur
    Merci, mais Désolé ca bloc toujours au même endroit

  9. #9
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Alors je vois pas comme ça sans avoir le fichier sous les yeux

    Tu ne peux pas mettre une copie en pièce jointe ?
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 53
    Points : 23
    Points
    23
    Par défaut
    ok ci-joint la piece jointe
    Fichiers attachés Fichiers attachés

  11. #11
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Désolé mais le code de Qwartz fonctionne nickel chez moi, aucun bug
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  12. #12
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Re
    Chez moi aussi ça marche au poile avec ton fichier.
    Tu as fais du pas a pas pour voir les différentes valeurs ?
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 53
    Points : 23
    Points
    23
    Par défaut autant pour moi
    exact, je ne sais pas ce que j'ai fait.

    Merci pour avoir résolu ma macro.

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

Discussions similaires

  1. [XL-2003] Copier coller des données dans des onglets différents
    Par trycoon dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/06/2010, 11h20
  2. Réponses: 27
    Dernier message: 05/09/2008, 17h01
  3. Date dans des onglets excel
    Par Renardo dans le forum Access
    Réponses: 4
    Dernier message: 06/02/2007, 20h54
  4. Réponses: 2
    Dernier message: 15/09/2006, 12h18
  5. CListCtrl dans des onglets
    Par BaBeuH dans le forum MFC
    Réponses: 3
    Dernier message: 13/06/2005, 12h59

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