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 :

Recherche titre sur ligne et copie colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Par défaut Recherche titre sur ligne et copie colonne
    Bonjour, bonjour

    Pour simplifier le mise en page de mes données rééls, il faudrait que je ne copie que les données qui m'interresse de ma page de simulation, le fichier prendra alors moins de place.

    Pour cela, il faudrait que je puisse récupérer uniquement les colonnes que je souhaite, en fesant une recherche par titre sur ma ligne1
    quand titre trouver, le système recopie, la colonne correspondante sur la feuille suivante.

    Donnée en feuille1, recopie en feuille2, et cela pour plusieurs titres.
    Ou sinon, est-il possible de recopie mes colonnes sur un nouveau classeur, comme sa pas besoin de modifier de trop ma macro

    Merci

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bon on manque un peu de description sur l'organisation des feuilles .. tiens pour t'aider à débuter ci-joint un code qui parcours les cellules d'entête de la feuille active :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    sub ParcoursEntete 
    Dim rEntete As Range 'ligne d'entête
     Dim MaW As Worksheet 'Feuille traité...
     Dim c As Range
     Set MaW = ActiveSheet 'Bon je travaille sur feuille en cours
     Set rEntete = MaW.Range("A1").CurrentRegion.Rows(1)
     For Each c In rEntete.Cells
       MsgBox c
     Next
     End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    n_obs	callsign	sector_on_frequency	Reptime	latitude	longitude	activity	afl
    1	TBS_EW	FS	16:44:15	48:59:58:N	002:37:57:E	0	20
    3	TBS_EW	FS	16:44:20	48:59:59:N	002:38:28:E	0	22
    6	TBS_EW	FS	16:44:25	49:00:02:N	002:38:59:E	0	23
    7	TBS_EWC	FS	16:44:25	48:59:58:N	002:37:57:E	0	20
    10	TBS_EW	FS	16:44:30	49:00:06:N	002:39:30:E	0	25
    11	TBS_EWC	FS	16:44:30	48:59:59:N	002:38:28:E	0	22
    voila un morceau,j'ai 56 colonnes environs
    et j'utlise toujours les colonnes portant les noms heading,callsign...

    se qu'il me faut c'est savoir comment rechercher ses titres sur ma ligne1, qui me copiera ensuite les colonnes

    Sur un autre classeur,c'est possible?

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    il y as peu être un truc qui le fait sans macros sous excel c'est le filtre élaboré... données filtre élaboré .. tu te place sur feuille destination , aprés avoir placé en ligne 1 les colonnes souhaitées .. puis données filtre élaborés...

    tu sélection "Copier les vers autre emplacement.."
    - Puis dans plages tu sélection la plage de donnée de ta feuille source
    - dans critéres tu met rien (pour avoir tout )
    - dans copier Dans tu sélectionne les entêtes que tu as préparés dans ta feuille destination ...

    si cela te va ... ben tu lance l'enregistreur de macro ... tu refait la même chose et aprés tu étudie le code généré..




  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Par défaut
    le filtre élaboré?

    qu'est ce qui c'est que se truc encore



    mais sa marcherai avec un autre classeur?

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par baptbapt
    Sa me va, mais pour faire la meme chose sur un autre classeur, c'est feusable ou pas.

    Mais sinon sa va
    tu ne la pas encore essayé ..?

    ..tiens j'ai complété ma macro de definition entête, et j'y est rajouté le filtre élaboré... manque à modifier les 2 lignes Set...;

    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
     
    Sub test()
     Dim rEntete As Range 'ligne d'entête
     Dim MaW As Worksheet 'Feuille généré...
     Dim Ws As Worksheet ' feuille Classeur Source
     Dim c As Range
     Set MaW = ActiveSheet 'Bon je travaille sur feuille en cours
     Set Ws = Workbooks("Classeur2").Sheets(1) 'A modifier en fonction classeur actif
     Set rEntete = MaW.Range("A1").CurrentRegion.Rows(1)
     rEntete.Parent.Activate 'La feuille destination doit être active
        Ws.Range("A1").CurrentRegion.AdvancedFilter Action _
            :=xlFilterCopy, CopyToRange:=rEntete, Unique:=False
     
     
     'Libération des objets..
    Set MaW = Nothing
    Set Ws = Nothing
    End Sub

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    c'est pour cela que j'ai écrit...

    Citation Envoyé par bbil
    ..tu te place sur feuille destination ...

    mon code active feuille destination avant d'effectuer le filtre... à tu pu le tester ..?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Par défaut
    bon tout compte fait je vai tou faire sur la meme feuille, sa fera moins de problème, par contre quand je lance ta macro j'ai une erreur sur la feuille active, il demande d'avoir minimum 2 lignes

    Bon je recommence encore pour voir

    Veu rien savoir se PC, j'essaye toute les positions, veu pas les copier les données, commence vraimant à me courir sur le sytème

    Je joint un exemple avec des lignes supprimé, sinon trop gros, vraiment trop gros
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/06/2015, 14h12
  2. [XL-2013] Rechercher plusieurs valeurs sur la même ligne pour copie
    Par McRbt dans le forum Macros et VBA Excel
    Réponses: 61
    Dernier message: 16/06/2014, 16h07
  3. Recherche valeur sur 2 colonne et recupération du numero de la ligne
    Par sebastien-16600 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/03/2013, 12h20
  4. Réponses: 3
    Dernier message: 27/08/2010, 13h01
  5. Réponses: 3
    Dernier message: 26/09/2005, 22h24

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