Comment déplacer une ligne entière vers une autre feuille en fonction de la valeur d'une cellule dans Excel ?
Pour déplacer une ligne entière vers une autre feuille en fonction de la valeur d'une cellule, cet article vous aidera.
Déplacer une ligne entière vers une autre feuille en fonction de la valeur d'une cellule avec un code VBA
Déplacer une ligne entière vers une autre feuille en fonction de la valeur d'une cellule avec Kutools pour Excel
Déplacer une ligne entière vers une autre feuille en fonction de la valeur d'une cellule avec un code VBA
Comme le montre la capture d'écran ci-dessous, vous devez déplacer la ligne entière de Feuille1 vers Feuille2 si un mot spécifique « Terminé » existe dans la colonne C. Vous pouvez essayer le code VBA suivant.
1. Appuyez simultanément sur Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.
2. Dans la fenêtre Microsoft Visual Basic pour Applications, cliquez sur Insertion > Module. Ensuite, copiez et collez le code VBA ci-dessous dans la fenêtre.
Code VBA 1 : Déplacer une ligne entière vers une autre feuille en fonction de la valeur d'une cellule
Sub Cheezy()
'Updated by Kutools for Excel 2017/8/28
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim K As Long
I = Worksheets("Sheet1").UsedRange.Rows.Count
J = Worksheets("Sheet2").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
End If
Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
On Error Resume Next
Application.ScreenUpdating = False
For K = 1 To xRg.Count
If CStr(xRg(K).Value) = "Done" Then
xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
xRg(K).EntireRow.Delete
If CStr(xRg(K).Value) = "Done" Then
K = K - 1
End If
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub
Remarque : Dans le code, Feuille1 est la feuille de calcul contenant la ligne que vous souhaitez déplacer. Et Feuille2 est la feuille de destination où vous placerez la ligne. « C:C » est la colonne qui contient la valeur spécifique, et le mot « Terminé » est la valeur spécifique sur laquelle vous déplacerez la ligne. Veuillez les modifier selon vos besoins.
3. Appuyez sur la touche F5 pour exécuter le code, puis la ligne qui répond aux critères dans Feuille1 sera immédiatement déplacée vers Feuille2.
Remarque : Le code VBA ci-dessus supprimera les lignes des données d'origine après les avoir déplacées vers une feuille de calcul spécifiée. Si vous souhaitez uniquement copier les lignes en fonction de la valeur d'une cellule sans les supprimer, veuillez appliquer le code VBA 2 ci-dessous.
Code VBA 2 : Copier une ligne entière vers une autre feuille en fonction de la valeur d'une cellule
Sub MoveRowBasedOnCellValue()
'Updated by Extendoffice 2017/11/10
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim K As Long
I = Worksheets("Sheet1").UsedRange.Rows.Count
J = Worksheets("Sheet2").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
End If
Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
On Error Resume Next
Application.ScreenUpdating = False
For K = 1 To xRg.Count
If CStr(xRg(K).Value) = "Done" Then
xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub
Déplacer une ligne entière vers une autre feuille en fonction de la valeur d'une cellule avec Kutools pour Excel
Si vous êtes débutant en matière de code VBA, voici l'utilitaire Sélectionner des cellules spécifiques de Kutools pour Excel. Avec cet utilitaire, vous pouvez facilement sélectionner toutes les lignes en fonction d'une certaine valeur de cellule ou de différentes valeurs de cellules dans une feuille de calcul, puis copier les lignes sélectionnées vers la feuille de destination dont vous avez besoin. Veuillez procéder comme suit.
1. Sélectionnez la liste des colonnes contenant la valeur de cellule sur laquelle vous déplacerez les lignes, puis cliquez sur Kutools > Sélectionner > Sélectionner des cellules spécifiques. Voir la capture d'écran :
2. Dans la boîte de dialogue Sélectionner des cellules spécifiques qui s'ouvre, choisissez Ligne entière dans la section Type de sélection, sélectionnez Égal à dans la liste déroulante Type spécifique, entrez la valeur de la cellule dans la zone de texte, puis cliquez sur le bouton OK.
Une autre boîte de dialogue Sélectionner des cellules spécifiques apparaît pour vous montrer le nombre de lignes sélectionnées, et en même temps, toutes les lignes contenant la valeur spécifiée dans la colonne sélectionnée ont été sélectionnées. Voir la capture d'écran :
3. Appuyez sur les touches Ctrl + C pour copier les lignes sélectionnées, puis collez-les dans la feuille de destination dont vous avez besoin.
Remarque : Si vous souhaitez déplacer des lignes vers une autre feuille de calcul en fonction de deux valeurs de cellule différentes. Par exemple, déplacez des lignes en fonction des valeurs de cellule « Terminé » ou « En cours », vous pouvez activer la condition Ou dans la boîte de dialogue Sélectionner des cellules spécifiques comme le montre la capture d'écran ci-dessous :
Si vous souhaitez bénéficier d'un essai gratuit (30 jours) de cet utilitaire, veuillez cliquer pour le télécharger, puis aller appliquer l'opération selon les étapes ci-dessus.
Articles connexes :
Meilleurs outils de productivité Office
Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, au lieu d’ouvrir de nouvelles fenêtres.
- Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!