Test d'une valeur sur une cellule contenant une liste déroulante pour copie

Bonsoir (ou bonjour vu mes horaires ^^) à tous !

J'ai un fichier assez simple en pièce-jointe que j'aimerais "terminer".

4exemple.xlsm (58.73 Ko)

C'est un fichier servant à la transmission d'infos au sein de mon service. On saisie une information à la main en colonne A, on rentre la date du jour, sélectionne l'auteur et l'état de l'information. J'aimerais que lorsqu'une ligne passe en "Traité" cette dernière soit copiée / collée sur la feuille "Archives" puis supprimée de la feuille "transmissions".

J'ai un petit code d'entamé mais je bloque sur la validation de mon if... le programme ne reconnaît pas la valeur "Traité" dans la colonne D. Je pense que ça a rapport avec le fait que ça soit une liste déroulante, sans pouvoir dire quel est le problème exactement..

Si le problème a déjà été soulevé dans un post antérieur je veux bien un lien, je n'ai malheureusement rien trouvé :/

Merci à tous pour votre aide !

Salut,

Sub Purge()
Dim lRow As Long
Dim n, xrg As Range
lRow = Worksheets("archives").Range("A" & Rows.Count).End(xlUp).Row + 1
Application.DisplayAlerts = False
  Application.ScreenUpdating = False
  With Worksheets("transmissions")
    If .AutoFilterMode Then .Cells.AutoFilter
    n = .Range("D" & Rows.Count).End(xlUp).Row
    On Error Resume Next
    .Range("A2:D" & n).AutoFilter Field:=4, Criteria1:="Traité"
    Set xrg = .Range("A2:D" & n).SpecialCells(xlCellTypeVisible)
      With Worksheets("Archives")
             xrg.Copy .Range("a" & lRow)
             xrg.Delete
        End With
    If .AutoFilterMode Then .Cells.AutoFilter
  End With
  Application.ScreenUpdating = True
  Application.DisplayAlerts = True
End Sub

En prenant pour acquis que tes valeurs de liste déroulantes soient sur une autre feuille, ou dans une colonne après "D" ...

Salut crackwood01 !

Dans le fonctionnement, j'ai remarqué que ta fonction supprimait toujours la ligne n°2. Également je ne retrouve rien de copié collé dans la feuille archives. Enfin mes listes sont en bas à partir de la ligne 40, c'est plus simple pour moi par rapport à mes MFC.

J'avoue ne pas bien saisir le fonctionnement de ton programme, tu utilise des fonctions que je ne connais pas du tout... Est-ce que tu pourrais m'expliquer un petit peu ? J'avoue ne pas pouvoir utiliser ce que tu m'envoie en dehors de copier coller ^^

Merci, AYolo

Salut AYolo,

Voici le fichier qui fonctionne bien ici

Tu ne devrais pas mettre des infos plus bas dans ta liste, que feras-tu si tu as plus de 40 dossiers?

de plus si tu commencais par vider le contenu des feuilles tu comprendrais l'erreur.

En fichier joint:

Wow c'est parfait merci beaucoup !

En général j'insère juste une ligne lorsque je rajoute un dossier, ce qui ne me posait pas de problème avec mon morceau de code précédent.

Qu'entends tu par vider le contenu des feuilles ?

Il y avait du texte qui trainait un peu partout quand on défilait vers le bas!

n'oublies pas de passer le post en résolu

Rechercher des sujets similaires à "test valeur contenant liste deroulante copie"