Note: The other languages of the website are Google-translated. Back to English
English English

Comment copier des lignes de plusieurs feuilles de calcul en fonction de critères dans une nouvelle feuille?

Supposons que vous ayez un classeur avec trois feuilles de calcul qui ont la même mise en forme que la capture d'écran ci-dessous. Maintenant, vous voulez copier toutes les lignes de ces feuilles de calcul dont la colonne C contient le texte «Terminé» dans une nouvelle feuille de calcul. Comment pouvez-vous résoudre ce problème rapidement et facilement sans les copier et les coller un par un manuellement?

Copiez les lignes de plusieurs feuilles de calcul en fonction de critères dans une nouvelle feuille avec le code VBA


Copiez les lignes de plusieurs feuilles de calcul en fonction de critères dans une nouvelle feuille avec le code VBA

Le code VBA suivant peut vous aider à copier des lignes spécifiques de toutes les feuilles de calcul du classeur en fonction d'une certaine condition dans une nouvelle feuille de calcul. Veuillez faire comme ceci:

1. Maintenez le ALT + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez le code suivant dans la fenêtre Module.

Code VBA: Copiez les lignes de plusieurs feuilles en fonction de critères dans une nouvelle feuille

Public Sub CopyRows_ValuesAndNumberFormats()
Dim xWs As Worksheet
Dim xCWs As Worksheet
Dim xRg As Range
Dim xStrName As String
Dim xRStr As String
Dim xRRg As Range
Dim xC As Integer
On Error Resume Next
Application.DisplayAlerts = False
xStr = "Kutools for Excel"
xRStr = "Completed"
Set xCWs = ActiveWorkbook.Worksheets.Item(xStr)
If Not xCWs Is Nothing Then
    xCWs.Delete
End If
Set xCWs = ActiveWorkbook.Worksheets.Add
xCWs.Name = xStr
xC = 1
For Each xWs In ActiveWorkbook.Worksheets
    If xWs.Name <> xStr Then
        Set xRg = xWs.Range("C:C")
        Set xRg = Intersect(xRg, xWs.UsedRange)
        For Each xRRg In xRg
            If xRRg.Value = xRStr Then
               xRRg.EntireRow.Copy
               xCWs.Cells(xC, 1).PasteSpecial xlPasteValuesAndNumberFormats
               xC = xC + 1
            End If
        Next xRRg
    End If
Next xWs
Application.DisplayAlerts = True
End Sub

Notes: Dans le code ci-dessus:

  • Le texte "Complété" dans ce xRStr = "Terminé" script indique la condition spécifique sur laquelle vous souhaitez copier des lignes;
  • C: C dans ce Définissez xRg = xWs.Range ("C: C") script indique la colonne spécifique où se situe la condition.

3. Puis appuyez F5 clé pour exécuter ce code, et toutes les lignes avec la condition spécifique ont été copiées et collées dans une nouvelle feuille de calcul nommée Kutools for Excel dans le classeur actuel. Voir la capture d'écran:


Plus d'articles relatifs d'extraction ou de copie de données:

  • Copier les données dans une autre feuille de calcul avec un filtre avancé dans Excel
  • Normalement, nous pouvons appliquer rapidement la fonction de filtre avancé pour extraire des données des données brutes dans la même feuille de calcul. Mais, parfois, lorsque vous essayez de copier le résultat filtré dans une autre feuille de calcul, vous obtenez le message d'avertissement suivant. Dans ce cas, comment pourriez-vous gérer cette tâche dans Excel?
  • Copier les lignes si la colonne contient du texte / une valeur spécifique dans Excel
  • Supposons que vous souhaitiez trouver des cellules contenant du texte ou une valeur spécifique dans une colonne, puis copier la ligne entière où se trouve la cellule trouvée, comment pourriez-vous y faire face? Ici, je vais présenter quelques méthodes pour trouver si la colonne contient du texte ou une valeur spécifique, puis copier la ligne entière dans Excel.


  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes et conservation des données; Contenu des cellules divisées; Combiner les lignes en double et la somme / moyenne... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Formules favorites et insérer rapidement, Plages, graphiques et images; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Regroupement du tableau croisé dynamique par numéro de semaine, jour de la semaine et plus encore ... Afficher les cellules déverrouillées et verrouillées par différentes couleurs; Mettre en évidence les cellules qui ont une formule / un nomplus
onglet kte 201905
  • Activer l'édition 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, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (2)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, merci beaucoup pour le code ci-dessus, il m'a résolu un problème avec un fichier complexe ; une solution que je cherchais depuis un moment maintenant. Merci..J'ai une question. Comment changer le code pour qu'il copie les lignes mais uniquement de la colonne A à la colonne Q, donc pas Entire.Row ? Merci d'avance et excellent travail !
Ce commentaire a été minimisé par le modérateur sur le site
Hi,

merci beaucoup pour le code. J'ai une question: le code s'exécute correctement sur certaines de mes feuilles, mais semble entrer dans une boucle infinie dans d'autres, ce qui fait planter Excel. Quelle pourrait être la raison ?
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés