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 des lignes dans des feuilles designées


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 67
    Par défaut copier des lignes dans des feuilles designées
    je vous sollicite car j'ai un dossier à faire fonctionner et que je débute en vba
    j'ai une 1ere feuille appelée "globale" ayant environ de 3000 à 10000 lignes de données diverses suivant les nombres d'expes dans laquelle la colonne H contient les numéros de départements , et la colonne L contient le nom du transporteur
    j'ai une feuille "carte des délais" dans laquelle il y a plusieurs plages nommée d24hr, d48hr, j24hr, j48hr contenant chacune des numéro de départements. et 4 feuilles nommées dhl24, dhl48, joy24, joy48, (total 6 feuilles)
    Ce que je souhaiterais c'est que les lignes de la page "globale" contenant un numéro de département ( dans colonne H)appartenant à une des plages dans la feuille "carte des delais" définie par le transporteur colonne L soient copiees dans leurs feuilles de destinations respectives
    par exemple
    dans la feuille dhl24 on retrouvera toutes les lignes dont les départements appartiennent à la la plage d24hr et dans la feuille dhl48 on retrouvera toutes les lignes dont les département aapartiennent à la plage d48 hr etc de même pour joy48 et joy 24 peut être par le biais de cette formule si(et( gauche (l6;1)="d";nb.si(d24hr;h6);alors transfert vers feuille!dhl24 sinon rien

    Merci pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 67
    Par défaut
    Bonjour

    voila le fichier en xls

    Merci pour votre aide
    Fichiers attachés Fichiers attachés

  3. #3
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Par défaut
    Salut 'arctica',

    Voilà j'ai tenté ça :
    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
    Private Sub Worksheet_Activate()
     
        Me.Cells.Clear
     
        For Each cellH In ThisWorkbook.Sheets("globale"). _
            Range("H1:" & "H" & Range("H1").End(xlDown).Row).Cells
            For Each cellPlage In Application.Range("d24hr").Cells
                If cellH.Value = cellPlage.Value Then
                    cellH.EntireRow.Copy
                    If Me.Range("H1").End(xlDown).Row = Me.Rows.Count Then
                        If Me.Range("H1").Value = "" Then
                            Me.Paste Destination:=Me.Range("H1").EntireRow
                            Else
                                Me.Paste Destination:=Me.Range("H2").EntireRow
                        End If
                        Else
                            Me.Paste Destination:=Me.Range("H1"). _
                            End(xlDown).Offset(1, 0).EntireRow
                    End If
                End If
            Next cellPlage
        Next cellH
     
        Application.CutCopyMode = False
    End Sub
    Ca à l'air de bien marcher quand on active la feuille "dhl24", ensuite c'est facile de l'adapter pour les autres feuilles.

    Mais le problème c'est qu'il est un peu (trop) lourd ce code, alors si c'est pour l'exécuter qu'une seule fois ça ira, mais là comme il est... !

    Si c'est ce que tu cherches, on essayera de l'optimiser.


    A toi...

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour arctica mondev le forum j'ai regarde tes fichiers quelque chose m'interpelle dans la feuille "carte des delais" tu as des doublons de chiffres normal pas normal??? de plus dans la meme feuille ta plage est variable ou pas ???
    de ("b3 & z")

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 67
    Par défaut
    Bonsoir Laetitia, bonsoir Mondev

    en réponse à ta question ,Laetitia, non ce ne sont pas des doublons, chaque plage représente un ensemble de département à livrer par 2 transporteur différents en 24hou 48h

    ainsi d24hr est l'ensemble des départements à livrer en 24 par dhl
    ainsi d48hr est l'ensemble des départements à livrer en 48 par dhl
    j48hr est l'ensemble des départements à livrer en 48 par joyaux
    j24hr est l'ensemble des départements à livrer en 24 par joyaux

    en tous cas merci pour votre aide

    Salut Mondev,

    la macro me fait une erreur au départ en me disant:
    erreur de compilation,
    utilisation incorrecte du mot clé me

    qu'est ce que me?

  6. #6
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Par défaut
    Salut,

    "Me" c'est l'objet "dhl24" (la feuille). On peut utiliser ce mot clé pour désigner l'objet "parent".
    Donc,
    - si tu as copié le code dans le module de la feuille "dhl24", il devrait marcher, sinon,
    - si tu l'as copié dans un autre module "standard", remplace :
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkBook.Sheets("dhl24")
    et aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_Activate()
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub unNomDeTonChoix()
    mais dans ce cas, la procédure ne sera pas exécutée automatiquement.


    a+...

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/03/2014, 13h39
  2. Réponses: 10
    Dernier message: 24/02/2014, 15h22
  3. fixer des lignes et des colonnes dans ma feuille
    Par zangaloni dans le forum Excel
    Réponses: 4
    Dernier message: 18/04/2011, 13h17
  4. Supprimer des lignes dans une feuille Excel
    Par thefutureisnow dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/04/2011, 13h48
  5. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13

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