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 ligne dans onglets selon


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 66
    Points : 39
    Points
    39
    Par défaut copier ligne dans onglets selon
    Bonjour à tous,

    J'utilise une macro qui me permet de copier une ligne dans un autre onglet si la cellule de la colonne "H" est non vide. Jusque là tout fonctionne à merveille, mais j'aimerais aller un peu plus loin. Je voudrais que si par exemple la valeur de la colonne H = A, il recopie la ligne dans l'onglet A, si la valeur est B il recopie sur l'onglet B et ainsi de suite. Voici le code que j'utilise pour le moment et qui me permet de recopier une ligne s'il y a une valeur dans la collone H.

    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
    Sub FiltreLulu()
     
      Dim Lig     As Long
      Dim Col     As String
      Dim NbrLig  As Long
      Dim NumLig  As Long
     
      Sheets("A").Activate ' feuille de destination
     
      Col = "H"                 ' colonne de la donnée non vide à tester
      NumLig = 1
      With Sheets("Feuil1")     ' feuille source
      NbrLig = .Cells(65536, Col).End(xlUp).Row
      For Lig = 1 To NbrLig
        If .Cells(Lig, Col).Value <> "" Then
          .Cells(Lig, Col).EntireRow.Copy
          NumLig = NumLig + 1
          Cells(NumLig, 1).Select
          ActiveSheet.Paste
        End If
      Next
      End With
     
    End Sub

    Merci d'avance pour votre aide.

  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
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,
    si par exemple la valeur de la colonne H = A, il recopie la ligne dans l'onglet A
    la réponse est dans la question.
    tout le truc,machin,chose...est de savoir définir H = A, comment savoir, qu'est ce qui fait que...la valeur de A doit aller, est en rapport, dans l'onglet A.
    pour le mécanisme d’aiguillage
    --> une variable "Destination"=1,2, ou a,b
    et le code de l'aiguillage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Select Case Destination
       Case 1,a,UCase(a),...
           NomDeOnglet="A"
       Case 2,b,UCase(b),...
           NomDeOnglet="B"
    End Select
    @+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
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour,

    Plus simple, schématiquement :
    Si la cellule de la colonne H est vide alors
    Copier la ligne de la feuille 1 dans l'onglet Toto (par exemple, ligne à définir; donc faire attention aux pointages)
    Sinon
    Si la cellule de la colonne H est égal à la valeur cellule lambda (A, B, C, etc …) alors
    La ligne de l'onglet(valeur de la cellule lambda) = à la ligne concernée de la feuille 1
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour,

    tout dépend déjà du nombre de lignes à traiter et de celui des onglets en destination :
    plus il est important pour l'un ou l'autre plus ce sera long en traitant ligne par ligne !

    Hors comme déjà démontré dans des discussions de ce forum, dans le cas d'un nombre important,
    il suffit juste d'utiliser une fonctionnalité d'Excel : les filtres avancés !

    Un premier filtre avancé pour extraire la liste des onglets de destination sans doublon dans une zone libre de la feuille
    puis à partir de cette liste, pour chaque onglet de destination, vérifier s'il existe (fonction ESTREF de feuille de calculs)
    sinon le créer, la copie des données pour chaque onglet pouvant être effectuée en une instruction via un filtre avancé !

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

Discussions similaires

  1. [XL-MAC 2011] Copier lignes dans une autre feuille en fonction d'un paramètre
    Par oasis742 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/12/2015, 14h04
  2. [XL-2002] Copie de lignes dans onglets sous 3 conditions
    Par leana13 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/05/2013, 15h56
  3. [XL-2002] Copier Ligne dans une autre Feuil Suivant Condition
    Par vaucluseimmo dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 17/12/2011, 16h31
  4. rechercher une date et copier la ligne dans un autre onglet
    Par ptitloup57 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/02/2009, 13h34
  5. Rechercher Texte puis copier ligne dans emplacement
    Par mattwarend dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/10/2008, 20h25

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