copier/coller sous conditions

vevzz

XLDnaute Nouveau
Bonjour tout le monde.
Après avoir arpenté "tous" (ou presque) les forums sur Excel je me décide à poser ma question de "noob".

Je travail sur un fichier qui regroupe une feuille de "Contact" dans laquelle je regroupe différentes données sur chaque personne qui m'appelle. A partir de cette feuille, dans ma colonne -E- je rentre l’état du dossier de cette personne, à savoir, -Hors cadre - Annulé - Suspendu - Traité.

Mon fichier contient une seconde feuille "Dossier" dans laquelle je souhaite intégrer toutes les personnes de la feuille "contact" dont l'état du dossier devient "Traité", sans toute fois qu'elles disparaissent de "contact". Pour être un peu plus pénible, je voudrais que les lignes de dossiers traités se suivent sur la feuille "Dossier", peu importe la ligne de provenance dans la feuille "Contact". Attention ça continu, si pour des raisons X ou Y le dossier est Annulé ou suspendu, je voudrais qu'il disparaisse de la feuille "Dossier".

J'ai essayé plusieurs code VBA dont celui ci que j'ai évidement adapté comme j ai pu, mais qui me renvoi une erreur chaque fois que je rentre une nouvelle personne dans "Contact" :
Dans feuille "Contact":

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Intersect(Target, Columns(5)).Value = "Traité" Then
DlgnT = Sheets("Dossier").Cells(Rows.Count, 2).End(xlUp).Row
Target.EntireRow.Copy Destination:=Sheets("Dossier").Cells(DlgnT + 1, 1)
End If
End If
End Sub

Dans feuille "Dossier":

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Intersect(Target, Columns(5)).Value <> "Traité" And _
Intersect(Target, Columns(5)).Value <> "" Then
DlgnP = Sheets("Contact").Cells(Rows.Count, 2).End(xlUp).Row
Target.EntireRow.Delete
End If
End If
End Sub

De mon propre cru, j'ai fais une fonction qui va vous laisser sans voix, ;-) . Je la rentre dans chaque cellule concernées, ça marche pas mal à ceci prés que les lignes dans "Dossier" correspondent aux lignes dans "Contact" je me retrouve donc avec des trous énormes entre chaque ligne dans "Dossier".
=SI(Contact!$E:$E="Traité";Contact!$H:$H;"")

J’espère avoir su m'expliquer. J'utilise Excel 2010 je ne sais pas si cela a une importance mais dans le doute...Si une "simple" formule permettait de le faire ce serai le top.
Merci d'avance à vous tous, qui allez sauver le peu de cheveux qu'il me reste à m'arracher.

Vevzz
 

Pièces jointes

  • Exemple.xlsm
    52.4 KB · Affichages: 79
  • Exemple.xlsm
    52.4 KB · Affichages: 81
  • Exemple.xlsm
    52.4 KB · Affichages: 85

GIBI

XLDnaute Impliqué
Re : copier/coller sous conditions

Bonjour,

pour éviter le plantage : ajouter la ligne suivante en début de la 1iere macro

If Target.Column <> 5 Then Exit Sub

Par contre je n'ai pas compris l'utilisation de "Dossier" : tu remplis automatiquement la dernière ligne et certaine ont étaient modifiées par des formules ===> il faut chosir formule ou copie


en bonus : j'ai modifié mes formule de manière à ne recopier que les "traité" sans trou


GIBI
 

Pièces jointes

  • Exemple.xlsm
    65 KB · Affichages: 90
  • Exemple.xlsm
    65 KB · Affichages: 88
  • Exemple.xlsm
    65 KB · Affichages: 91
Dernière édition:

vevzz

XLDnaute Nouveau
Re : copier/coller sous conditions

Alors je pense que ce que tu n as pas compris viens d'une erreur dans le dossier exemple. En fait les pages "Contact" et "Dossier" fonctionnent de la meme maniere sauf que dans "Dossier" des colonne vont venir s'ajouter.
Merci
 

vevzz

XLDnaute Nouveau
Re : copier/coller sous conditions

Re bonjour,
comme d'hab un problème résolu, et hop un nouveau arrive, forcement.

Il s'agit du même fichier que précédemment mais un peu plus avancé, Grâce a la formule de GIBI :

=SI(NB.SI(Contact!$E$6:$E$851;"Traité")<LIGNE()-5;"";DECALER(Contact!$B$6;PETITE.VALEUR(SI("Traité"=Contact!$E$6:$E$851;LIGNE(Contact!$E$6:$E$851);9999);LIGNE()-5)-6;COLONNE()-2;1;1))

A ce niveau les transferts d'une feuille à l'autre se font très bien, mais dans ma feuille "Dossier" je complète les informations sur chaque personne. il y a donc plus de colonnes et c'est justement le problème.
Dans le fichier joint, les dossiers de Mr TITI et Mr Rogne sont "Traité". Dans la feuille "dossier" j'ai ajouté les informations complémentaires. Mais quand le dossier de Mr BON devient "Traité" il s’intercale entre les deux précédent dans la feuille "Dossier" mais les informations complémentaires ne bougent pas, C'est ballot.
Du coup les compléments concernant Mr TITI se retrouvent face a Mr BON.
Ma question est donc : Est il possible de décaler les informations complémentaires en même temps que les personnes qu'elles concernent dans la feuille "Dossier" ? Oui oui, c'est plus clair avec le fichier joint, enfin j’espère.

Merci beaucoup, ne serait-ce que pour l'effort de compréhension. ;-)
Peut être qu'il faudrait ouvrir un nouveau sujet, si c est le cas, n’hésite pas, je m'y colle.
 

Pièces jointes

  • exemple2.xlsm
    86.9 KB · Affichages: 52
  • exemple2.xlsm
    86.9 KB · Affichages: 60
  • exemple2.xlsm
    86.9 KB · Affichages: 64

Statistiques des forums

Discussions
312 677
Messages
2 090 821
Membres
104 677
dernier inscrit
soufiane12