Copie des lignes en fonction de la valeur de la cellule et de le coller sur une nouvelle feuille avec la même valeur de cellule nom
J'ai une feuille de DONNÉES contenant une liste des employés avec 3 colonnes,
COLUMN A - DEPARTMENT
COLUMN B - EMPCODE
COLUMN C - EMPNAME
Voici un exemple de données:
Je veux diviser le contenu de cette fiche en fonction de la COLONNE A - DEPARMENT et placez-les sur des feuilles différentes, les nouvelles feuilles à comme nom le nom du département dans la Colonne A.
Le résultat final devrait être quelque chose comme ceci:
Ce code vérifie chaque ligne. Si la cellule de la Colonne A est égale à la cellule ci-dessous, il sélectionne la ligne.
Sub CopyRows()
Dim rngMyRange As Range, rngCell As Range
With Worksheets("DATA")
Set rngMyRange = .Range(.Range("a1"), .Range("A65536").End(xlUp))
For Each rngCell In rngMyRange
If rngCell.Value = rngCell.Offset(1, 0).Value Then
rngCell.EntireRow.Select
End If
Next
Selection.Copy
Sheets.Add After:=ActiveSheet
Rows("1:1").Select
Selection.Insert Shift:=xlDown
ActiveSheet.Name = Range("A1")
End With
End Sub
Comment puis-je faire le choix de rester et d'ajouter plus de lignes sélectionnées comme il vérifie la valeur de la cellule dans la Colonne A?
Vous devez vous connecter pour publier un commentaire.
J'ai créé ce VBA pour copier des données à partir d'une feuille (la source) à une autre feuille (cible) basé sur les données de la 3ème feuille (condition):
Vous avons concocté une très bonne question. Elle a une description claire du point de départ et ce que l'objectif est. Le code que vous avez est un bon début vers la réponse. Cependant, je n'ai pas essayer de regrouper un tas de lignes, ensemble, comme vous avez voulu le faire parce que je n'avais aucune idée de comment le faire. Ce que j'ai fait était pour faire une boucle dans la plage de DONNÉES et ensuite traiter avec chaque ligne une à une. Si la feuille de destination existe, je l'ai inséré la ligne après la dernière ligne. Si la destination n'existe pas, j'ai créé la nouvelle fiche de la façon dont vous étiez en train de faire. Étape à travers ce avec le débogueur et vous serez en mesure de voir comment il fonctionne.
vous pouvez utiliser RemoveDuplicates() et Filtre automatique() méthodes de l'objet Range comme suit:
Merci à tous pour vos réponses. J'ai effectivement trouvé un assez bon code qui fait exactement ce que je voulais, j'ai oublié de noter la référence de site cependant. Voici le code si ça intéresse quelqu'un:
On error Resume Next
. Avez-vous essayé la mienne?Mais Eileen,
Si nous avons besoin de copier les valeurs des cellules de la COLONNE E, plutôt que de la COLONNE A et de la coller sur une nouvelle feuille, puis votre réf code encore des listes de valeurs de la COLONNE A......!
Donc, nous avons juste besoin de changer vcol = 5 sur la ligne 9