Remplir automatiquement les lignes vides à partir d'autres feuilles

ça ne prend pas en compte les heures , j'ai bien mis les mois dans TE 2018 comme tu l'as fait.

Je pense que celui qui change tout c'est que dans mon classeur tous les affaires précédentes j'ai demandé à excel d'aller chercher les informations dans une cellule précise. Exemple dans Poinsot la première affaire j'ai mis ='TE 2018'!A18.

Comme ce sont des données bien avant si il y a changement j'ai préféré qu'on change dans le principale que d'aller le chercher chez chaque agent. Est ce que ça peut engendrer le problème de la programmation?

Et si tu me passais ce nouveau fichier que j'adapte le programme correctement ?

ça y est!!! C'est bon les heures sont bien pris en compte , j'ai pas laché mdr.

Bon il reste toujours mon souci d'effacer après avoir fait des essaies

Alors comment puis-je lui faire comprendre que si j'efface ça doit effacer aussi dans la feuille principale?

Il est lourd le fichier c'est ce que je voulais te faire montrer du coup je n'ai pas pu le mettre ici

Lyra

Eeeeeeh bien joué !

Bah la je travail sur un programme de suppression et je reviens vers toi quand c'est bon

Pour le coup j'ai fais sa qui ne supprime les valeurs qui sont uniques dans ta feuille principale.

Private Sub worksheet_selectionchange(ByVal Target As Range)
Sheets(3).Cells(1, 1) = Target.Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Integer
Dim y As String
Dim tr As Range
If Target.Value = "" Then
    If IsNumeric(Sheets(3).Cells(1, 1)) Then
    x = Sheets(3).Cells(1, 1)
        If Application.CountIf(Worksheets("Feuil1").Range("A1:ZZ6500"), x) = 1 Then
            Set tr = Sheets(1).Cells.Find(Sheets(3).Cells(1, 1))
            Sheets(1).Cells(tr.Row, tr.Column) = ""
        End If
    Else
    y = Sheets(3).Cells(1, 1)
        If Application.CountIf(Worksheets("Feuil1").Range("A1:ZZ6500"), y) = 1 Then
            Set tr = Sheets(1).Cells.Find(Sheets(3).Cells(1, 1))
            Sheets(1).Cells(tr.Row, tr.Column) = ""
        End If
    End If
End If
End Sub

Je sais pas encore comment m'y prendre pour ceux n'étant pas unique mais je vais trouver un truc ;D

Heu.... Supprimer les valeur unique? ça veut dire quoi? et le programme je le mets dans la feuille 1?

il y a moyen que je t'envoie le fichier que j'ai fait pour que tu puisse jeter un œil? il fait quand même 1M

Heu.... Supprimer les valeur unique? ça veut dire quoi?

Par exemple le nom de l'affaire qui est inscrit en feuille TE 2018 est bien unique ?

Donc si tu supprime ce nom affaire en étant dans la feuille Poinsot, elle se supprimera automatiquement dans la feuille TE 2018

Le problème c'est donc les valeurs qui ne sont pas uniques (exemple : le numéro interne, le nbr d'heure prévues etc...)

et le programme je le mets dans la feuille 1?

Nop, il va dans tes feuilles Poinsot, Matter, Eynard, faralalaina etc... Et en plus il faut modifier un truc dessus si tu compte rajouter ce code tout de suite à tes programmes !

il y a moyen que je t'envoie le fichier que j'ai fait pour que tu puisse jeter un œil? il fait quand même 1M

Supprime des lignes, les couleurs, les autres feuilles des collègues sauf Poinsot & Matter !

Comme sa il va s’alléger et tu pourra me l'envoyer ici ^^

Faudra juste le remettre au propre après :p

cool donc j'ai supprimé quelques lignes donc ça fonctionne bien, faut juste trouver donc pour la suppression

3essaie.xlsm (949.58 Ko)

Lyra,

J'ai mis à jour ton fichier avec le programme dont je t'ai parler tout à l'heure mais j'ai beau me torturer l'esprit, je ne trouve pas de solution pour supprimer les valeurs en doublons de la feuille TE 2018 si tu les supprimes dans les feuilles de tes collègues :'(

Excel m'a vaincu !

Je te laisse quand même tester ce que je t'ai mis !

Et une petite parenthèse comme ça si j'ai envie de filtrer par exemple dans la feuille principale pendant le mois de septembre par exemple dans quelle affaire l'agent Poinsot ou Matter a pu mettre des heures comment je fais? sachant qu'ils peuvent mettre des heures dans leur propre affaire comme dans des affaires d'un autre agent. comment je peux filtrer ça?

Lyra,

J'ai mis à jour ton fichier avec le programme dont je t'ai parler tout à l'heure mais j'ai beau me torturer l'esprit, je ne trouve pas de solution pour supprimer les valeurs en doublons de la feuille TE 2018 si tu les supprimes dans les feuilles de tes collègues :'(

Excel m'a vaincu !

Je te laisse quand même tester ce que je t'ai mis !

Merci beaucoup de ton aide, tu as fait énormément et ça m'a appris beaucoup plus que j'ai espéré

Et une petite parenthèse comme ça si j'ai envie de filtrer par exemple dans la feuille principale pendant le mois de septembre par exemple dans quelle affaire l'agent Poinsot ou Matter a pu mettre des heures comment je fais? sachant qu'ils peuvent mettre des heures dans leur propre affaire comme dans des affaires d'un autre agent. comment je peux filtrer ça?

Je n'ai pas compris cette question :<

J'ai deux petits souci 😊.

Primo : j'ai refait le tableau en mettant toutes les affaires confondus dans chaque feuille des agents. Les agents peuvent mettre des heures sur leur affaires mais aussi sur des affaires dont ils ne sont pas désignés.

Exemple : poinsot peut mettre 10h sur une de ses affaires mais aussi il peut mettre 5h sur une affaire a Matter.

Donc dans le programme comment puis-je faire pour que quand poinsot ajoute une affaire ça se met dans la feuille principale mais aussi dans la feuille de Matter?

Secondo : dans la feuille principale je voudrai savoir par exemple sur le mois de septembre sur quelles affaires Matter ou Poinsot se sont mis des heures. Comment je peux filtrer pour visualiser les heures où Matter s'est pointé ou poinsot?

sur le forum ccm il y a une personne qui a donné ce code pour pouvoir supprimer mais je n'ai pas pu l'adapter à mon fichier avec les ajout d'heures.

Peux-tu me dire si c'est adaptable avec les variables heures à ajouter?

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Cell As String

Dim DernLigne As Integer 'Je déclare ma variable DernLigne qui me permet de savoir où entrer mes données

Dim col, derA

'Application.EnableEvents = False 'On désactive les évenements le temps que celle-ci tourne

If Target.Count > 1 Or Target.Row < 13 Then 'Si l'utilisateur sélectionne plus d'une cellule alors

Application.EnableEvents = True ' On réactive les événements

Exit Sub 'On quitte la procédure

End If 'Fin de mon SI

'------------------------------------------

'c'est que ca coince.........................

'If Target.Value = "" Then 'Si l'utilisateur appuis sur la touche Del ou Supprime

' Application.EnableEvents = True ' On réactive les événements

' Exit Sub 'On quitte la procédure

'End If 'Fin de mon SI

'----------------------------------------------------------------

If Target.Column >= 1 Or Target.Column <= 7 Then 'Si il y a une modification dans une cellule de la colonne 1 de la Feuil2, alors

col = Target.Column 'num colonne

derA = Range("A" & Rows.Count).End(xlUp).Row

With Worksheets(1)

DernLigne = .Range("A" & Rows.Count).End(xlUp).Row

If col = 1 Then

DernLigne = DernLigne + 1

.Cells(DernLigne, col).Value = Target.Value

.Cells(DernLigne, col + 1).Value = ActiveSheet.Name

Else

If Target.Row > derA Then

MsgBox "Attention: vous devez remplir la cellule colonne A en premier"

With Range("A" & Target.Row)

.Resize(, 7) = ""

.Value = ""

.Select

End With

Application.EnableEvents = True ' On réactive les événements

Else

.Cells(DernLigne, col).Value = Target.Value

End If

End If

End With

End If

Application.EnableEvents = True

End Sub

Et une petite parenthèse comme ça si j'ai envie de filtrer par exemple dans la feuille principale pendant le mois de septembre par exemple dans quelle affaire l'agent Poinsot ou Matter a pu mettre des heures comment je fais? sachant qu'ils peuvent mettre des heures dans leur propre affaire comme dans des affaires d'un autre agent. comment je peux filtrer ça?

Je n'ai pas compris cette question :<

J'ai pu résoudre le problème pour que ça copie automatiquement aussi dans les autres feuilles agents.

Mais il reste mon souci dans la feuille TE 2018 comment puis je voir en septembre par exemple dans quelles affaires Poinsot il a mit des heures? Le filtre étude par agent ne convient pas vue qu'il peut mettre des heures dans des affaires qui appartient à Matter. Je voudrais voir dans quelles affaires en septembre il a mit des heures. C'est possible ce genre de chose?

j'ai essayé ton dernier code, et quand je supprime mon dernier saisi d'affaire ça me met un debug

debug

Lyra,

Sa part un peu en cacahuète cette histoire xDDD

Résolvons un problème à la fois

Primo : j'ai refait le tableau en mettant toutes les affaires confondus dans chaque feuille des agents. Les agents peuvent mettre des heures sur leur affaires mais aussi sur des affaires dont ils ne sont pas désignés.

Exemple : poinsot peut mettre 10h sur une de ses affaires mais aussi il peut mettre 5h sur une affaire a Matter.

Donc dans le programme comment puis-je faire pour que quand poinsot ajoute une affaire ça se met dans la feuille principale mais aussi dans la feuille de Matter?

J'ai pu résoudre le problème pour que ça copie automatiquement aussi dans les autres feuilles agents.

Bien joué à toi ^^

Secondo : dans la feuille principale je voudrai savoir par exemple sur le mois de septembre sur quelles affaires Matter ou Poinsot se sont mis des heures. Comment je peux filtrer pour visualiser les heures où Matter s'est pointé ou poinsot?

Mais il reste mon souci dans la feuille TE 2018 comment puis je voir en septembre par exemple dans quelles affaires Poinsot il a mit des heures? Le filtre étude par agent ne convient pas vue qu'il peut mettre des heures dans des affaires qui appartient à Matter. Je voudrais voir dans quelles affaires en septembre il a mit des heures. C'est possible ce genre de chose?

Quelle colonne affiche les heures de (par exemple) Poinsot uniquement ?

Si il n'y en a pas dans la Feuil TE 2018, est-ce qu'il y en a dans la Feuil Poinsot ?

Si tu n'a pas de colonne unique par agent sa va grandement compliquer la chose.

sur le forum ccm il y a une personne qui a donné ce code pour pouvoir supprimer mais je n'ai pas pu l'adapter à mon fichier avec les ajout d'heures.

Je ne vois rien dans cette procédure qui permette de faire une suppression sur d'autres feuilles.

j'ai essayé ton dernier code, et quand je supprime mon dernier saisi d'affaire ça me met un debug

Ah oui, un petit oublie nul de ma part, remplace ta ligne en jaune par :

 Set tr = Sheets(1).Cells.Find(Sheets("Feuil1").Cells(1, 1))

L'erreur viens du fais que la Feuil2 n'existe pas dans ton classeur (L'indice n'appartient pas à la sélection)

Il faudra faire ce remplacement ailleurs aussi !

dans ton dernier code dès que je me met sur une cellule vide dans une feuille agent ben ça me met un debug

debug1

J'ai résolu le problème de filtre, mais mon souci maintenant c'est ton dernier code quand je me met dans une cellule ça me met un beug

J'ai résolu le problème de filtre

Bien joué ;D

dans ton dernier code dès que je me met sur une cellule vide dans une feuille agent ben ça me met un debug

La part contre c'est bizarre parce que je n'ai pas de message d'erreur de mon côté :0

Peut-tu me dire quelle est le message d'erreur qui s'affiche quand tu va sur une cellule vide ?

Après tu peux modifié ton code comme cela pour que (normalement) sa ne bug pas, mais je trouve bizarre que tu est un prob de ton côté x)

Private Sub worksheet_selectionchange(ByVal Target As Range)
If Target.Cells.CountLarge > 1 Or Target.Value = "" Then
Exit Sub
End If
Sheets("Feuil1").Cells(1, 1) = Target.Value
End Sub
Rechercher des sujets similaires à "remplir automatiquement lignes vides partir feuilles"