Transfert des données d'une feuille à une autre sous condition

Bonjour tout le monde,

S’il vous plait, j'ai besoin de votre aide pour régler une problématique que je n’arrive pas à résoudre depuis quelques jours. En fait, j’ai une feuille (BD) qui sera alimenter par des informations d’une autre feuille (Accueil). Jusqu’à date tout va bien. Aussi, quand je mets le curseur sur une valeur de la colonne (PPP) et que je clique sur le bouton (Choix des données), j’aurai automatiquement sur la feuille (BD) juste les lignes de la valeur que j’ai choisi par le bouton (Choix des données), puis, je choisi (x) sur la colonne (U) transfert. Par la suite, je clique sur le bouton Archiver et les lignes dans lesquelles j’ai choisi (x) sur la colonne (U) se transfert immédiatement dans l’autre feuille (Archive). Jusqu’à date tout va encore bien.

La problématique, c’est que quand je fais le choix d’un paramètre sur la colonne PPP, par exemple le paramètre (LAL-700), et que je clique sur le bouton Choix des données, et qu’après je choisi (x) sur la colonne (U), puis que je clique sur archiver, je souhaiterai que les ID qui sont sur la colonne (A) et qui sont identiques des ID de LAL-700 seront aussi archiver automatiquement même si ces ID n’ont pas LAL-700 sur la colonne(PPP).

Exemple : ID : RAN000156

Cordialement

45test-22.xlsm (100.33 Ko)

Bonjour,

Avec ce code modifié > si la feuille n'est pas filtrée ...

Un essai ...

Sub ARCHIVAGE()

   'On désactive les messages d'alertes d'excel et on désactive le défilement des macros
   Application.ScreenUpdating = False
   Application.DisplayAlerts = False

   'Je déclare des variables
   Dim CopyRange As Range
   Dim PasteRange As Range
   Dim x As Integer
   Dim LID As String

   ' Mémoriser l'ID de la colonne A
   For x = Worksheets("BD").Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
      If Worksheets("BD").Range("U" & x).Value = "x" Or Worksheets("BD").Range("U" & x).Value = "X" Then
         LID = Worksheets("BD").Range("A" & x).Value
         Exit For
      End If
   Next x

   'Ici, nous allons travailler du bas du tableau jusqu'en haut car si on fait l'inverse, cela pose problème avec la suppression de ligne
   'Pour x allant de la dernière ligne du tableau à 2
   For x = Worksheets("BD").Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1

      'Si la valeur dans la colonne I est "x" ou "X" ou la valeur de LID = la valeur de la colonne A
      If Worksheets("BD").Range("U" & x).Value = "x" Or Worksheets("BD").Range("U" & x).Value = "X" _
         Or Worksheets("BD").Range("A" & x).Value = LID Then

         'On déclare la sélection des celluls à copier ainsi que la sélection des cellules qui vont accueillir les données
         Set CopyRange = ThisWorkbook.Worksheets("BD").Range("A" & Worksheets("BD").Range("S" & x).Row & ":U" & Worksheets("BD").Range("U" & x).Row)
         Set PasteRange = ThisWorkbook.Worksheets("ARCHIVE").Range("A" & Worksheets("ARCHIVE").Range("A" & Rows.Count).End(xlUp).Row + 1 & ":O" & Worksheets("ARCHIVE").Range("A" & Rows.Count).End(xlUp).Row + 1)

         'On copie/colle les données
         PasteRange.Value2 = CopyRange.Value2

         'On supprime la ligne
         Worksheets("BD").Range("U" & x).EntireRow.Delete
      End If
   Next x

   'On active les messages d'alertes d'excel et on active le défilement des macros
   Application.ScreenUpdating = True
   Application.DisplayAlerts = True
End Sub

ric

Bonjour Ric,

Je vous remercier énormément pour votre aide précieuse, ça fonctionne à merveille.

Sincères salutations,

Rechercher des sujets similaires à "transfert donnees feuille condition"