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 :

Macro copie nb de ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Par défaut Macro copie nb de ligne
    Bonjour,
    Je cherche une macro qui copierait toujours les même nombre de ligne (disons 10) à partir de la ligne 1.
    Exemple :
    j'ai un tableau xls qui comporte en ligne 1 un menu, en ligne 2 une valeur, ligne 3 autre valeur, etc...
    j'applique un certain filtre et le résultat m'affiche sous la ligne 1, la ligne 3, ligne 4, ligne 7, etc...

    A1 menu
    A2 ligne 2
    A3 ligne 3
    A4 ligne 4
    A5 ligne 5
    A6 ligne 6
    A7 ligne 7
    A8 ligne 8
    A9 ligne 9
    A10 ligne 10
    A11 ligne 11

    Application filtre :
    A1 menu
    A3 ligne 3
    A7 ligne 7
    A5 ligne 5
    A2 ligne 2
    etc
    J'aimerai avoir une macro qui me copie toujours les 10 lignes après cette première ligne (A1 menu), quelque soit le numéro de ligne qui suit.
    Est-ce possible?
    Merci pour vos réponses.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    Ici pour classer les dix plus grande:
    dans cette exemple recherche des 10 plus grand nombre colonne A, et inscription classement colonne B puis collé dans l'ordre feuille2

    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 Les10PlusGrandFeuille1ColléEnFeuille2()
    Dim monTab(1 To 10) As Variant
    Dim derLi As Long
    Dim i As Integer
    Dim k As Integer
    ' récupération de la dernière ligne de la colonne A
    derLi = Sheets("feuil1").Columns(1).Find("*", , , , , xlPrevious).Row
    ' boucle pour trouver les 10 plus grandes valeurs
    For i = 1 To 10
    monTab(i) = Application.Match(Application.Large(Range("A2:A" & derLi), i), Range("A2:A" & derLi), 0) + 1
    Next i
     
    'pour noter l'ordre dans la feuille1 ( n'est peut-être pas utile)
    For i = 1 To UBound(monTab)
       Cells(monTab(i), 2) = i  ' on note  l'ordre de croissance
     
    Next
     
    ' pour inscrire en feuille2 dans l'ordre!
    k = 2
    For i = 1 To UBound(monTab)
    Cells.Rows(monTab(i)).Copy Destination:=Sheets("Feuil2").Cells(k, 1) 'on copie toute la ligne
    k = k + 1
    Next i
    End Sub
    Plus besoin de classé en feuille1

  3. #3
    Expert éminent
    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
    Par défaut

    Bonjour, bonjour,

    problématique mal exposée car cela n'a rien à voir avec un filtre ‼

    Normalement 3 / 4 lignes de code car pas besoin de boucle en combinant une fonction de feuille de calculs et Evaluate,
    nécessiterait juste de voir un classeur en pièce jointe …

    Et c'est aussi réalisable directement dans la feuille de calculs, sans code !

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Par défaut
    Bonjour Marc-L,
    En fait, dans mon exemple, après l'application de mon filtre j'obtiens le résultat ci-dessous :
    A1 menu (qui ne change jamais car c'est une ligne figée)
    A3 ligne 3
    A7 ligne 7
    A5 ligne 5
    A2 ligne 2
    etc,

    Ce résultat peut changer en fonction de mon filtre mais, j'aimerai pouvoir copier toujours les 5 premières lignes en dessous de la premire ligne figée, quelque soit le résultat du filtre appliqué.
    Le pb est que ma macro est sous cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Range("A2:A6").Select
        Selection.Copy
        Sheets("Feuil2").Select
        Range("A2").Select
        ActiveSheet.Paste
    et ("A2:A6") ne convient pas car pour cet expemple cela serait "A3x".
    Comment indiquer les 5 (ou 10) premières lignes (quelque soit le N° de la ligne Excel) juste après la première ligne figée.
    Merci

  5. #5
    Expert éminent
    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
    Par défaut

    Un filtre ne change pas l'ordre des lignes !

    Sinon, si vraiment obligé d'utiliser un code (inutile car peut se faire sans !), consulter l'aide de la méthode SpecialCells

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Par défaut
    La macro citée en exemple (ci-dessous) copiera quand même la ligne "A2" (jusqu'à A6) alors que sous ma ligne 1 dans l'exemple donné, il y a la ligne A3, etc..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("A2:A6").Select
    Selection.Copy
    Mais on ne doit pas se comprendre ou me suis je mal exprimé.
    Merci quand même

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

Discussions similaires

  1. Problème avec ma macro copie et insere une ligne
    Par mogo107 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/06/2013, 10h02
  2. Macro automatique conditionnelle insertion ligne puis copie
    Par FloRichar dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/05/2013, 12h18
  3. [XL-2007] Macro - Copie ligne avec formule et récupération de nom de feuille
    Par klemanet dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/06/2012, 17h04
  4. macro copie ligne suivante
    Par John Parker dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 18/04/2011, 10h54
  5. [WD-2003] Macro copie/colle tableau - Macro ajout de ligne
    Par Graineur dans le forum VBA Word
    Réponses: 17
    Dernier message: 02/08/2010, 09h32

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