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 :

copie d'une ligne sur autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    secretaire de direction
    Inscrit en
    Juillet 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : secretaire de direction
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut copie d'une ligne sur autre feuille
    bonjour,
    j'ai beau lire et relire toute sorte d'idees de code sur des forums... j'y arrive pas!

    voila mon probleme...
    j'ai constitué un classeur avec 2 feuilles :
    risquesUT - Planaction

    je veux que ma ligne soit recopiée sur "Planaction" si ma colonne M "risquesUT" = P1

    si quelqu'un peut m'aider...
    Merci!

    sophie
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut copie
    Bonjour le Forum, Bonjour Sofynet,

    Sois la bienvenue.

    Il y a deux méthodes.

    1 - Activer un filtre sur ta première feuille et copiers les cellules visibles vers ta 2ème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro2()
     
    Dim dercel As Range
     
        With Sheets("risquesUT")
                If .FilterMode = True Then .ShowAllData
                Set dercel = .Cells(.Rows.Count, 13).End(xlUp)
                .Range([B2], dercel).AutoFilter Field:=12, Criteria1:="P1"
                .Range([B3], dercel).SpecialCells(xlCellTypeVisible).Copy Destination:=Worksheets("Planaction").Range("A3")
        End With
     
    Set dercel = Nothing
     
    End Sub
    2- Alimenter une variable Tableau d'après ton critère et informer ta feuille de destination de cette variable.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Public Sub essai_tablo()
     
    Dim lacel As Range
    Dim tablo()
     
    'ton critère de tri
    lachaîne = "P1"
    n = 0
     
    'balayage des lignes informées hors les titres de colonnes
    With Sheets("risquesUT")
            For i = 3 To .Cells(Rows.Count, 13).End(xlUp).Row
                    Set lacel = .Range("M" & i)
                    With lacel
                            If .Value = lachaîne Then
                                    n = n + 1
                                    'Alimentation du tableau dans la limite de 10 valeurs
                                            ReDim Preserve tablo(1 To 13, 1 To n)
                                            'La copie s'effectue ici à partir de la colonne B
                                            For k = 12 To 1 Step -1
                                                    tablo(k, n) = .Offset(0, k - 12).Value
                                            Next k
                            End If
                    End With
            Next i
    End With
     
     
    'Information de la feuille des résultats
    With Worksheets("Planaction")
            .Activate
            .Range([A3], [L3].Offset(UBound(tablo, 2) - 1, 0)).Value = WorksheetFunction.Transpose(tablo)
    End With
     
     
    Set lacel = Nothing
     
    Erase tablo
     
    End Sub
    Certes, la 1ère méthode reste la plus simple. Au demeurant, la deuxième reste une illustratiion de l'utilisation des variables Tableau.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


Discussions similaires

  1. Réponses: 12
    Dernier message: 22/01/2015, 16h49
  2. Réponses: 3
    Dernier message: 26/09/2014, 09h38
  3. [XL-2003] Copier une ligne sur deux d'une feuille à une autre en un seul coup
    Par brownthefou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2012, 15h33
  4. Supprimer une ligne sur deux feuilles du même classeur
    Par apdf1 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/03/2011, 12h28
  5. [XL-2007] Copier coller une ligne excel sur autre feuille avec conditions
    Par amstelveen dans le forum Excel
    Réponses: 5
    Dernier message: 11/05/2009, 18h54

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