Exporter une ligne vers une autre feuille.

Fermé
Finit0 Messages postés 10 Date d'inscription lundi 20 février 2012 Statut Membre Dernière intervention 21 février 2012 - 20 févr. 2012 à 10:42
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 - 21 févr. 2012 à 15:14
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

ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 429
20 févr. 2012 à 18:08
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
Finit0 Messages postés 10 Date d'inscription lundi 20 février 2012 Statut Membre Dernière intervention 21 février 2012
21 févr. 2012 à 09:42
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
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 429
20 févr. 2012 à 16:49
bonjour

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

bonne suite
0
Finit0 Messages postés 10 Date d'inscription lundi 20 février 2012 Statut Membre Dernière intervention 21 février 2012
20 févr. 2012 à 17:58
C'est exactement que je souhaite ! Peux-tu m'expliqué en deux trio ligne comment tu as fait si possible ^^
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 429
Modifié par ccm81 le 21/02/2012 à 10:04
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
Finit0 Messages postés 10 Date d'inscription lundi 20 février 2012 Statut Membre Dernière intervention 21 février 2012
21 févr. 2012 à 11:58
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 429
21 févr. 2012 à 14:17
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
Finit0 Messages postés 10 Date d'inscription lundi 20 février 2012 Statut Membre Dernière intervention 21 février 2012
21 févr. 2012 à 14:33
je fais les motifs et je te l'envoie apres si cela ne marche toujours pas .
0
Finit0 Messages postés 10 Date d'inscription lundi 20 février 2012 Statut Membre Dernière intervention 21 février 2012
21 févr. 2012 à 14:41
http://cjoint.com/data3/3BvoHmbYSY8.htm

Cela ne marche toujours pas malheureusement

http://cjoint.com/data3/3BvoHmbYSY8.htm
0
Finit0 Messages postés 10 Date d'inscription lundi 20 février 2012 Statut Membre Dernière intervention 21 février 2012
21 févr. 2012 à 14:46
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
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 429
21 févr. 2012 à 15:14
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