ajouter automatiquement une ligne dans une autre feuille

achkar

XLDnaute Nouveau
Bonjour à tous.
Voici mon probleme:

J'ai trois feuilles 1 et 2 et 3 avec les champs Nom, Prenom par exemple.
Je voudrais copier les valeurs des feuilles 2 et 3 dans la feuille 1. Et si je fais une autre manipulation sur l’une des deux ( 2 et 3 ), je voudrais que les nouvelles valeurs s'ajoutent automatiquement ( sans mettre un boutton quelque part ) dans la feuille 1 sur la ligne suivante (ligne vide). Comment faire pour pouvoir ajouter cette nouvelle ligne automatiquement et que les valeurs s'y inscrivent

J’ai déjà trouvé un code, mais le problème, c’est que les lignes de la feuille 2 s’ajoutent dans la feuille 1 autant de fois que je clique sur l’onglet Feuille 2 puis sur l’onglet Feuille 3. Autrement dit, elles ne s’ajoutent pas une seule fois. Comment faire pour éviter cela ?
Merci

Bonne journée
 

Pièces jointes

  • essai.xls
    28 KB · Affichages: 137
  • essai.xls
    28 KB · Affichages: 131
  • essai.xls
    28 KB · Affichages: 135

skoobi

XLDnaute Barbatruc
Re : ajouter automatiquement une ligne dans une autre feuille

Bonjour,

ce code (à placer dans ThisWorkbook) ajoute la ligne saisie des feuilles 2 ou 3 si le nom et le prénom sont renseignés (évite les doublons):

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim ShDest As Worksheet
If (Sh.Name = "Feuil2" Or Sh.Name = "Feuil3") And Sh.Range("A" & Target.Row) <> "" _
    And Sh.Range("B" & Target.Row) <> "" [COLOR=Blue][B]And (Target.Column = 1 Or Target.Column = 2)[/B][/COLOR] Then
  Set ShDest = Sheets("Feuil1")
  With ShDest
    i = .Cells(22, 1).End(xlUp).Row
    Sh.Range("A" & Target.Row & ":B" & Target.Row).Copy .Range("A" & i + 1)
    .Range("A1").CurrentRegion.Sort Key1:=.Range("A1:B1"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
  End With
End If
End Sub
Cela suppose une liste existante dans la feuille 1.
NB: Pense à d'abord supprimer le code se trouvant dans la feuille 1.

Edit: ajout en bleu
 
Dernière édition:

achkar

XLDnaute Nouveau
Re : ajouter automatiquement une ligne dans une autre feuille

Bonjour,

ce code (à placer dans ThisWorkbook) ajoute la ligne saisie des feuilles 2 ou 3 si le nom et le prénom sont renseignés (évite les doublons):

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim ShDest As Worksheet
If (Sh.Name = "Feuil2" Or Sh.Name = "Feuil3") And Sh.Range("A" & Target.Row) <> "" _
    And Sh.Range("B" & Target.Row) <> "" [COLOR=Blue][B]And (Target.Column = 1 Or Target.Column = 2)[/B][/COLOR] Then
  Set ShDest = Sheets("Feuil1")
  With ShDest
    i = .Cells(22, 1).End(xlUp).Row
    Sh.Range("A" & Target.Row & ":B" & Target.Row).Copy .Range("A" & i + 1)
    .Range("A1").CurrentRegion.Sort Key1:=.Range("A1:B1"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
  End With
End If
End Sub
Cela suppose une liste existante dans la feuille 1.
NB: Pense à d'abord supprimer le code se trouvant dans la feuille 1.

Edit: ajout en bleu

Bonjour SKOOBI et merci d'essayer de m'aider
mais ça ne semble pas fonctionner (chez moi en tout cas).
j’ai mis le code dans « ThisWorkbook » et j’ai supprimé le code de la feuille 1 mais il y n’a rien qui change :confused:
 

skoobi

XLDnaute Barbatruc
Re : ajouter automatiquement une ligne dans une autre feuille

Bonjour,

est-ce que les feuilles 2 et 3 ont bien comme nom Feuil2 et Feuil3 ?
Si non, il faut adapter les noms dans le code:

.........
If (Sh.Name = "Feuil2" Or Sh.Name = "Feuil3") And Sh.Range(".......
.............
 

skoobi

XLDnaute Barbatruc
Re : ajouter automatiquement une ligne dans une autre feuille

Re,

La PJ fonctionne chez-moi.
Je précise que ça marche par ajout du nom et prénom dans les feuilles 2 et 3.
 

Pièces jointes

  • essai1.zip
    8.4 KB · Affichages: 131
  • essai1.zip
    8.4 KB · Affichages: 105
  • essai1.zip
    8.4 KB · Affichages: 107

achkar

XLDnaute Nouveau
Re : ajouter automatiquement une ligne dans une autre feuille

Tout d'abord, un grand merci pour ton aide :). Effectivement ton code marche très bien. Je n'ai pas compris pourquoi mon code n'a pas marché sachant que j'ai mis le meme code que toi ! ce n'est pas grave l'essentiel c'est qu'il marche :D.

Maintenant je voudrais savoir comment on fait pour :

- Quand on modifie la colonne "C" ou "D" dans la feuille 2 et/ou 3, cette modification s'effectue automatiquement dans la feuille 1.

- Quand on supprime une ligne de la feuille 2 et/ou 3 elle s'efface automatiquement de la feuille 1.

- Quand une ligne de la feuille 2 ou 3 se copie dans la feuille 1, le contenu de la cellule de la colonne B de cette ligne prend le nom de la feuille dont elle est extraite ( par exemple: si la ligne de la feuille 3 se copie dans la feuille 1, alors la cellule de la colonne B dans la feuille 1 contiendra "Feuille 3").

Merci infiniment d'avance
 

skoobi

XLDnaute Barbatruc
Re : ajouter automatiquement une ligne dans une autre feuille

Bonjour,
Quand on modifie la colonne "C" ou "D" dans la feuille 2 et/ou 3, cette modification s'effectue automatiquement dans la feuille 1.

J'en conclus que tu as déplacé les noms et prénoms en colonne C et D, c'est ce que me dis ma boule de cristal.....:D, c'est juste?
Quand une ligne de la feuille 2 ou 3 se copie dans la feuille 1
Tu copies toute la ligne ou uniquement de la colonne A à D?

Bonne journée.
 

achkar

XLDnaute Nouveau
Re : ajouter automatiquement une ligne dans une autre feuille

Bonjour Skoobi,

Non non non pas du tout, je viens d'ajouter les colonnes C et D, donc je ne sais vraiment pas pourquoi ça ne marchait pas avant :confused:.

Je copie uniquement la plage de A à D (A, B, C et D)

Merci
Bonne journée.
 

skoobi

XLDnaute Barbatruc
Re : ajouter automatiquement une ligne dans une autre feuille

Re,

Encore 2 questions:
1- quand tu modifie la colonne C ou D, est-ce que A et B contiennent toujours quelque chose?
2- quand il faut ajouter dans la feuille 1, les 4 cellules de la ligne correspondante sont toutes non vides ou 1 ou plusieurs peuvent être vides?
 

achkar

XLDnaute Nouveau
Re : ajouter automatiquement une ligne dans une autre feuille

Re bonjour,

- Quand on modifie la colonne "C" et/ou "D" dans la feuille 2 et/ou 3, cette modification s'effectue automatiquement dans la feuille 1 sur la même colonne bien sur, et la colonne "A" et/ou "B" contiennent toujours la même chose.

- Quand il faut ajouter dans la feuille 1, les 4 cellules de la ligne correspondante sont toutes remplies et rin qui vide.

merci
@+
 

skoobi

XLDnaute Barbatruc
Re : ajouter automatiquement une ligne dans une autre feuille

Re,

Ci-joint ce que ça donne.

Si il y a des doublons dans la colonne A, il faudra revoir le code.
J'ai pas eu le temps de regarder pour la suppression de ligne.
 

Pièces jointes

  • essai2.zip
    9.6 KB · Affichages: 93
  • essai2.zip
    9.6 KB · Affichages: 80
  • essai2.zip
    9.6 KB · Affichages: 90

achkar

XLDnaute Nouveau
Re : ajouter automatiquement une ligne dans une autre feuille

Bonjour Skoobi, :)

Merci et Bravo pour ce que ta déja fait, car pour moi c'est des truc impossible

Je pense que je me suis mal éxprimé : voir le fichier attaché


merci encore

@+
 

Pièces jointes

  • essai2.xls
    31 KB · Affichages: 152
  • essai2.xls
    31 KB · Affichages: 160
  • essai2.xls
    31 KB · Affichages: 178

Discussions similaires

Réponses
7
Affichages
323