Dans cet article, nous allons créer une macro pour formater les données données dans le format numérique personnalisé souhaité à l’aide de VBA.

Les données brutes de cet exemple se composent des données de l’équipe commerciale. Les données brutes contiennent le nom, l’identifiant du produit, le prix du produit, la quantité vendue et les ventes totales.

ArrowRawData

Avant d’exécuter la macro, il faut spécifier le format de nombre personnalisé dans la colonne P et le numéro de colonne dans lequel on veut appliquer le format de nombre personnalisé dans la colonne Q.

Cliquez sur le bouton «Format» pour exécuter la macro «Formatage».

ArrowAfterRunningMacro

La macro modifiera le formatage des données données en fonction du format numérique personnalisé spécifié.

Explication logique

Cette macro sélectionne la mise en forme des nombres dans la colonne P et affecte la mise en forme des nombres aux colonnes spécifiées par les numéros des colonnes dans la colonne Q.

Dans cette macro, nous avons utilisé deux boucles DO UNTIL pour la boucle. La première boucle DO UNTIL est utilisée pour boucler jusqu’à ce que tous les formats de nombres soient appliqués aux colonnes. La deuxième boucle DO UNTIL est utilisée pour trouver tous les différents numéros de colonne spécifiés et séparés par des virgules (,).

Explication du code

strCol = Gauche (txt, InStr (txt, « , ») – 1)

Le code ci-dessus est utilisé pour séparer le numéro de colonne de la chaîne qui contient tous les numéros de colonne séparés par des virgules (,).

Colonnes (CInt (strCol)). NumberFormat = wks.Cells (intRow, 16) .Value Le code ci-dessus est utilisé pour appliquer le format numérique personnalisé à la colonne spécifiée.

txt = Droite (txt, Len (txt) – InStr (txt, « , »))

Le code ci-dessus est utilisé pour séparer la chaîne laissée de côté après la suppression du numéro de colonne de la chaîne définie.

Veuillez suivre ci-dessous pour le code

Option Explicit

Sub Formatting()

'Declaring variables

Dim wks As Worksheet

Dim intRow As Long

Dim strCol As String

Dim txt As String

'Initializing the variables

Set wks = Worksheets("Format")

intRow = 4

'Looping in 16th column until empty value is found

Do Until IsEmpty(wks.Cells(intRow, 16))



'Assigning the value of custom number format

txt = wks.Cells(intRow, 17)



'Looping and finding all the column number separated by comma(,)

Do Until InStr(txt, ",") = 0



'Getting the column number

strCol = Left(txt, InStr(txt, ",") - 1)

'Assigning the number format

Columns(CInt(strCol)).NumberFormat = wks.Cells(intRow, 16).Value

'Truncating the string for finding the next column number after the comma(,)

txt = Right(txt, Len(txt) - InStr(txt, ","))

Loop



'Assigning the number format

Columns(CInt(txt)).NumberFormat = wks.Cells(intRow, 16).Value

intRow = intRow + 1

Loop

End Sub

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

[_GoBack] # Nous serions ravis de vous entendre. Faites-nous savoir comment nous pouvons améliorer notre travail et l’améliorer pour vous. Écrivez-nous à [email protected]