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 :

Comment transférer une ligne d'une feuille Excel vers une autre


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Comment transférer une ligne d'une feuille Excel vers une autre
    bonjour à tous !
    je souhaite écrire une macro qui cherche un mot sur une colonne de la feuille1 et si elle l'a trouve elle bascule toute la ligne correspondante vers la feuille2 en la supprimant de la feuille1 auriez vous une idée de comment faire !
    je vous remercie et vous serez trés reconnaissant pour celle ou celui qui pourrait m'aidez
    merci.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour

    Tu peux tester


    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
    Dim MotCible As String
    Dim x As Integer, y As Integer
     
    'Le mot à rechercher
    MotCible = "DVP"
     
    On Error Resume Next
    'Recherche d'un mot dans la plage A1:A20 de la Feuil1
    x = Application.Match(MotCible, Worksheets("Feuil1").Range("A1:A20"), 0)
    On Error GoTo 0
     
    If x <> 0 Then
        'Recherche la premiere ligne vide dans la Feuil2
        y = Worksheets("Feuil2").Range("A65536").End(xlUp).Row + 1
     
        Worksheets("Feuil1").Rows(x).Copy _
            Destination:=Worksheets("Feuil2").Cells(y, 1)
        x = 0
    End If


    michel

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Points : 74
    Points
    74
    Par défaut
    bonjour,

    je fait mes premiers pas sur excel...
    je cherche à faire la mème chose que iboulaye1980 mais avec un peu plus de contraintes...
    le code ci dessus fonctionne parfaitement (merci à SilkyRoad) mais si il y a deux entrée identique sur la colonne A, la fonction déplace seulement la première ligne. Comment peu t'on s'affranchir de ce problème?

    merci d'avance

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Points : 23
    Points
    23
    Par défaut re
    bonsoir, je suis interessé aussi pour ce genre de transfert on fais comment pour transferer tout les linges qui reponds au critere rechercher.
    merci

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Bonjour,
    Juste une idee en passant, mais pour copier plusieurs lignes qui correspondent au critere il suffirait peut etre de relancer la macro jusqu'a ce qu'elle ne trouve plus rien. Par exemple:

    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
    Dim LignePrecedente as Long 'dans la partie declaration du module
     
    Sub MacroPrincipale
    Dim CopieOk as Boolean
    Do
    CopieOk = RechercheMot(MotCible)
    If  CopieOk = False Then Exit Do
    Loop
    End Sub
     
    Function RechercheMot(MotCible As String) As Boolean
    Dim x As Integer, y As Integer
     
    On Error Resume Next
    'Recherche d'un mot dans la plage A1:A20 de la Feuil1
    x = Application.Match(MotCible, Worksheets("Feuil1").Range("A" & LignePrecedente +1 & ":A20"), 0)
    On Error GoTo 0
     
    If x <> 0 Then
        'Recherche la premiere ligne vide dans la Feuil2
        y = Worksheets("Feuil2").Range("A65536").End(xlUp).Row + 1
     
        Worksheets("Feuil1").Rows(x).Copy _
            Destination:=Worksheets("Feuil2").Cells(y, 1)
        x = 0
       RechercheMot = True
       LignePrecedente = y
    Else: RechercheMot = False
    End If
    End Function
    Il faut reinitialiser LignePrecedente entre deux MotCible differents.
    Il est aussi possible d'integrer la boucle dans la fonction, enfin voila quoi a adapter...

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/07/2011, 17h13
  2. Copier des données d'une feuille excel vers plusieurs autres
    Par LeeBamboo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/08/2008, 15h46
  3. copier une feuille excel vers un autre fichier excel en access VBA
    Par acbdev dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/03/2008, 09h32
  4. coller une sélection d'une feuille excel vers une table access
    Par docjo dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/01/2008, 17h50
  5. Importer une feuille EXCEL vers un autre fichier
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/05/2007, 15h59

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