1 votes

Répétition de valeurs - Microsoft Excel

On me fournit chaque mois une grande feuille de calcul qui nécessite la saisie manuelle de jusqu'à 6 occurrences du même identifiant client. Je voudrais concevoir une macro ou un code VBA qui, à partir de ma liste de clients, créerait une série de valeurs répétitives sur des lignes distinctes. Par exemple, la colonne A contient actuellement ce qui suit :

     A
1  Cust1
2  Cust2
3  Cust3

Mon VBA/Macro génère le résultat suivant :

     A
1   Cust1
2   Cust1
3   Cust1
4   Cust1
5   Cust1
6   Cust1
7   Cust2
8   Cust2
9   Cust2
10  Cust2
11  Cust2
12  Cust2

Gracias.

0voto

jcbermu Points 16624

Avec une macro utilisant VBA :

Public Sub customCustomers()
    Application.ScreenUpdating = False
    sourceSheet = "Sheet1"
    destSheet = "Sheet2"
    initialSrcRow = 1
    initialDstRow = 1
    times = 6
    Dim wkb As Workbook
    Dim wks, wks1 As Worksheet
    Set wkb = ThisWorkbook
    Set wks = wkb.Sheets(sourceSheet)
    Set wks1 = wkb.Sheets(destSheet)
    wks1.Rows.Clear
    seeking = True
    While seeking
        theCustomer = wks.Cells(initialSrcRow, 1)
        If theCustomer <> "" Then
            For i = 1 To times
                wks1.Cells(initialDstRow, 1) = theCustomer
                initialDstRow = initialDstRow + 1
            Next i
            initialSrcRow = initialSrcRow + 1
        Else
            seeking = False
        End If
    Wend
    Application.ScreenUpdating = True
    theMessage = MsgBox("Finished copying customers on Sheet: " & destSheet, vbOKOnly)
End Sub

Ouvrez VBA/Macros, sous Ce manuel de travail insérez un nouveau module et collez ce code sur le côté droit.

Vous pouvez ajuster les variables suivantes en fonction de vos besoins :

  • sourceSheet : Le nom de la feuille originale, dans mon exemple est Feuille 1 .

  • destSheet : Nom de la feuille de destination, dans mon exemple c'est Feuille 2 .

  • initialSrcRow : La première ligne de la feuille source.

  • initialDstRow : Première ligne de la feuille de destination.

  • times : Nombre de fois que le client doit être répété sur la feuille de destination.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X