Exporter une ligne vers une autre feuille.

Bonjour,

Voici mon problème, j'aimerai trouvai un moyen d'exporter une ligne complète vers une autre feuille.

Malheureusement je ne vous parle pas d'un simple copier coller. J'aimerai si possible quant j'inscris le mot "validation" dans une colonne que la ligne où le mot est inscrit soit transféré vers une autre feuille.

Par exmple :

Si "validation" en G2
Alors la ligne 2 aille à la feuille numéro 2 ranger sur la première ligne. et les suivantes aillent en dessous.

En espérant que j'ai pu exposer mon problème clairement...

Merci d'avance.

9 réponses

  1. re

    le même en commenté

    ' procedure activée des un changement dans la feuille 1
    ' target est la cellule (cible) qui a changé dans la feuille 1
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim li1 As Long, li2 As Long
    ' si la cible contient plusieurs cellules on arrete tout
    If Target.Count > 1 Then Exit Sub
    ' si la cible est dans la colnne G on continue
    If Not Intersect(Target, Range("G:G")) Is Nothing Then
      ' si la cible = "validation" on y va
      If Target.Value = "validation" Then
        ' li1 est la ligne de la cible (feuille 1)
        li1 = Target.Row
        ' li2 est la premiere ligne non vide de la feuille 2
        li2 = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row + 1
        ' copie de la ligne li1 de la feuille 1 sur la ligne li2 de la feuille 2
        Sheets(1).Range("A" & li1).EntireRow.Copy Sheets(2).Range("A" & li2)
      End If
    End If
    End Sub

    RQ. si tu supprimes une "validation" dans la feuille 1, ça ne supprime pas la ligne en feuille 2 !!!

    bonne suite
    2
    1. J'ai integrer le code à mon excel et cela marche parfaitement merci ! Une dernière chose peut-on faire disparaitre la ligne de la feuille 1 une fois qu'il y a écrit validation ? (comme une téléportation intégral de la ligne vers la feuille 2)
      0
  2. bonjour

    un essai avec ce que j'ai compris
    https://www.cjoint.com/?0BuqWWlnoHJ

    bonne suite
    0
    1. C'est exactement que je souhaite ! Peux-tu m'expliqué en deux trio ligne comment tu as fait si possible ^^
      0
  3. re

    juste avant le 1° end if tu ajoutes

    ' suppression de la ligne li1 de la feuille 1 
    Sheets(1).Rows(li1).Delete

    RQ1. tu testes sur une copie de ton classeur avant ....
    RQ2. si c'est fini, tu mets le pb à résolu

    bonne suite
    0
    1. Alors j'ai un problème quant la ligne va sur l'autre feuille elle ne se met pas en dessous elle supprime la première ligne...

      Veux-tu que je t'envoi mon xls ?
      0
      1. re,

        et avant la dernière modif?
        le code au cas où...
        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim li1 As Long, li2 As Long
        If Target.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("G:G")) Is Nothing Then
          If Target.Value = "validation" Then
            Application.ScreenUpdating = False
            li1 = Target.Row
            li2 = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row + 1
            Sheets(1).Range("A" & li1).EntireRow.Copy Sheets(2).Range("A" & li2)
            Sheets(1).Rows(li1).Delete
            Application.ScreenUpdating = True
          End If
        End If
        End Sub

        si ça ne marche toujours pas, envoies ton xls (format excel 2003)
        0
        1. je fais les motifs et je te l'envoie apres si cela ne marche toujours pas .
          0
          1. http://cjoint.com/data3/3BvoHmbYSY8.htm

            Cela ne marche toujours pas malheureusement

            http://cjoint.com/data3/3BvoHmbYSY8.htm
            0
            1. J'ai mis le dernier code sur un autre xls. Pas sur celui que je t'ai envoyé mais sa ne marche pas ^^

              Merci beaucoup
              0
              1. re

                1. la feuille de destination est la feuille 2
                2. dans la feuille 1, la colonne où on écrit "validation" est J
                3. la colonne A de la feuille 1 (client) doit être renseignée
                https://www.cjoint.com/?0Bvpe5YlzGL
                0