Comment transférer des données spécifiques d’une feuille à l’autre par VBA dans Microsoft Excel
Dans cet article, nous utiliserons l’événement de changement de feuille de calcul pour transférer des données d’une feuille à une autre, en fonction d’une certaine condition.
Les données brutes se composent des détails du client, qui incluent le nom, l’adresse postale, la ville, la région, le pays et le numéro de téléphone.
Dans cet article, nous souhaitons transférer les données des clients qui ne sont pas éligibles à une offre particulière. La dernière colonne contient «Non» comme valeur, si un client n’est pas éligible pour une offre particulière. Nous souhaitons copier ces clients «non éligibles» dans la feuille «NotEligibleData».
Explication du code
Si Target.Column = 7 Then Le code ci-dessus est utilisé pour restreindre l’événement de modification de la feuille de calcul à exécuter uniquement lorsque la valeur de la 7 ^ e ^ colonne est modifiée.
Sheets (« NotEligibleData »). Range (« A2: I600 »). ClearContents Le code ci-dessus est utilisé pour supprimer la valeur de la plage A2: I600 Sheets (« Main »). Cells (i, « G »). CompleteRow.Copy Destination: = Sheets (« NotEligibleData »). Range (« A » & Rows.Count) .End (xlUp) .Offset (1)
Le code ci-dessus est utilisé pour copier les clients non éligibles dans la feuille « NotEligibleData ».
Veuillez suivre ci-dessous pour le code
Private Sub Worksheet_Change(ByVal Target As Range) 'Declaring variables Dim i, Lastrow As Long 'Execute code if value in seventh column is changed If Target.Column = 7 Then 'Getting the row number of last cell Lastrow = Sheets("Main").Range("A" & Rows.Count).End(xlUp).Row 'Deleting any previous data from "NotEligibleData" sheet Sheets("NotEligibleData").Range("A2:I600").ClearContents 'Looping from tenth row to last row For i = 10 To Lastrow 'If value in G column of the row is "Not" then copy the row to destination sheet If Sheets("Main").Cells(i, "G").Value = "Not" Then Sheets("Main").Cells(i, "G").EntireRow.Copy Destination:=Sheets("NotEligibleData").Range("A" & Rows.Count).End(xlUp).Offset(1) End If Next i End If Range("A1").Select End Sub
Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.
Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]