Recopier des lignes sous condition
Bonjour,
Je souhaiterai que les lignes d'1 tableau soient recopiées dans 1 autre onglet RECAP, lorsque celles-ci contiennent le mot "Direct" dans 1 colonne particulière. Sachant que j'ai ce tableau sur plusieurs onglets, par personne.
Je suppose que cela est possible, mais j'ai bcp de mal à comprendre VBA.
Merci d'avance.
Bonjour,
Regarde le fichier joint
Le code :
Sub recap()
Dim Sh As Worksheet, FRec As Worksheet
Dim Plg As Range
Dim DerLig As Long
Set FRec = Sheets("RECAP PAIEMENT DIRECT ")
Application.ScreenUpdating = False
With FRec
.Range("A5:P" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).Clear
.Range("V1").Value = .Range("I4").Value
.Range("V2").Value = "Direct"
DerLig = .Cells(Rows.Count, 1).End(xlUp).Row + 1
End With
For Each Sh In Sheets
If Sh.Name <> FRec.Name Then
If Sh.Range("A4").Value = "CHANTIER" Then
With Sh
Set Plg = .Range("A4:P" & .Cells(Rows.Count, 1).End(xlUp).Row)
If Plg.Rows.Count > 1 Then
Plg.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=FRec.Range("V1:V2"), _
CopyToRange:=FRec.Cells(DerLig, 1)
FRec.Rows(DerLig).Delete
DerLig = FRec.Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
End With
End If
End If
Next Sh
FRec.Range("V1:V2").Clear
End SubLe fichier :
PS1 : Attention, il y a un espace en fin du nom de l'onglet ("RECAP PAIEMENT DIRECT ")
PS2 : Conformément à la charte, évite d'écrire en majuscule, notamment dans l'énoncé de ta demande
Bonne journée
Super, je viens de le tester et c'est bien ce que je souhaitais.
Par contre, si à partir de mon tableau "recap" je veux rajouter des colonnes, à chaque fois que je vais le mettre à jour et que de nouvelles lignes seront insérées, les infos que j'aurai saisies ne vont pas suivre.
Merci d'avance.
Re-,
...rajouter des colonnes....
Ton tableau n'est donc pas finalisé?
Pour l'ajout de lignes, pas de soucis, c'est pris en compte.
Par contre, pour quelle raison voudrais-tu rajouter des colonnes?
En fait mes tableaux par personne, c'est pour le suivi des demandes d'agrément, et l'onglet "récap"c'est pour pouvoir suivre la facturation. Je voudrais récupérer toutes les lignes ou il y a 1 paiement "Direct" dans mon onglet "recap" et rajouter des colonnes avec des données sur l'avancement de la facturation.
Nous sommes 2 personnes à travailler sur ce fichier. Une sur le suivi des agréments et l'autre sur l'avancement de la facturation.
Merci.
bonjour,
voila quelques temps que je cherche à réaliser les deux actions suivantes sur le fichier joint :
Il s'agit d'un fichier de suivi d'actions sur l'année (une feuille par mois) :
->je voudrai que lorsque la cellule "urgent" Colonne H apparait (j'ai créé une condition pour que cela apparaisse au bout de 15 jours lorsque la remarque n'est pas réalisée), que la ligne soit recopiée en feuille urgent.
Attention chaque feuille correspond à un mois de l'année et doit répondre également à cette condition.
La feuille urgent doit cumuler toutes les actions non réalisées de toutes les feuilles sans les écraser.
->Je voudrai, que lorsque l'utilisateur complète sur la même ligne la cellule remarque (colonne D), cela verrouille les colonnes A, B, C, D de la ligne. Ainsi les autres utilisateurs ne pourront plus modifier la cellule
Pour cette dernière requête j'ai testé ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
' NB : La protection est associée à un mot de passe : "mp"
If Not Intersect(Target, Range("D3:D300")) Is Nothing Then 'Valable seulement pour la Plage D3:D300
'Suppression de la protection de la feuille
ActiveSheet.Unprotect
If Range("d" & Target.Row).Select <> "" Then
Target.EntireRow.Locked = True
End If
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub
Le problème c'est que cela verrouille toute la feuille et non pas la seule cellule complétée.
Merci de votre aide.